@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
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/assets/app.js"],
4
4
  "sourcesContent": ["import * as govukFrontend from 'govuk-frontend'\nimport * as mojFrontend from '@ministryofjustice/frontend'\nimport * as dprFrontend from '../all.mjs'\n\ngovukFrontend.initAll()\nmojFrontend.initAll()\ndprFrontend.initAll()"],
5
- "mappings": "2cAAA,IAAAA,EAA+B,6BAC/BC,EAA6B,0CAC7BC,EAA6B,yBAE7BF,EAAc,QAAQ,EACtBC,EAAY,QAAQ,EACpBC,EAAY,QAAQ",
5
+ "mappings": "wdAAA,IAAAA,EAA+B,6BAC/BC,EAA6B,0CAC7BC,EAA6B,yBAE7BF,EAAc,QAAQ,EACtBC,EAAY,QAAQ,EACpBC,EAAY,QAAQ",
6
6
  "names": ["govukFrontend", "mojFrontend", "dprFrontend"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var u=(t,e)=>{for(var o in e)a(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!s.call(t,r)&&r!==o&&a(t,r,{get:()=>e[r],enumerable:!(l=n(e,r))||l.enumerable});return t};var d=t=>m(a({},"__esModule",{value:!0}),t);var F={};u(F,{default:()=>y,sortByTemplate:()=>i});module.exports=d(F);const i=()=>[{text:"Column",name:"sortColumn",type:"Radio",options:[],value:null,mandatory:!0},{text:"Direction",name:"sortedAsc",type:"Radio",options:[{value:"true",text:"Ascending"},{value:"false",text:"Descending"}],value:"false",mandatory:!0}];var y={sortByTemplate:i};0&&(module.exports={sortByTemplate});
1
+ "use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var u=(t,e)=>{for(var o in e)a(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!s.call(t,r)&&r!==o&&a(t,r,{get:()=>e[r],enumerable:!(l=n(e,r))||l.enumerable});return t};var d=t=>m(a({},"__esModule",{value:!0}),t);var F={};u(F,{default:()=>y,sortByTemplate:()=>i});module.exports=d(F);const i=()=>[{text:"Column",name:"sortColumn",type:"Radio",options:[],value:null,mandatory:!0},{text:"Direction",name:"sortedAsc",type:"Radio",options:[{value:"true",text:"Ascending"},{value:"false",text:"Descending"}],value:"false",mandatory:!0}];var y={sortByTemplate:i};0&&(module.exports={sortByTemplate});
2
2
  //# sourceMappingURL=sortByTemplate.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_async/async-filters-form/sortByTemplate.ts"],
4
4
  "sourcesContent": ["import { FilterType } from '../../_filters/filter-input/enum'\nimport { FilterOption, FilterValue } from '../../_filters/types'\n\nexport const sortByTemplate = (): FilterValue[] => {\n return [\n {\n text: 'Column',\n name: 'sortColumn',\n type: 'Radio' as FilterType,\n options: [] as FilterOption[],\n value: null,\n mandatory: true,\n },\n {\n text: 'Direction',\n name: 'sortedAsc',\n type: 'Radio' as FilterType,\n options: [\n {\n value: 'true',\n text: 'Ascending',\n },\n {\n value: 'false',\n text: 'Descending',\n },\n ] as FilterOption[],\n value: 'false',\n mandatory: true,\n },\n ]\n}\n\nexport default {\n sortByTemplate,\n}\n"],
5
- "mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,mBAAAC,IAAA,eAAAC,EAAAJ,GAGO,MAAMG,EAAiB,IACrB,CACL,CACE,KAAM,SACN,KAAM,aACN,KAAM,QACN,QAAS,CAAC,EACV,MAAO,KACP,UAAW,EACb,EACA,CACE,KAAM,YACN,KAAM,YACN,KAAM,QACN,QAAS,CACP,CACE,MAAO,OACP,KAAM,WACR,EACA,CACE,MAAO,QACP,KAAM,YACR,CACF,EACA,MAAO,QACP,UAAW,EACb,CACF,EAGF,IAAOD,EAAQ,CACb,eAAAC,CACF",
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,mBAAAC,IAAA,eAAAC,EAAAJ,GAGO,MAAMG,EAAiB,IACrB,CACL,CACE,KAAM,SACN,KAAM,aACN,KAAM,QACN,QAAS,CAAC,EACV,MAAO,KACP,UAAW,EACb,EACA,CACE,KAAM,YACN,KAAM,YACN,KAAM,QACN,QAAS,CACP,CACE,MAAO,OACP,KAAM,WACR,EACA,CACE,MAAO,QACP,KAAM,YACR,CACF,EACA,MAAO,QACP,UAAW,EACb,CACF,EAGF,IAAOD,EAAQ,CACb,eAAAC,CACF",
6
6
  "names": ["sortByTemplate_exports", "__export", "sortByTemplate_default", "sortByTemplate", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var u=(r,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of o(t))!l.call(r,e)&&e!==s&&n(r,e,{get:()=>t[e],enumerable:!(i=a(t,e))||i.enumerable});return r};var g=r=>u(n({},"__esModule",{value:!0}),r);var f={};module.exports=g(f);
1
+ "use strict";var n=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var u=(r,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of o(t))!l.call(r,e)&&e!==s&&n(r,e,{get:()=>t[e],enumerable:!(i=a(t,e))||i.enumerable});return r};var g=r=>u(n({},"__esModule",{value:!0}),r);var f={};module.exports=g(f);
2
2
  //# sourceMappingURL=types.d.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_async/async-filters-form/types.d.ts"],
4
4
  "sourcesContent": ["export interface requestAsyncReportParams {\n apiTimeout: number\n apiUrl: string\n token: string\n reportId: string\n reportVariantId: string\n query: Query\n}\n\n// todo update to correct type\ninterface Query {\n sortColumn: string\n sortedAsc: boolean\n filters: filter[]\n dataProductDefinitionsPath: string\n}\n\ninterface filter {\n [filterId: string]: string\n}\n\nexport interface SortByDefaults {\n options: { text: string; value: string }[]\n value: string\n}\n\nexport interface RenderFiltersReturnValue {\n filters: FilterValue[]\n sortBy?: FilterValue[]\n}\n\nexport interface SetQueryFromFiltersResult {\n query: Dict<string>\n filterData: Dict<string>\n querySummary: Array<Dict<string>>\n sortData: Dict<string>\n}\n"],
5
- "mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_d_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var x=Object.create;var m=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var v=(t,r)=>{for(var e in r)m(t,e,{get:r[e],enumerable:!0})},F=(t,r,e,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of M(r))!W.call(t,i)&&i!==e&&m(t,i,{get:()=>r[i],enumerable:!(a=A(r,i))||a.enumerable});return t};var u=(t,r,e)=>(e=t!=null?x(R(t)):{},F(r||!t||!t.__esModule?m(e,"default",{value:t,enumerable:!0}):e,t)),N=t=>F(m({},"__esModule",{value:!0}),t);var j={};v(j,{default:()=>U,getSortByFromDefinition:()=>$,renderFilters:()=>Y,setDurationStartAndEnd:()=>b,setQueryFromFilters:()=>O});module.exports=N(j);var h=u(require("./sortByTemplate")),g=u(require("../../../utils/definitionUtils")),S=u(require("../../../utils/DateMapper/DateMapper")),k=u(require("../../_filters/utils")),V=u(require("../../_inputs/date-range/utils"));const $=(t,r)=>{if(!r){const e=h.default.sortByTemplate(),a=t.filter(i=>i.sortable).map(i=>{i.defaultsort&&(e[0].value=i.name);const p={value:i.name,text:i.display};return i.sortDirection&&(e[1].value=i.sortDirection==="asc"?"true":"false"),p});if(a.length){const i=e[0];return i.options=a,e[0]=i,e}}return[]},b=(t,r,e,a,i,p)=>{const{startDate:D,endDate:y}=V.default.calcDates(r),s=D?D.format("YYYY-MM-DD").toString():"",c=y?y.format("YYYY-MM-DD").toString():"",n=t.split(".")[1],o=p.find(f=>f.name===n);e[`filters.${n}.start`]=s,e[`filters.${n}.end`]=c,a[t]=r;let l=`${r.charAt(0).toUpperCase()+r.slice(1).replace("-"," ")}`;return l=`${l} (${s} - ${c})`,i.push({name:o?`${o.display}`:t,value:l}),{querySummary:i,filterData:a,query:e}},Y=async(t,r)=>({filters:k.default.getFiltersFromDefinition(t,!1),sortBy:$(t,r)}),O=(t,r)=>{let e={},a={},i=[];const p={},D=new S.default,y=new URLSearchParams(t.body.search);return Object.keys(t.body).filter(s=>s!=="_csrf"&&t.body[s]!=="").forEach(s=>{const c=s.replace("filters.",""),n=t.body[s];if(s.startsWith("filters.")&&n!==""&&!e[s]&&n!=="no-filter")if(s.includes("relative-duration"))({query:e,filterData:a,querySummary:i}=b(s,n,e,a,i,r));else{let o=y.getAll(s);o=!o||o.length===0?n:o,o=o.length===1?`${o[0]}`:`${o}`,e[s]=o,a[c]=o;let l;if(D.isDate(n)){l=D.toDateString(n,"local-date");const d=D.toDateString(n,"iso");e[s]=d,a[c]=d}const f=g.default.getFieldDisplayName(r,c);i.push({name:f||c,value:l||o})}else if(s.startsWith("sort")){e[s]=n,p[s]=n;const o=g.default.getField(r,n);let l="Sort Direction",f=n==="true"?"Ascending":"Descending";o&&(l="Sort Column",f=o.display),i.push({name:l,value:f})}}),{query:e,filterData:a,querySummary:i,sortData:p}};var U={renderFilters:Y,setQueryFromFilters:O};0&&(module.exports={getSortByFromDefinition,renderFilters,setDurationStartAndEnd,setQueryFromFilters});
1
+ "use strict";var O=Object.create;var m=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var v=(t,r)=>{for(var e in r)m(t,e,{get:r[e],enumerable:!0})},F=(t,r,e,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of M(r))!W.call(t,i)&&i!==e&&m(t,i,{get:()=>r[i],enumerable:!(a=x(r,i))||a.enumerable});return t};var u=(t,r,e)=>(e=t!=null?O(R(t)):{},F(r||!t||!t.__esModule?m(e,"default",{value:t,enumerable:!0}):e,t)),N=t=>F(m({},"__esModule",{value:!0}),t);var j={};v(j,{default:()=>U,getSortByFromDefinition:()=>$,renderFilters:()=>Y,setDurationStartAndEnd:()=>b,setQueryFromFilters:()=>A});module.exports=N(j);var h=u(require("./sortByTemplate")),g=u(require("../../../utils/definitionUtils")),S=u(require("../../../utils/DateMapper/DateMapper")),k=u(require("../../_filters/utils")),V=u(require("../../_inputs/date-range/utils"));const $=(t,r)=>{if(!r){const e=h.default.sortByTemplate(),a=t.filter(i=>i.sortable).map(i=>{i.defaultsort&&(e[0].value=i.name);const p={value:i.name,text:i.display};return i.sortDirection&&(e[1].value=i.sortDirection==="asc"?"true":"false"),p});if(a.length){const i=e[0];return i.options=a,e[0]=i,e}}return[]},b=(t,r,e,a,i,p)=>{const{startDate:D,endDate:y}=V.default.calcDates(r),s=D?D.format("YYYY-MM-DD").toString():"",c=y?y.format("YYYY-MM-DD").toString():"",n=t.split(".")[1],o=p.find(f=>f.name===n);e[`filters.${n}.start`]=s,e[`filters.${n}.end`]=c,a[t]=r;let l=`${r.charAt(0).toUpperCase()+r.slice(1).replaceAll("-"," ")}`;return l=`${l} (${s} - ${c})`,i.push({name:o?`${o.display}`:t,value:l}),{querySummary:i,filterData:a,query:e}},Y=async(t,r)=>({filters:k.default.getFiltersFromDefinition(t,!1),sortBy:$(t,r)}),A=(t,r)=>{let e={},a={},i=[];const p={},D=new S.default,y=new URLSearchParams(t.body.search);return Object.keys(t.body).filter(s=>s!=="_csrf"&&t.body[s]!=="").forEach(s=>{const c=s.replace("filters.",""),n=t.body[s];if(s.startsWith("filters.")&&n!==""&&!e[s]&&n!=="no-filter")if(s.includes("relative-duration"))({query:e,filterData:a,querySummary:i}=b(s,n,e,a,i,r));else{let o=y.getAll(s);o=!o||o.length===0?n:o,o=o.length===1?`${o[0]}`:`${o}`,e[s]=o,a[c]=o;let l;if(D.isDate(n)){l=D.toDateString(n,"local-date");const d=D.toDateString(n,"iso");e[s]=d,a[c]=d}const f=g.default.getFieldDisplayName(r,c);i.push({name:f||c,value:l||o})}else if(s.startsWith("sort")){e[s]=n,p[s]=n;const o=g.default.getField(r,n);let l="Sort Direction",f=n==="true"?"Ascending":"Descending";o&&(l="Sort Column",f=o.display),i.push({name:l,value:f})}}),{query:e,filterData:a,querySummary:i,sortData:p}};var U={renderFilters:Y,setQueryFromFilters:A};0&&(module.exports={getSortByFromDefinition,renderFilters,setDurationStartAndEnd,setQueryFromFilters});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_async/async-filters-form/utils.ts"],
4
- "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request } from 'express'\nimport { Dayjs } from 'dayjs'\nimport Dict = NodeJS.Dict\nimport type { SetQueryFromFiltersResult } from './types'\nimport type { components } from '../../../types/api'\n\nimport SortHelper from './sortByTemplate'\nimport DefinitionUtils from '../../../utils/definitionUtils'\nimport DateMapper from '../../../utils/DateMapper/DateMapper'\nimport FiltersUtils from '../../_filters/utils'\nimport DateRangeInputUtils from '../../_inputs/date-range/utils'\nimport { FilterOption, FilterValue, FilterValueWithOptions } from '../../_filters/types'\n\n/**\n * Initialises the sortData from the definition\n */\nexport const getSortByFromDefinition = (\n fields: components['schemas']['FieldDefinition'][],\n interactive?: boolean,\n): FilterValue[] => {\n if (!interactive) {\n const sortBy = SortHelper.sortByTemplate()\n const options = fields\n .filter((f) => f.sortable)\n .map((f) => {\n if (f.defaultsort) sortBy[0].value = f.name\n const field: FilterOption = { value: f.name, text: f.display }\n if (f.sortDirection) {\n // the 'value' here is whether sortedAsc is true or not\n sortBy[1].value = f.sortDirection === 'asc' ? 'true' : 'false'\n }\n return field\n })\n\n if (options.length) {\n const sortWithOptions: FilterValueWithOptions = <FilterValueWithOptions>sortBy[0]\n sortWithOptions.options = options\n sortBy[0] = sortWithOptions\n return sortBy\n }\n }\n return []\n}\n\nexport const setDurationStartAndEnd = (\n name: string,\n value: string,\n query: Dict<string>,\n filterData: Dict<string>,\n querySummary: Array<Dict<string>>,\n fields: components['schemas']['FieldDefinition'][],\n) => {\n const { startDate, endDate } = DateRangeInputUtils.calcDates(value)\n const startDateDisplayString = startDate ? (<Dayjs>startDate).format('YYYY-MM-DD').toString() : ''\n const endDateDisplayString = endDate ? (<Dayjs>endDate).format('YYYY-MM-DD').toString() : ''\n\n const fieldId = name.split('.')[1]\n const field = fields.find((f) => {\n return f.name === fieldId\n })\n\n query[`filters.${fieldId}.start` as keyof Dict<string>] = startDateDisplayString\n query[`filters.${fieldId}.end` as keyof Dict<string>] = endDateDisplayString\n\n filterData[name as keyof Dict<string>] = value\n\n let queryValue = `${value.charAt(0).toUpperCase() + value.slice(1).replace('-', ' ')}`\n queryValue = `${queryValue} (${startDateDisplayString} - ${endDateDisplayString})`\n querySummary.push({\n name: field ? `${field.display}` : name,\n value: queryValue,\n })\n\n return {\n querySummary,\n filterData,\n query,\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderFilters = async (fields: components['schemas']['FieldDefinition'][], interactive?: boolean) => {\n return {\n filters: FiltersUtils.getFiltersFromDefinition(fields, false),\n sortBy: getSortByFromDefinition(fields, interactive),\n }\n}\n\nexport const setQueryFromFilters = (\n req: Request,\n fields: components['schemas']['FieldDefinition'][],\n): SetQueryFromFiltersResult => {\n let query: Dict<string> = {}\n let filterData: Dict<string> = {}\n let querySummary: Array<Dict<string>> = []\n const sortData: Dict<string> = {}\n const dateMapper = new DateMapper()\n const urlParams = new URLSearchParams(req.body.search)\n\n Object.keys(req.body)\n .filter((name) => name !== '_csrf' && req.body[name] !== '')\n .forEach((name) => {\n const shortName = name.replace('filters.', '')\n const value = req.body[name]\n\n if (name.startsWith('filters.') && value !== '' && !query[name] && value !== 'no-filter') {\n if (name.includes('relative-duration')) {\n ;({ query, filterData, querySummary } = setDurationStartAndEnd(\n name,\n value,\n query,\n filterData,\n querySummary,\n fields,\n ))\n } else {\n let urlParamValue: string | string[] = urlParams.getAll(name)\n urlParamValue = !urlParamValue || urlParamValue.length === 0 ? value : urlParamValue\n urlParamValue = urlParamValue.length === 1 ? `${urlParamValue[0]}` : `${urlParamValue}`\n\n query[name as keyof Dict<string>] = urlParamValue\n filterData[shortName as keyof Dict<string>] = urlParamValue\n\n let dateDisplayValue\n if (dateMapper.isDate(value)) {\n dateDisplayValue = dateMapper.toDateString(value, 'local-date')\n\n const isoFormatDate = dateMapper.toDateString(value, 'iso')\n query[name as keyof Dict<string>] = isoFormatDate\n filterData[shortName as keyof Dict<string>] = isoFormatDate\n }\n\n const fieldDisplayName = DefinitionUtils.getFieldDisplayName(fields, shortName)\n querySummary.push({\n name: fieldDisplayName || shortName,\n value: dateDisplayValue || urlParamValue,\n })\n }\n } else if (name.startsWith('sort')) {\n query[name as keyof Dict<string>] = value\n sortData[name as keyof Dict<string>] = value\n\n const fieldDef = DefinitionUtils.getField(fields, value)\n\n let displayName = 'Sort Direction'\n let displayValue = value === 'true' ? 'Ascending' : 'Descending'\n if (fieldDef) {\n displayName = 'Sort Column'\n displayValue = fieldDef.display\n }\n\n querySummary.push({\n name: displayName,\n value: displayValue,\n })\n }\n })\n\n return {\n query,\n filterData,\n querySummary,\n sortData,\n }\n}\n\nexport default {\n renderFilters,\n setQueryFromFilters,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request } from 'express'\nimport { Dayjs } from 'dayjs'\nimport Dict = NodeJS.Dict\nimport type { SetQueryFromFiltersResult } from './types'\nimport type { components } from '../../../types/api'\n\nimport SortHelper from './sortByTemplate'\nimport DefinitionUtils from '../../../utils/definitionUtils'\nimport DateMapper from '../../../utils/DateMapper/DateMapper'\nimport FiltersUtils from '../../_filters/utils'\nimport DateRangeInputUtils from '../../_inputs/date-range/utils'\nimport { FilterOption, FilterValue, FilterValueWithOptions } from '../../_filters/types'\n\n/**\n * Initialises the sortData from the definition\n */\nexport const getSortByFromDefinition = (\n fields: components['schemas']['FieldDefinition'][],\n interactive?: boolean,\n): FilterValue[] => {\n if (!interactive) {\n const sortBy = SortHelper.sortByTemplate()\n const options = fields\n .filter((f) => f.sortable)\n .map((f) => {\n if (f.defaultsort) sortBy[0].value = f.name\n const field: FilterOption = { value: f.name, text: f.display }\n if (f.sortDirection) {\n // the 'value' here is whether sortedAsc is true or not\n sortBy[1].value = f.sortDirection === 'asc' ? 'true' : 'false'\n }\n return field\n })\n\n if (options.length) {\n const sortWithOptions: FilterValueWithOptions = <FilterValueWithOptions>sortBy[0]\n sortWithOptions.options = options\n sortBy[0] = sortWithOptions\n return sortBy\n }\n }\n return []\n}\n\nexport const setDurationStartAndEnd = (\n name: string,\n value: string,\n query: Dict<string>,\n filterData: Dict<string>,\n querySummary: Array<Dict<string>>,\n fields: components['schemas']['FieldDefinition'][],\n) => {\n const { startDate, endDate } = DateRangeInputUtils.calcDates(value)\n const startDateDisplayString = startDate ? (<Dayjs>startDate).format('YYYY-MM-DD').toString() : ''\n const endDateDisplayString = endDate ? (<Dayjs>endDate).format('YYYY-MM-DD').toString() : ''\n\n const fieldId = name.split('.')[1]\n const field = fields.find((f) => {\n return f.name === fieldId\n })\n\n query[`filters.${fieldId}.start` as keyof Dict<string>] = startDateDisplayString\n query[`filters.${fieldId}.end` as keyof Dict<string>] = endDateDisplayString\n\n filterData[name as keyof Dict<string>] = value\n\n let queryValue = `${value.charAt(0).toUpperCase() + value.slice(1).replaceAll('-', ' ')}`\n queryValue = `${queryValue} (${startDateDisplayString} - ${endDateDisplayString})`\n querySummary.push({\n name: field ? `${field.display}` : name,\n value: queryValue,\n })\n\n return {\n querySummary,\n filterData,\n query,\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderFilters = async (fields: components['schemas']['FieldDefinition'][], interactive?: boolean) => {\n return {\n filters: FiltersUtils.getFiltersFromDefinition(fields, false),\n sortBy: getSortByFromDefinition(fields, interactive),\n }\n}\n\nexport const setQueryFromFilters = (\n req: Request,\n fields: components['schemas']['FieldDefinition'][],\n): SetQueryFromFiltersResult => {\n let query: Dict<string> = {}\n let filterData: Dict<string> = {}\n let querySummary: Array<Dict<string>> = []\n const sortData: Dict<string> = {}\n const dateMapper = new DateMapper()\n const urlParams = new URLSearchParams(req.body.search)\n\n Object.keys(req.body)\n .filter((name) => name !== '_csrf' && req.body[name] !== '')\n .forEach((name) => {\n const shortName = name.replace('filters.', '')\n const value = req.body[name]\n\n if (name.startsWith('filters.') && value !== '' && !query[name] && value !== 'no-filter') {\n if (name.includes('relative-duration')) {\n ;({ query, filterData, querySummary } = setDurationStartAndEnd(\n name,\n value,\n query,\n filterData,\n querySummary,\n fields,\n ))\n } else {\n let urlParamValue: string | string[] = urlParams.getAll(name)\n urlParamValue = !urlParamValue || urlParamValue.length === 0 ? value : urlParamValue\n urlParamValue = urlParamValue.length === 1 ? `${urlParamValue[0]}` : `${urlParamValue}`\n\n query[name as keyof Dict<string>] = urlParamValue\n filterData[shortName as keyof Dict<string>] = urlParamValue\n\n let dateDisplayValue\n if (dateMapper.isDate(value)) {\n dateDisplayValue = dateMapper.toDateString(value, 'local-date')\n\n const isoFormatDate = dateMapper.toDateString(value, 'iso')\n query[name as keyof Dict<string>] = isoFormatDate\n filterData[shortName as keyof Dict<string>] = isoFormatDate\n }\n\n const fieldDisplayName = DefinitionUtils.getFieldDisplayName(fields, shortName)\n querySummary.push({\n name: fieldDisplayName || shortName,\n value: dateDisplayValue || urlParamValue,\n })\n }\n } else if (name.startsWith('sort')) {\n query[name as keyof Dict<string>] = value\n sortData[name as keyof Dict<string>] = value\n\n const fieldDef = DefinitionUtils.getField(fields, value)\n\n let displayName = 'Sort Direction'\n let displayValue = value === 'true' ? 'Ascending' : 'Descending'\n if (fieldDef) {\n displayName = 'Sort Column'\n displayValue = fieldDef.display\n }\n\n querySummary.push({\n name: displayName,\n value: displayValue,\n })\n }\n })\n\n return {\n query,\n filterData,\n querySummary,\n sortData,\n }\n}\n\nexport default {\n renderFilters,\n setQueryFromFilters,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["utils_exports", "__export", "utils_default", "getSortByFromDefinition", "renderFilters", "setDurationStartAndEnd", "setQueryFromFilters", "__toCommonJS", "import_sortByTemplate", "import_definitionUtils", "import_DateMapper", "import_utils", "fields", "interactive", "sortBy", "SortHelper", "options", "f", "field", "sortWithOptions", "name", "value", "query", "filterData", "querySummary", "startDate", "endDate", "DateRangeInputUtils", "startDateDisplayString", "endDateDisplayString", "fieldId", "queryValue", "FiltersUtils", "req", "sortData", "dateMapper", "DateMapper", "urlParams", "shortName", "urlParamValue", "dateDisplayValue", "isoFormatDate", "fieldDisplayName", "DefinitionUtils", "fieldDef", "displayName", "displayValue"]
7
7
  }
@@ -1,3 +1,4 @@
1
+ import { expect, jest } from '@jest/globals'
1
2
  import MockDate from 'mockdate'
2
3
  import { Request } from 'express'
3
4
  import mockVariant from '../../../../../test-app/mocks/mockClients/reports/mockVariants/feature-testing/missingDescription'
@@ -25,9 +26,8 @@ describe('AsyncFiltersUtils', () => {
25
26
 
26
27
  describe('renderFilters', () => {
27
28
  it('should get the render data for the filters page', async () => {
28
- const filterRenderData = <RenderFiltersReturnValue>(
29
- await AsyncFiltersUtils.default.renderFilters(mockReport.variant.specification.fields)
30
- )
29
+ const fields = mockReport.variant?.specification?.fields || []
30
+ const filterRenderData = <RenderFiltersReturnValue>await AsyncFiltersUtils.default.renderFilters(fields)
31
31
  expect(filterRenderData.filters).toEqual(MockRenderFiltersData.filters)
32
32
  expect(filterRenderData.sortBy).toEqual(MockRenderFiltersData.sortBy)
33
33
  })
@@ -53,17 +53,17 @@ describe('AsyncFiltersUtils', () => {
53
53
  })
54
54
 
55
55
  it('should set the start and end date using a relative duration - Next week', () => {
56
- const result = AsyncFiltersUtils.setDurationStartAndEnd(params.name, 'next-week', {}, {}, [], params.fields)
56
+ const result = AsyncFiltersUtils.setDurationStartAndEnd(params.name, 'next-seven-days', {}, {}, [], params.fields)
57
57
 
58
58
  const expectedResult = {
59
59
  querySummary: [
60
60
  {
61
61
  name: 'Duration Field name',
62
- value: 'Next week (2024-06-06 - 2024-06-13)',
62
+ value: 'Next seven days (2024-06-06 - 2024-06-13)',
63
63
  },
64
64
  ],
65
65
  filterData: {
66
- 'filters.DurationFieldName.relative-duration': 'next-week',
66
+ 'filters.DurationFieldName.relative-duration': 'next-seven-days',
67
67
  },
68
68
  query: {
69
69
  'filters.DurationFieldName.end': '2024-06-13',
@@ -75,16 +75,16 @@ describe('AsyncFiltersUtils', () => {
75
75
  })
76
76
 
77
77
  it('should set the start and end date using a relative duration - Last week', () => {
78
- const result = AsyncFiltersUtils.setDurationStartAndEnd(params.name, 'last-week', {}, {}, [], params.fields)
78
+ const result = AsyncFiltersUtils.setDurationStartAndEnd(params.name, 'last-seven-days', {}, {}, [], params.fields)
79
79
 
80
80
  const expectedResult = {
81
81
  querySummary: [
82
82
  {
83
83
  name: 'Duration Field name',
84
- value: 'Last week (2024-05-30 - 2024-06-06)',
84
+ value: 'Last seven days (2024-05-30 - 2024-06-06)',
85
85
  },
86
86
  ],
87
- filterData: { 'filters.DurationFieldName.relative-duration': 'last-week' },
87
+ filterData: { 'filters.DurationFieldName.relative-duration': 'last-seven-days' },
88
88
  query: {
89
89
  'filters.DurationFieldName.end': '2024-06-06',
90
90
  'filters.DurationFieldName.start': '2024-05-30',
@@ -65,7 +65,7 @@ export const setDurationStartAndEnd = (
65
65
 
66
66
  filterData[name as keyof Dict<string>] = value
67
67
 
68
- let queryValue = `${value.charAt(0).toUpperCase() + value.slice(1).replace('-', ' ')}`
68
+ let queryValue = `${value.charAt(0).toUpperCase() + value.slice(1).replaceAll('-', ' ')}`
69
69
  queryValue = `${queryValue} (${startDateDisplayString} - ${endDateDisplayString})`
70
70
  querySummary.push({
71
71
  name: field ? `${field.display}` : name,
@@ -14,6 +14,7 @@
14
14
  {% set endpoint = args.endpoint %}
15
15
  {% set type = args.type %}
16
16
  {% set interactive = args.interactive %}
17
+ {% set saveDefaultsEnabled = args.saveDefaultsEnabled %}
17
18
 
18
19
  {% set reportId = data.reportId %}
19
20
  {% set id = data.id %}
@@ -84,9 +85,11 @@
84
85
  {{ dprSelectedFilters() }}
85
86
  </div>
86
87
 
87
- <div class='dpr-request-save-filters-container'>
88
- {{ dprFiltersSaveDefaults('async-filters-form', './filters', hasDefaults, defaultsSaved) }}
89
- </div>
88
+ {% if saveDefaultsEnabled %}
89
+ <div class='dpr-request-save-filters-container'>
90
+ {{ dprFiltersSaveDefaults('async-filters-form', './filters', hasDefaults, defaultsSaved) }}
91
+ </div>
92
+ {% endif %}
90
93
 
91
94
  <div class="filter-container">
92
95
  {%- for filter in filters %}
@@ -1,2 +1,2 @@
1
- var l=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var g=(o,e,b,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of t(e))!d.call(o,a)&&a!==b&&l(o,a,{get:()=>e[a],enumerable:!(n=r(e,a))||n.enumerable});return o};var i=o=>g(l({},"__esModule",{value:!0}),o);var u={};module.exports=i(u);
1
+ "use strict";var l=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var g=(o,e,b,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of t(e))!d.call(o,a)&&a!==b&&l(o,a,{get:()=>e[a],enumerable:!(n=r(e,a))||n.enumerable});return o};var i=o=>g(l({},"__esModule",{value:!0}),o);var u={};module.exports=i(u);
2
2
  //# sourceMappingURL=types.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_catalogue/catalogue/types.ts"],
4
4
  "sourcesContent": ["export interface CatalogueFeatures {\n filteringEnabled?: boolean\n unauthorisedToggleEnabled?: boolean\n howToUseEnabled?: boolean\n bookmarkingEnabled?: boolean\n}\n"],
5
- "mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_exports", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- var f=Object.create;var i=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var w=(o,e)=>{for(var t in e)i(o,t,{get:e[t],enumerable:!0})},u=(o,e,t,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of h(e))!T.call(o,n)&&n!==t&&i(o,n,{get:()=>e[n],enumerable:!(l=k(e,n))||l.enumerable});return o};var s=(o,e,t)=>(t=o!=null?f(S(o)):{},u(e||!o||!o.__esModule?i(t,"default",{value:o,enumerable:!0}):t,o)),v=o=>u(i({},"__esModule",{value:!0}),o);var U={};w(U,{default:()=>P,init:()=>p});module.exports=v(U);var g=s(require("../catalogue-list/utils")),b=s(require("../../../utils/localsHelper"));const p=async({features:o,res:e,services:t})=>{const l=await g.default.getReportsList(e,t,o),{token:n,bookmarkingEnabled:m,dprUser:E,csrfToken:C}=b.default.getValues(e),a=(await t.productCollectionService.getProductCollections(n))?.map(c=>({value:c.id,text:c.name}));a&&a.length>0&&a.unshift({value:"RESET",text:"Full catalogue"});const d=await t.productCollectionStoreService.getSelectedProductCollectionId(E.id),r=d&&await t.productCollectionService.getProductCollection(n,d);return{data:{...l,csrfToken:C},productCollectionInfo:{productCollections:a,...r&&{selectedProductCollection:r}},features:F(m,o)}},F=(o,e)=>({filteringEnabled:e?.filteringEnabled===void 0||e.filteringEnabled,unauthorisedToggleEnabled:e?.unauthorisedToggleEnabled===void 0||e.unauthorisedToggleEnabled,howToUseEnabled:e?.howToUseEnabled===void 0||e.howToUseEnabled,bookmarkingEnabled:e?.bookmarkingEnabled!==void 0?e.bookmarkingEnabled:o});var P={init:p};0&&(module.exports={init});
1
+ "use strict";var E=Object.create;var i=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var v=(o,e)=>{for(var t in e)i(o,t,{get:e[t],enumerable:!0})},u=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of S(e))!w.call(o,l)&&l!==t&&i(o,l,{get:()=>e[l],enumerable:!(n=h(e,l))||n.enumerable});return o};var s=(o,e,t)=>(t=o!=null?E(T(o)):{},u(e||!o||!o.__esModule?i(t,"default",{value:o,enumerable:!0}):t,o)),F=o=>u(i({},"__esModule",{value:!0}),o);var k={};v(k,{default:()=>U,init:()=>C});module.exports=F(k);var g=s(require("../catalogue-list/utils")),p=s(require("../../../utils/localsHelper"));const C=async({features:o,res:e,services:t})=>{const n=await g.default.getReportsList(e,t,o),{token:l,bookmarkingEnabled:m,dprUser:b,csrfToken:f}=p.default.getValues(e),a=(await t.productCollectionService.getProductCollections(l))?.map(c=>({value:c.id,text:c.name}));a&&a.length>0&&a.unshift({value:"RESET",text:"Full catalogue"});const r=await t.productCollectionStoreService.getSelectedProductCollectionId(b.id),d=r&&await t.productCollectionService.getProductCollection(l,r);return{data:{...n,csrfToken:f},productCollectionInfo:{productCollections:a,...d&&{selectedProductCollection:d}},features:P(m,o)}},P=(o,e)=>({bookmarkingEnabled:o,filteringEnabled:e?.filteringEnabled===void 0||e.filteringEnabled,unauthorisedToggleEnabled:e?.unauthorisedToggleEnabled===void 0||e.unauthorisedToggleEnabled,howToUseEnabled:e?.howToUseEnabled===void 0||e.howToUseEnabled});var U={init:C};0&&(module.exports={init});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_catalogue/catalogue/utils.ts"],
4
- "sourcesContent": ["import { Response } from 'express'\nimport CatalogueListUtils from '../catalogue-list/utils'\nimport { Services } from '../../../types/Services'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { CatalogueFeatures } from './types'\n\nexport const init = async ({\n features,\n res,\n services,\n}: {\n features?: CatalogueFeatures\n res: Response\n services: Services\n}) => {\n const data = await CatalogueListUtils.getReportsList(res, services, features)\n const { token, bookmarkingEnabled, dprUser, csrfToken } = LocalsHelper.getValues(res)\n const productCollections = (await services.productCollectionService.getProductCollections(token))?.map(\n (collection) => ({\n value: collection.id,\n text: collection.name,\n }),\n )\n if (productCollections && productCollections.length > 0) {\n productCollections.unshift({ value: 'RESET', text: 'Full catalogue' })\n }\n const selectedProductCollectionId = await services.productCollectionStoreService.getSelectedProductCollectionId(\n dprUser.id,\n )\n const selectedProductCollection =\n selectedProductCollectionId &&\n (await services.productCollectionService.getProductCollection(token, selectedProductCollectionId))\n return {\n data: {\n ...data,\n csrfToken,\n },\n productCollectionInfo: {\n productCollections,\n ...(selectedProductCollection && { selectedProductCollection }),\n },\n features: setFeatures(bookmarkingEnabled, features),\n }\n}\n\nconst setFeatures = (bookmarkingEnabled: boolean, features?: CatalogueFeatures) => {\n return {\n filteringEnabled: features?.filteringEnabled === undefined || features.filteringEnabled,\n unauthorisedToggleEnabled: features?.unauthorisedToggleEnabled === undefined || features.unauthorisedToggleEnabled,\n howToUseEnabled: features?.howToUseEnabled === undefined || features.howToUseEnabled,\n bookmarkingEnabled: features?.bookmarkingEnabled !== undefined ? features.bookmarkingEnabled : bookmarkingEnabled,\n }\n}\n\nexport default {\n init,\n}\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA+B,sCAE/BC,EAAyB,0CAGlB,MAAMH,EAAO,MAAO,CACzB,SAAAI,EACA,IAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMC,EAAO,MAAM,EAAAC,QAAmB,eAAeH,EAAKC,EAAUF,CAAQ,EACtE,CAAE,MAAAK,EAAO,mBAAAC,EAAoB,QAAAC,EAAS,UAAAC,CAAU,EAAI,EAAAC,QAAa,UAAUR,CAAG,EAC9ES,GAAsB,MAAMR,EAAS,yBAAyB,sBAAsBG,CAAK,IAAI,IAChGM,IAAgB,CACf,MAAOA,EAAW,GAClB,KAAMA,EAAW,IACnB,EACF,EACID,GAAsBA,EAAmB,OAAS,GACpDA,EAAmB,QAAQ,CAAE,MAAO,QAAS,KAAM,gBAAiB,CAAC,EAEvE,MAAME,EAA8B,MAAMV,EAAS,8BAA8B,+BAC/EK,EAAQ,EACV,EACMM,EACJD,GACC,MAAMV,EAAS,yBAAyB,qBAAqBG,EAAOO,CAA2B,EAClG,MAAO,CACL,KAAM,CACJ,GAAGT,EACH,UAAAK,CACF,EACA,sBAAuB,CACrB,mBAAAE,EACA,GAAIG,GAA6B,CAAE,0BAAAA,CAA0B,CAC/D,EACA,SAAUC,EAAYR,EAAoBN,CAAQ,CACpD,CACF,EAEMc,EAAc,CAACR,EAA6BN,KACzC,CACL,iBAAkBA,GAAU,mBAAqB,QAAaA,EAAS,iBACvE,0BAA2BA,GAAU,4BAA8B,QAAaA,EAAS,0BACzF,gBAAiBA,GAAU,kBAAoB,QAAaA,EAAS,gBACrE,mBAAoBA,GAAU,qBAAuB,OAAYA,EAAS,mBAAqBM,CACjG,GAGF,IAAOX,EAAQ,CACb,KAAAC,CACF",
4
+ "sourcesContent": ["import { Response } from 'express'\nimport CatalogueListUtils from '../catalogue-list/utils'\nimport { Services } from '../../../types/Services'\nimport LocalsHelper from '../../../utils/localsHelper'\nimport { CatalogueFeatures } from './types'\n\nexport const init = async ({\n features,\n res,\n services,\n}: {\n features?: CatalogueFeatures\n res: Response\n services: Services\n}) => {\n const data = await CatalogueListUtils.getReportsList(res, services, features)\n const { token, bookmarkingEnabled, dprUser, csrfToken } = LocalsHelper.getValues(res)\n const productCollections = (await services.productCollectionService.getProductCollections(token))?.map(\n (collection) => ({\n value: collection.id,\n text: collection.name,\n }),\n )\n if (productCollections && productCollections.length > 0) {\n productCollections.unshift({ value: 'RESET', text: 'Full catalogue' })\n }\n const selectedProductCollectionId = await services.productCollectionStoreService.getSelectedProductCollectionId(\n dprUser.id,\n )\n const selectedProductCollection =\n selectedProductCollectionId &&\n (await services.productCollectionService.getProductCollection(token, selectedProductCollectionId))\n return {\n data: {\n ...data,\n csrfToken,\n },\n productCollectionInfo: {\n productCollections,\n ...(selectedProductCollection && { selectedProductCollection }),\n },\n features: setFeatures(bookmarkingEnabled, features),\n }\n}\n\nconst setFeatures = (bookmarkingEnabled: boolean, features?: CatalogueFeatures) => {\n return {\n bookmarkingEnabled,\n filteringEnabled: features?.filteringEnabled === undefined || features.filteringEnabled,\n unauthorisedToggleEnabled: features?.unauthorisedToggleEnabled === undefined || features.unauthorisedToggleEnabled,\n howToUseEnabled: features?.howToUseEnabled === undefined || features.howToUseEnabled,\n }\n}\n\nexport default {\n init,\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA+B,sCAE/BC,EAAyB,0CAGlB,MAAMH,EAAO,MAAO,CACzB,SAAAI,EACA,IAAAC,EACA,SAAAC,CACF,IAIM,CACJ,MAAMC,EAAO,MAAM,EAAAC,QAAmB,eAAeH,EAAKC,EAAUF,CAAQ,EACtE,CAAE,MAAAK,EAAO,mBAAAC,EAAoB,QAAAC,EAAS,UAAAC,CAAU,EAAI,EAAAC,QAAa,UAAUR,CAAG,EAC9ES,GAAsB,MAAMR,EAAS,yBAAyB,sBAAsBG,CAAK,IAAI,IAChGM,IAAgB,CACf,MAAOA,EAAW,GAClB,KAAMA,EAAW,IACnB,EACF,EACID,GAAsBA,EAAmB,OAAS,GACpDA,EAAmB,QAAQ,CAAE,MAAO,QAAS,KAAM,gBAAiB,CAAC,EAEvE,MAAME,EAA8B,MAAMV,EAAS,8BAA8B,+BAC/EK,EAAQ,EACV,EACMM,EACJD,GACC,MAAMV,EAAS,yBAAyB,qBAAqBG,EAAOO,CAA2B,EAClG,MAAO,CACL,KAAM,CACJ,GAAGT,EACH,UAAAK,CACF,EACA,sBAAuB,CACrB,mBAAAE,EACA,GAAIG,GAA6B,CAAE,0BAAAA,CAA0B,CAC/D,EACA,SAAUC,EAAYR,EAAoBN,CAAQ,CACpD,CACF,EAEMc,EAAc,CAACR,EAA6BN,KACzC,CACL,mBAAAM,EACA,iBAAkBN,GAAU,mBAAqB,QAAaA,EAAS,iBACvE,0BAA2BA,GAAU,4BAA8B,QAAaA,EAAS,0BACzF,gBAAiBA,GAAU,kBAAoB,QAAaA,EAAS,eACvE,GAGF,IAAOL,EAAQ,CACb,KAAAC,CACF",
6
6
  "names": ["utils_exports", "__export", "utils_default", "init", "__toCommonJS", "import_utils", "import_localsHelper", "features", "res", "services", "data", "CatalogueListUtils", "token", "bookmarkingEnabled", "dprUser", "csrfToken", "LocalsHelper", "productCollections", "collection", "selectedProductCollectionId", "selectedProductCollection", "setFeatures"]
7
7
  }
@@ -1,3 +1,4 @@
1
+ import { expect, jest } from '@jest/globals'
1
2
  import { Response } from 'express'
2
3
  import CatalogueUtils from './utils'
3
4
  import CatalogueListUtils from '../catalogue-list/utils'
@@ -7,6 +8,7 @@ describe('CatalogueUtils', () => {
7
8
  jest.spyOn(CatalogueListUtils, 'getReportsList').mockResolvedValue({
8
9
  head: [],
9
10
  rows: [],
11
+ id: 'id',
10
12
  })
11
13
 
12
14
  describe('init', () => {
@@ -19,6 +21,7 @@ describe('CatalogueUtils', () => {
19
21
  dprUser: {
20
22
  token: 'T0k3n',
21
23
  },
24
+ bookmarkingEnabled: false,
22
25
  },
23
26
  } as unknown as Response
24
27
 
@@ -37,9 +40,9 @@ describe('CatalogueUtils', () => {
37
40
  const result = await CatalogueUtils.init({ features: {}, res, services })
38
41
 
39
42
  expect(result).toEqual({
40
- data: { head: [], rows: [], csrfToken: 'csrfToken' },
43
+ data: { head: [], rows: [], csrfToken: 'csrfToken', id: 'id' },
41
44
  features: {
42
- bookmarkingEnabled: undefined,
45
+ bookmarkingEnabled: false,
43
46
  filteringEnabled: true,
44
47
  howToUseEnabled: true,
45
48
  unauthorisedToggleEnabled: true,
@@ -62,7 +65,7 @@ describe('CatalogueUtils', () => {
62
65
  })
63
66
 
64
67
  expect(result).toEqual({
65
- data: { head: [], rows: [], csrfToken: 'csrfToken' },
68
+ data: { head: [], rows: [], csrfToken: 'csrfToken', id: 'id' },
66
69
  features: {
67
70
  bookmarkingEnabled: false,
68
71
  filteringEnabled: false,
@@ -45,10 +45,10 @@ export const init = async ({
45
45
 
46
46
  const setFeatures = (bookmarkingEnabled: boolean, features?: CatalogueFeatures) => {
47
47
  return {
48
+ bookmarkingEnabled,
48
49
  filteringEnabled: features?.filteringEnabled === undefined || features.filteringEnabled,
49
50
  unauthorisedToggleEnabled: features?.unauthorisedToggleEnabled === undefined || features.unauthorisedToggleEnabled,
50
51
  howToUseEnabled: features?.howToUseEnabled === undefined || features.howToUseEnabled,
51
- bookmarkingEnabled: features?.bookmarkingEnabled !== undefined ? features.bookmarkingEnabled : bookmarkingEnabled,
52
52
  }
53
53
  }
54
54
 
@@ -1,2 +1,2 @@
1
- var P=Object.create;var b=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var O=(e,t)=>{for(var o in t)b(e,o,{get:t[o],enumerable:!0})},R=(e,t,o,D)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of E(t))!F.call(e,n)&&n!==o&&b(e,n,{get:()=>t[n],enumerable:!(D=B(t,n))||D.enumerable});return e};var M=(e,t,o)=>(o=e!=null?P(V(e)):{},R(t||!e||!e.__esModule?b(o,"default",{value:e,enumerable:!0}):o,e)),U=e=>R(b({},"__esModule",{value:!0}),e);var $={};O($,{default:()=>Y,getReportsList:()=>A});module.exports=U($);var d=require("../../../types/UserReports"),w=M(require("../../show-more/utils")),l=require("../../../utils/reportListsHelper"),x=M(require("../../../utils/localsHelper"));const A=async(e,t,o)=>{const{definitions:D,csrfToken:n,bookmarkingEnabled:H,dprUser:v}=x.default.getValues(e),C=D.sort((a,i)=>a.name<i.name?-1:a.name>i.name?1:0).flatMap(a=>{const{id:i,name:g,description:m,variants:S,dashboards:f,authorised:k}=a,p=S.map(r=>{const{id:s,name:u,description:c,isMissing:T}=r,N=r.loadType||d.LoadType.ASYNC;return{reportName:g,reportId:i,id:s,name:u,description:c,type:d.ReportType.REPORT,loadType:N,authorised:k,isMissing:T,...m&&m.length&&{reportDescription:m}}});let h=[];f&&(h=f.map(r=>{const{id:s,name:u,description:c}=r;return{reportName:g,reportId:i,id:s,name:u,description:c,type:d.ReportType.DASHBOARD,reportDescription:m,authorised:k,isMissing:!1,loadType:d.LoadType.ASYNC}}));const y=[...h,...p];return y.sort((r,s)=>r.name<s.name?-1:r.name>s.name?1:0),y}),I=await t.bookmarkService.getState(v.id),L=await Promise.all(C.map(async a=>{const{id:i,name:g,description:m,reportName:S,reportId:f,reportDescription:k,type:p,loadType:h,authorised:y,isMissing:r}=a,s=m||k||"",u=(0,l.setInitialHref)(h,p,f,i,e,r);let c;return(o?.bookmarkingEnabled!==void 0?o?.bookmarkingEnabled:H)&&(c=await t.bookmarkService.createBookMarkToggleHtml({userConfig:I,reportId:f,id:i,csrfToken:n,ctxId:"reports-list",reportType:p,isMissing:r})),[{html:`<p class="govuk-body-s">${S}</p>`},{html:(0,l.createListItemProductMin)(g,p)},{html:w.default.createShowMoreHtml(s)},{html:(0,l.createListActions)(u,p,h,c,y,r)}]}));return{head:[{text:"Product",classes:"dpr-product-head"},{text:"Name",classes:"dpr-name-head"},{text:"Description",classes:"dpr-description-head"},{text:"Actions",classes:"dpr-bookmark-head"}],rows:L,id:"dpr-reports-catalogue"}};var Y={getReportsList:A};0&&(module.exports={getReportsList});
1
+ "use strict";var N=Object.create;var b=Object.defineProperty;var P=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var O=(e,t)=>{for(var o in t)b(e,o,{get:t[o],enumerable:!0})},M=(e,t,o,D)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of E(t))!F.call(e,n)&&n!==o&&b(e,n,{get:()=>t[n],enumerable:!(D=P(t,n))||D.enumerable});return e};var R=(e,t,o)=>(o=e!=null?N(V(e)):{},M(t||!e||!e.__esModule?b(o,"default",{value:e,enumerable:!0}):o,e)),U=e=>M(b({},"__esModule",{value:!0}),e);var $={};O($,{default:()=>Y,getReportsList:()=>A});module.exports=U($);var d=require("../../../types/UserReports"),w=R(require("../../show-more/utils")),l=require("../../../utils/reportListsHelper"),x=R(require("../../../utils/localsHelper"));const A=async(e,t,o)=>{const{definitions:D,csrfToken:n,bookmarkingEnabled:H,dprUser:L}=x.default.getValues(e),v=D.sort((a,i)=>a.name<i.name?-1:a.name>i.name?1:0).flatMap(a=>{const{id:i,name:g,description:m,variants:T,dashboards:f,authorised:y}=a,p=T.map(r=>{const{id:s,name:u,description:c,isMissing:S}=r,I=r.loadType||d.LoadType.ASYNC;return{reportName:g,reportId:i,id:s,name:u,description:c||"",type:d.ReportType.REPORT,loadType:I,authorised:y,isMissing:S,...m&&m.length&&{reportDescription:m}}});let h=[];f&&(h=f.map(r=>{const{id:s,name:u,description:c}=r;return{reportName:g,reportId:i,id:s,name:u,description:c||"",type:d.ReportType.DASHBOARD,reportDescription:m||"",authorised:y,isMissing:!1,loadType:d.LoadType.ASYNC}}));const k=[...h,...p];return k.sort((r,s)=>r.name<s.name?-1:r.name>s.name?1:0),k}),B=await t.bookmarkService.getState(L.id),C=await Promise.all(v.map(async a=>{const{id:i,name:g,description:m,reportName:T,reportId:f,reportDescription:y,type:p,loadType:h,authorised:k,isMissing:r}=a,s=m||y||"",u=(0,l.setInitialHref)(h,p,f,i,e,r);let c;return(o?.bookmarkingEnabled!==void 0?o?.bookmarkingEnabled:H)&&(c=await t.bookmarkService.createBookMarkToggleHtml({userConfig:B,reportId:f,id:i,csrfToken:n,ctxId:"reports-list",reportType:p,isMissing:!!r})),[{html:`<p class="govuk-body-s">${T}</p>`},{html:(0,l.createListItemProductMin)(g,p)},{html:w.default.createShowMoreHtml(s)},{html:(0,l.createListActions)(u,p,h,c,k,r)}]}));return{head:[{text:"Product",classes:"dpr-product-head"},{text:"Name",classes:"dpr-name-head"},{text:"Description",classes:"dpr-description-head"},{text:"Actions",classes:"dpr-bookmark-head"}],rows:C,id:"dpr-reports-catalogue"}};var Y={getReportsList:A};0&&(module.exports={getReportsList});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_catalogue/catalogue-list/utils.ts"],
4
- "sourcesContent": ["import { Response } from 'express'\nimport { components } from '../../../types/api'\nimport { Services } from '../../../types/Services'\nimport { DefinitionData, LoadType, ReportType } from '../../../types/UserReports'\nimport ShowMoreUtils from '../../show-more/utils'\nimport { createListItemProductMin, createListActions, setInitialHref } from '../../../utils/reportListsHelper'\nimport { CatalogueFeatures } from '../catalogue/types'\nimport LocalsHelper from '../../../utils/localsHelper'\n\nexport const getReportsList = async (\n res: Response,\n services: Services,\n features?: CatalogueFeatures,\n): Promise<{ head: { text: string }[]; rows: { text?: string; html?: string }[]; id: string }> => {\n const { definitions, csrfToken, bookmarkingEnabled, dprUser } = LocalsHelper.getValues(res)\n\n // Sort report Definitions by product name\n const sortedDefinitions = definitions.sort(\n (a: components['schemas']['ReportDefinitionSummary'], b: components['schemas']['ReportDefinitionSummary']) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n },\n )\n\n // Sort by variant/dashboard name\n const sortedVariants = sortedDefinitions.flatMap(\n (\n def: components['schemas']['ReportDefinitionSummary'] & {\n dashboards: components['schemas']['DashboardDefinition'][]\n authorised: boolean\n },\n ) => {\n const { id: reportId, name: reportName, description: reportDescription, variants, dashboards, authorised } = def\n\n const variantsArray: DefinitionData[] = variants.map(\n (variant: components['schemas']['VariantDefinitionSummary']) => {\n const { id, name, description, isMissing } = variant\n\n // NOTE: loadType added to VariantDefinitionSummary mocked data to dictate the load/request journey. Not present in API response. To discuss\n const loadType = variant.loadType || LoadType.ASYNC\n\n return {\n reportName,\n reportId,\n id,\n name,\n description,\n type: ReportType.REPORT,\n loadType,\n authorised,\n isMissing,\n ...(reportDescription && reportDescription.length && { reportDescription }),\n }\n },\n )\n\n let dashboardsArray: DefinitionData[] = []\n if (dashboards) {\n dashboardsArray = dashboards.map((dashboard: components['schemas']['DashboardDefinition']) => {\n const { id, name, description } = dashboard\n return {\n reportName,\n reportId,\n id,\n name,\n description,\n type: ReportType.DASHBOARD,\n reportDescription,\n authorised,\n isMissing: false,\n loadType: LoadType.ASYNC,\n }\n })\n }\n\n const mergedArray = [...dashboardsArray, ...variantsArray]\n\n mergedArray.sort((a: DefinitionData, b: DefinitionData) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n })\n\n return mergedArray\n },\n )\n\n const userConfig = await services.bookmarkService.getState(dprUser.id)\n const rows = await Promise.all(\n sortedVariants.map(async (v: DefinitionData) => {\n const { id, name, description, reportName, reportId, reportDescription, type, loadType, authorised, isMissing } =\n v\n const desc = description || reportDescription || ''\n\n const href = setInitialHref(loadType, type, reportId, id, res, isMissing)\n\n let bookmarkHtml\n const showBookMarkToggle =\n features?.bookmarkingEnabled !== undefined ? features?.bookmarkingEnabled : bookmarkingEnabled\n\n if (showBookMarkToggle) {\n bookmarkHtml = await services.bookmarkService.createBookMarkToggleHtml({\n userConfig,\n reportId,\n id,\n csrfToken,\n ctxId: 'reports-list',\n reportType: type,\n isMissing,\n })\n }\n\n return [\n { html: `<p class=\"govuk-body-s\">${reportName}</p>` },\n { html: createListItemProductMin(name, <ReportType>type) },\n { html: ShowMoreUtils.createShowMoreHtml(desc) },\n { html: createListActions(href, type, loadType, bookmarkHtml, authorised, isMissing) },\n ]\n }),\n )\n\n const head = [\n { text: 'Product', classes: 'dpr-product-head' },\n { text: 'Name', classes: 'dpr-name-head' },\n { text: 'Description', classes: 'dpr-description-head' },\n { text: 'Actions', classes: 'dpr-bookmark-head' },\n ]\n\n return {\n head,\n rows,\n id: 'dpr-reports-catalogue',\n }\n}\n\nexport default {\n getReportsList,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Response } from 'express'\nimport { components } from '../../../types/api'\nimport { Services } from '../../../types/Services'\nimport { DefinitionData, LoadType, ReportType } from '../../../types/UserReports'\nimport ShowMoreUtils from '../../show-more/utils'\nimport { createListItemProductMin, createListActions, setInitialHref } from '../../../utils/reportListsHelper'\nimport { CatalogueFeatures } from '../catalogue/types'\nimport LocalsHelper from '../../../utils/localsHelper'\n\nexport const getReportsList = async (\n res: Response,\n services: Services,\n features?: CatalogueFeatures,\n): Promise<{ head: { text: string }[]; rows: { text?: string; html?: string }[]; id: string }> => {\n const { definitions, csrfToken, bookmarkingEnabled, dprUser } = LocalsHelper.getValues(res)\n\n // Sort report Definitions by product name\n const sortedDefinitions = definitions.sort(\n (a: components['schemas']['ReportDefinitionSummary'], b: components['schemas']['ReportDefinitionSummary']) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n },\n )\n\n // Sort by variant/dashboard name\n const sortedVariants = sortedDefinitions.flatMap(\n (\n def: components['schemas']['ReportDefinitionSummary'] & {\n dashboards: components['schemas']['DashboardDefinition'][]\n authorised: boolean\n },\n ) => {\n const { id: reportId, name: reportName, description: reportDescription, variants, dashboards, authorised } = def\n\n const variantsArray: DefinitionData[] = variants.map(\n (variant: components['schemas']['VariantDefinitionSummary']) => {\n const { id, name, description, isMissing } = variant\n\n // NOTE: loadType added to VariantDefinitionSummary mocked data to dictate the load/request journey. Not present in API response. To discuss\n const loadType = variant.loadType || LoadType.ASYNC\n\n return {\n reportName,\n reportId,\n id,\n name,\n description: description || '',\n type: ReportType.REPORT,\n loadType: loadType as LoadType,\n authorised,\n isMissing,\n ...(reportDescription && reportDescription.length && { reportDescription }),\n }\n },\n )\n\n let dashboardsArray: DefinitionData[] = []\n if (dashboards) {\n dashboardsArray = dashboards.map((dashboard: components['schemas']['DashboardDefinition']) => {\n const { id, name, description } = dashboard\n return {\n reportName,\n reportId,\n id,\n name,\n description: description || '',\n type: ReportType.DASHBOARD,\n reportDescription: reportDescription || '',\n authorised,\n isMissing: false,\n loadType: LoadType.ASYNC,\n }\n })\n }\n\n const mergedArray = [...dashboardsArray, ...variantsArray]\n\n mergedArray.sort((a: DefinitionData, b: DefinitionData) => {\n if (a.name < b.name) return -1\n if (a.name > b.name) return 1\n return 0\n })\n\n return mergedArray\n },\n )\n\n const userConfig = await services.bookmarkService.getState(dprUser.id)\n const rows = await Promise.all(\n sortedVariants.map(async (v: DefinitionData) => {\n const { id, name, description, reportName, reportId, reportDescription, type, loadType, authorised, isMissing } =\n v\n const desc = description || reportDescription || ''\n\n const href = setInitialHref(loadType, type, reportId, id, res, isMissing)\n\n let bookmarkHtml\n const showBookMarkToggle =\n features?.bookmarkingEnabled !== undefined ? features?.bookmarkingEnabled : bookmarkingEnabled\n\n if (showBookMarkToggle) {\n bookmarkHtml = await services.bookmarkService.createBookMarkToggleHtml({\n userConfig,\n reportId,\n id,\n csrfToken,\n ctxId: 'reports-list',\n reportType: type,\n isMissing: Boolean(isMissing),\n })\n }\n\n return [\n { html: `<p class=\"govuk-body-s\">${reportName}</p>` },\n { html: createListItemProductMin(name, <ReportType>type) },\n { html: ShowMoreUtils.createShowMoreHtml(desc) },\n { html: createListActions(href, type, loadType, bookmarkHtml, authorised, isMissing) },\n ]\n }),\n )\n\n const head = [\n { text: 'Product', classes: 'dpr-product-head' },\n { text: 'Name', classes: 'dpr-name-head' },\n { text: 'Description', classes: 'dpr-description-head' },\n { text: 'Actions', classes: 'dpr-bookmark-head' },\n ]\n\n return {\n head,\n rows,\n id: 'dpr-reports-catalogue',\n }\n}\n\nexport default {\n getReportsList,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["utils_exports", "__export", "utils_default", "getReportsList", "__toCommonJS", "import_UserReports", "import_utils", "import_reportListsHelper", "import_localsHelper", "res", "services", "features", "definitions", "csrfToken", "bookmarkingEnabled", "dprUser", "LocalsHelper", "sortedVariants", "b", "def", "reportId", "reportName", "reportDescription", "variants", "dashboards", "authorised", "variantsArray", "variant", "id", "name", "description", "isMissing", "loadType", "dashboardsArray", "dashboard", "mergedArray", "a", "userConfig", "rows", "v", "type", "desc", "href", "bookmarkHtml", "ShowMoreUtils"]
7
7
  }
@@ -1,3 +1,4 @@
1
+ import { expect, jest } from '@jest/globals'
1
2
  import { Response } from 'express'
2
3
  import CatalogueUtils from './utils'
3
4
  import { Services } from '../../../types/Services'
@@ -45,9 +45,9 @@ export const getReportsList = async (
45
45
  reportId,
46
46
  id,
47
47
  name,
48
- description,
48
+ description: description || '',
49
49
  type: ReportType.REPORT,
50
- loadType,
50
+ loadType: loadType as LoadType,
51
51
  authorised,
52
52
  isMissing,
53
53
  ...(reportDescription && reportDescription.length && { reportDescription }),
@@ -64,9 +64,9 @@ export const getReportsList = async (
64
64
  reportId,
65
65
  id,
66
66
  name,
67
- description,
67
+ description: description || '',
68
68
  type: ReportType.DASHBOARD,
69
- reportDescription,
69
+ reportDescription: reportDescription || '',
70
70
  authorised,
71
71
  isMissing: false,
72
72
  loadType: LoadType.ASYNC,
@@ -107,7 +107,7 @@ export const getReportsList = async (
107
107
  csrfToken,
108
108
  ctxId: 'reports-list',
109
109
  reportType: type,
110
- isMissing,
110
+ isMissing: Boolean(isMissing),
111
111
  })
112
112
  }
113
113
 
@@ -1,2 +1,2 @@
1
- var h=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var m=(u,t)=>{for(var s in t)h(u,s,{get:t[s],enumerable:!0})},f=(u,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of k(t))!b.call(u,e)&&e!==s&&h(u,e,{get:()=>t[e],enumerable:!(i=p(t,e))||i.enumerable});return u};var C=u=>f(h({},"__esModule",{value:!0}),u);var g={};m(g,{Buckets:()=>c,default:()=>d});module.exports=C(g);var l=require("with-alpha-hex");class c{constructor(t,s,i,e,o){this.baseColour="#1d70b8";this.ragColours=["#00703c","#ffdd00","#d4351c"];this.buckets=[];this.useRagColour=!1;this.bucketCount=0;this.onlyBucketColoursDefined=!1;this.autoBucketing=!1;this.hasRagScore=!1;this.options={};this.initFromOptions=t=>{this.options=t.options||{},this.baseColour=this.options?.baseColour||this.baseColour,this.useRagColour=this.options?.useRagColour||!1,this.onlyBucketColoursDefined=this.options&&this.options.buckets?this.options?.buckets?.every(s=>!s.max&&!s.min&&s.hexColour!==void 0):!1};this.initBuckets=()=>{const{buckets:t}=this.options;this.setBucketCount(),this.initBucketColours(),t?this.hasRagScore?this.onlyBucketColoursDefined&&(this.buckets=t):!this.hasRagScore&&this.onlyBucketColoursDefined&&this.autoBucketing?this.initAutomaticThresholdBucket():this.initCustomThresholdBuckets():!t&&!this.hasRagScore&&this.autoBucketing&&this.initAutomaticThresholdBucket()};this.initCustomThresholdBuckets=()=>{this.buckets=this.options.buckets?this.options.buckets.map((t,s)=>({...this.buckets[s],...t})):[]};this.initAutomaticThresholdBucket=()=>{const{min:t,max:s,bucketSize:i}=this.setAutomaticThresholdSize();let e=0;this.buckets=this.buckets.map((o,a)=>{let r=t;return a!==0&&(r=e+1),e=i*(a+1)+t,a===this.buckets.length-1&&(e=s),{hexColour:this.options?.buckets?this.options.buckets[a]?.hexColour:o.hexColour,min:r,max:e}})};this.initBucketColours=()=>{if(this.useRagColour&&this.bucketCount===3)this.buckets=Array.from(new Array(this.bucketCount)).map((t,s)=>({hexColour:this.ragColours[s]}));else{const t=1/this.bucketCount;this.buckets=Array.from(new Array(this.bucketCount)).map((s,i)=>{const e=t*(i+1);return{hexColour:(0,l.withAlphaHex)(this.baseColour,e)}})}};this.setAutomaticThresholdSize=()=>{const t=this.responseData.map(o=>Number(o[this.valueKey].raw)),s=Math.min(...t),i=Math.max(...t),e=Math.ceil((i-s)/this.bucketCount);return{min:s,max:i,bucketSize:e}};this.setBucketCount=()=>{const{buckets:t}=this.options;if(this.hasRagScore)if(this.useRagColour)this.bucketCount=3;else{const s=this.responseData.reduce((i,e)=>(e[this.valueKey].rag!==void 0&&i.push(e[this.valueKey].rag),i),[]);this.bucketCount=Math.max(...s)+1}else t?this.bucketCount=t.length:this.bucketCount=3};this.getBucketForValue=(t,s)=>{let i="",e=0;return s!==void 0?{colour:this.buckets[s].hexColour||i,score:s}:(this.buckets.forEach((o,a)=>{const{min:r,max:n}=o;!r&&n&&t<=n&&(i=o.hexColour||i,e=a),r&&t>=r&&n&&t<=n&&(i=o.hexColour||i,e=a),r&&!n&&t>=r&&(i=o.hexColour||i,e=a)}),{colour:i,score:e})};this.getBuckets=()=>this.buckets;this.responseData=t,this.initFromOptions(s),this.valueKey=i,this.hasRagScore=t[0][this.valueKey].rag!==void 0,this.autoBucketing=!!e,o&&(this.ragColours=o),this.initBuckets()}}var d=c;0&&(module.exports={Buckets});
1
+ "use strict";var h=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var m=(u,t)=>{for(var s in t)h(u,s,{get:t[s],enumerable:!0})},f=(u,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of k(t))!b.call(u,e)&&e!==s&&h(u,e,{get:()=>t[e],enumerable:!(i=p(t,e))||i.enumerable});return u};var C=u=>f(h({},"__esModule",{value:!0}),u);var g={};m(g,{Buckets:()=>c,default:()=>d});module.exports=C(g);var l=require("with-alpha-hex");class c{constructor(t,s,i,e,o){this.baseColour="#1d70b8";this.ragColours=["#00703c","#ffdd00","#d4351c"];this.buckets=[];this.useRagColour=!1;this.bucketCount=0;this.onlyBucketColoursDefined=!1;this.autoBucketing=!1;this.hasRagScore=!1;this.options={};this.initFromOptions=t=>{this.options=t.options||{},this.baseColour=this.options?.baseColour||this.baseColour,this.useRagColour=this.options?.useRagColour||!1,this.onlyBucketColoursDefined=this.options&&this.options.buckets?this.options?.buckets?.every(s=>!s.max&&!s.min&&s.hexColour!==void 0):!1};this.initBuckets=()=>{const{buckets:t}=this.options;this.setBucketCount(),this.initBucketColours(),t?this.hasRagScore?this.onlyBucketColoursDefined&&(this.buckets=t):!this.hasRagScore&&this.onlyBucketColoursDefined&&this.autoBucketing?this.initAutomaticThresholdBucket():this.initCustomThresholdBuckets():!t&&!this.hasRagScore&&this.autoBucketing&&this.initAutomaticThresholdBucket()};this.initCustomThresholdBuckets=()=>{this.buckets=this.options.buckets?this.options.buckets.map((t,s)=>({...this.buckets[s],...t})):[]};this.initAutomaticThresholdBucket=()=>{const{min:t,max:s,bucketSize:i}=this.setAutomaticThresholdSize();let e=0;this.buckets=this.buckets.map((o,a)=>{let r=t;return a!==0&&(r=e+1),e=i*(a+1)+t,a===this.buckets.length-1&&(e=s),{hexColour:this.options?.buckets?this.options.buckets[a]?.hexColour:o.hexColour,min:r,max:e}})};this.initBucketColours=()=>{if(this.useRagColour&&this.bucketCount===3)this.buckets=Array.from(new Array(this.bucketCount)).map((t,s)=>({hexColour:this.ragColours[s]}));else{const t=1/this.bucketCount;this.buckets=Array.from(new Array(this.bucketCount)).map((s,i)=>{const e=t*(i+1);return{hexColour:(0,l.withAlphaHex)(this.baseColour,e)}})}};this.setAutomaticThresholdSize=()=>{const t=this.responseData.map(o=>Number(o[this.valueKey].raw)),s=Math.min(...t),i=Math.max(...t),e=Math.ceil((i-s)/this.bucketCount);return{min:s,max:i,bucketSize:e}};this.setBucketCount=()=>{const{buckets:t}=this.options;if(this.hasRagScore)if(this.useRagColour)this.bucketCount=3;else{const s=this.responseData.reduce((i,e)=>(e[this.valueKey].rag!==void 0&&i.push(e[this.valueKey].rag),i),[]);this.bucketCount=Math.max(...s)+1}else t?this.bucketCount=t.length:this.bucketCount=3};this.getBucketForValue=(t,s)=>{let i="",e=0;return s!==void 0?{colour:this.buckets[s].hexColour||i,score:s}:(this.buckets.forEach((o,a)=>{const{min:r,max:n}=o;!r&&n&&t<=n&&(i=o.hexColour||i,e=a),r&&t>=r&&n&&t<=n&&(i=o.hexColour||i,e=a),r&&!n&&t>=r&&(i=o.hexColour||i,e=a)}),{colour:i,score:e})};this.getBuckets=()=>this.buckets;this.responseData=t,this.initFromOptions(s),this.valueKey=i,this.hasRagScore=t[0][this.valueKey].rag!==void 0,this.autoBucketing=!!e,o&&(this.ragColours=o),this.initBuckets()}}var d=c;0&&(module.exports={Buckets});
2
2
  //# sourceMappingURL=Buckets.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_charts/chart/Buckets.ts"],
4
- "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { withAlphaHex } from 'with-alpha-hex'\nimport { DashboardDataResponse, DashboardDataResponseWithRag } from '../../../types/Metrics'\nimport {\n DashboardVisualisationBucket,\n BucketDashboardVisualisationOptions,\n} from '../../_dashboards/dashboard-visualisation/types'\nimport { components } from '../../../types/api'\n\nclass Buckets {\n private baseColour = '#1d70b8'\n\n private ragColours: string[] = ['#00703c', '#ffdd00', '#d4351c']\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private useRagColour = false\n\n private bucketCount = 0\n\n private onlyBucketColoursDefined = false\n\n private autoBucketing = false\n\n private hasRagScore = false\n\n private valueKey: string\n\n private options: BucketDashboardVisualisationOptions = {}\n\n responseData: DashboardDataResponse[]\n\n constructor(\n responseData: DashboardDataResponse[],\n definition: components['schemas']['DashboardVisualisationDefinition'],\n valueKey: string,\n autoBucketing?: boolean,\n ragColours?: string[],\n ) {\n this.responseData = responseData\n this.initFromOptions(definition)\n this.valueKey = valueKey\n this.hasRagScore = responseData[0][this.valueKey].rag !== undefined\n this.autoBucketing = Boolean(autoBucketing)\n if (ragColours) this.ragColours = ragColours\n this.initBuckets()\n }\n\n private initFromOptions = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.options = <BucketDashboardVisualisationOptions>definition.options || {}\n this.baseColour = this.options?.baseColour || this.baseColour\n this.useRagColour = this.options?.useRagColour || false\n this.onlyBucketColoursDefined =\n this.options && this.options.buckets\n ? this.options?.buckets?.every((bucket) => !bucket.max && !bucket.min && bucket.hexColour !== undefined)\n : false\n }\n\n private initBuckets = () => {\n const { buckets } = this.options\n\n this.setBucketCount()\n this.initBucketColours()\n\n if (buckets) {\n if (this.hasRagScore) {\n if (this.onlyBucketColoursDefined) {\n this.buckets = buckets\n }\n } else if (!this.hasRagScore && this.onlyBucketColoursDefined && this.autoBucketing) {\n this.initAutomaticThresholdBucket()\n } else {\n this.initCustomThresholdBuckets()\n }\n } else if (!buckets && !this.hasRagScore && this.autoBucketing) {\n this.initAutomaticThresholdBucket()\n }\n }\n\n private initCustomThresholdBuckets = () => {\n this.buckets = this.options.buckets\n ? this.options.buckets.map((bucket, i) => {\n return {\n ...this.buckets[i],\n ...bucket,\n }\n })\n : []\n }\n\n /**\n * Initialises the bucket thresholds by defining the range between the min and max\n * and dividing into 3 equal parts\n */\n private initAutomaticThresholdBucket = () => {\n const { min, max, bucketSize } = this.setAutomaticThresholdSize()\n let maxValue = 0\n this.buckets = this.buckets.map((bucket, i) => {\n let minValue = min\n if (i !== 0) minValue = maxValue + 1\n maxValue = bucketSize * (i + 1) + min\n if (i === this.buckets.length - 1) maxValue = max\n\n return {\n hexColour: this.options?.buckets ? this.options.buckets[i]?.hexColour : bucket.hexColour,\n min: minValue,\n max: maxValue,\n }\n })\n }\n\n private initBucketColours = () => {\n if (this.useRagColour && this.bucketCount === 3) {\n this.buckets = Array.from(new Array(this.bucketCount)).map((d, i) => {\n return {\n hexColour: this.ragColours[i],\n }\n })\n } else {\n const alphaDivision = 1 / this.bucketCount\n this.buckets = Array.from(new Array(this.bucketCount)).map((d, i) => {\n const division = alphaDivision * (i + 1)\n return {\n hexColour: withAlphaHex(this.baseColour, division),\n }\n })\n }\n }\n\n private setAutomaticThresholdSize = () => {\n const values = this.responseData.map((resData) => Number(resData[this.valueKey].raw))\n const min = Math.min(...values)\n const max = Math.max(...values)\n const bucketSize = Math.ceil((max - min) / this.bucketCount)\n\n return {\n min,\n max,\n bucketSize,\n }\n }\n\n private setBucketCount = () => {\n const { buckets } = this.options\n if (this.hasRagScore) {\n if (this.useRagColour) {\n this.bucketCount = 3\n } else {\n const allRags: number[] = this.responseData.reduce((acc: number[], resData: DashboardDataResponse) => {\n if (resData[this.valueKey].rag !== undefined) {\n acc.push(<number>resData[this.valueKey].rag)\n }\n return acc\n }, [])\n this.bucketCount = Math.max(...allRags) + 1\n }\n } else if (buckets) {\n this.bucketCount = buckets.length\n } else {\n this.bucketCount = 3\n }\n }\n\n getBucketForValue = (value: number, ragScore?: number): { colour: string; score: number } => {\n let colour = ''\n let score = 0\n\n if (ragScore !== undefined) {\n return {\n colour: this.buckets[ragScore].hexColour || colour,\n score: ragScore,\n }\n }\n\n this.buckets.forEach((bucket, index) => {\n const { min, max } = bucket\n // First bucket\n if (!min && max && value <= max) {\n colour = bucket.hexColour || colour\n score = index\n }\n // middle buckets\n if (min && value >= min && max && value <= max) {\n colour = bucket.hexColour || colour\n score = index\n }\n // last bucket\n if (min && !max && value >= min) {\n colour = bucket.hexColour || colour\n score = index\n }\n })\n\n return {\n colour,\n score,\n }\n }\n\n getBuckets = () => {\n return this.buckets\n }\n}\n\nexport { Buckets }\nexport default Buckets\n"],
5
- "mappings": "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",
6
- "names": ["Buckets_exports", "__export", "Buckets", "Buckets_default", "__toCommonJS", "import_with_alpha_hex", "responseData", "definition", "valueKey", "autoBucketing", "ragColours", "bucket", "buckets", "i", "min", "max", "bucketSize", "maxValue", "minValue", "d", "alphaDivision", "division", "values", "resData", "allRags", "acc", "value", "ragScore", "colour", "score", "index"]
4
+ "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { withAlphaHex } from 'with-alpha-hex'\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport {\n DashboardVisualisationBucket,\n BucketDashboardVisualisationOptions,\n} from '../../_dashboards/dashboard-visualisation/types'\nimport { components } from '../../../types/api'\n\nclass Buckets {\n private baseColour = '#1d70b8'\n\n private ragColours: string[] = ['#00703c', '#ffdd00', '#d4351c']\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private useRagColour = false\n\n private bucketCount = 0\n\n private onlyBucketColoursDefined = false\n\n private autoBucketing = false\n\n private hasRagScore = false\n\n private valueKey: string\n\n private options: BucketDashboardVisualisationOptions = {}\n\n responseData: DashboardDataResponse[]\n\n constructor(\n responseData: DashboardDataResponse[],\n definition: components['schemas']['DashboardVisualisationDefinition'],\n valueKey: string,\n autoBucketing?: boolean,\n ragColours?: string[],\n ) {\n this.responseData = responseData\n this.initFromOptions(definition)\n this.valueKey = valueKey\n this.hasRagScore = responseData[0][this.valueKey].rag !== undefined\n this.autoBucketing = Boolean(autoBucketing)\n if (ragColours) this.ragColours = ragColours\n this.initBuckets()\n }\n\n private initFromOptions = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.options = <BucketDashboardVisualisationOptions>definition.options || {}\n this.baseColour = this.options?.baseColour || this.baseColour\n this.useRagColour = this.options?.useRagColour || false\n this.onlyBucketColoursDefined =\n this.options && this.options.buckets\n ? this.options?.buckets?.every((bucket) => !bucket.max && !bucket.min && bucket.hexColour !== undefined)\n : false\n }\n\n private initBuckets = () => {\n const { buckets } = this.options\n\n this.setBucketCount()\n this.initBucketColours()\n\n if (buckets) {\n if (this.hasRagScore) {\n if (this.onlyBucketColoursDefined) {\n this.buckets = buckets\n }\n } else if (!this.hasRagScore && this.onlyBucketColoursDefined && this.autoBucketing) {\n this.initAutomaticThresholdBucket()\n } else {\n this.initCustomThresholdBuckets()\n }\n } else if (!buckets && !this.hasRagScore && this.autoBucketing) {\n this.initAutomaticThresholdBucket()\n }\n }\n\n private initCustomThresholdBuckets = () => {\n this.buckets = this.options.buckets\n ? this.options.buckets.map((bucket, i) => {\n return {\n ...this.buckets[i],\n ...bucket,\n }\n })\n : []\n }\n\n /**\n * Initialises the bucket thresholds by defining the range between the min and max\n * and dividing into 3 equal parts\n */\n private initAutomaticThresholdBucket = () => {\n const { min, max, bucketSize } = this.setAutomaticThresholdSize()\n let maxValue = 0\n this.buckets = this.buckets.map((bucket, i) => {\n let minValue = min\n if (i !== 0) minValue = maxValue + 1\n maxValue = bucketSize * (i + 1) + min\n if (i === this.buckets.length - 1) maxValue = max\n\n return {\n hexColour: this.options?.buckets ? this.options.buckets[i]?.hexColour : bucket.hexColour,\n min: minValue,\n max: maxValue,\n }\n })\n }\n\n private initBucketColours = () => {\n if (this.useRagColour && this.bucketCount === 3) {\n this.buckets = Array.from(new Array(this.bucketCount)).map((_d, i) => {\n return {\n hexColour: this.ragColours[i],\n }\n })\n } else {\n const alphaDivision = 1 / this.bucketCount\n this.buckets = Array.from(new Array(this.bucketCount)).map((_d, i) => {\n const division = alphaDivision * (i + 1)\n return {\n hexColour: withAlphaHex(this.baseColour, division),\n }\n })\n }\n }\n\n private setAutomaticThresholdSize = () => {\n const values = this.responseData.map((resData) => Number(resData[this.valueKey].raw))\n const min = Math.min(...values)\n const max = Math.max(...values)\n const bucketSize = Math.ceil((max - min) / this.bucketCount)\n\n return {\n min,\n max,\n bucketSize,\n }\n }\n\n private setBucketCount = () => {\n const { buckets } = this.options\n if (this.hasRagScore) {\n if (this.useRagColour) {\n this.bucketCount = 3\n } else {\n const allRags: number[] = this.responseData.reduce((acc: number[], resData: DashboardDataResponse) => {\n if (resData[this.valueKey].rag !== undefined) {\n acc.push(<number>resData[this.valueKey].rag)\n }\n return acc\n }, [])\n this.bucketCount = Math.max(...allRags) + 1\n }\n } else if (buckets) {\n this.bucketCount = buckets.length\n } else {\n this.bucketCount = 3\n }\n }\n\n getBucketForValue = (value: number, ragScore?: number): { colour: string; score: number } => {\n let colour = ''\n let score = 0\n\n if (ragScore !== undefined) {\n return {\n colour: this.buckets[ragScore].hexColour || colour,\n score: ragScore,\n }\n }\n\n this.buckets.forEach((bucket, index) => {\n const { min, max } = bucket\n // First bucket\n if (!min && max && value <= max) {\n colour = bucket.hexColour || colour\n score = index\n }\n // middle buckets\n if (min && value >= min && max && value <= max) {\n colour = bucket.hexColour || colour\n score = index\n }\n // last bucket\n if (min && !max && value >= min) {\n colour = bucket.hexColour || colour\n score = index\n }\n })\n\n return {\n colour,\n score,\n }\n }\n\n getBuckets = () => {\n return this.buckets\n }\n}\n\nexport { Buckets }\nexport default Buckets\n"],
5
+ "mappings": "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",
6
+ "names": ["Buckets_exports", "__export", "Buckets", "Buckets_default", "__toCommonJS", "import_with_alpha_hex", "responseData", "definition", "valueKey", "autoBucketing", "ragColours", "bucket", "buckets", "i", "min", "max", "bucketSize", "maxValue", "minValue", "_d", "alphaDivision", "division", "values", "resData", "allRags", "acc", "value", "ragScore", "colour", "score", "index"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable prefer-destructuring */
2
2
  import { withAlphaHex } from 'with-alpha-hex'
3
- import { DashboardDataResponse, DashboardDataResponseWithRag } from '../../../types/Metrics'
3
+ import { DashboardDataResponse } from '../../../types/Metrics'
4
4
  import {
5
5
  DashboardVisualisationBucket,
6
6
  BucketDashboardVisualisationOptions,
@@ -111,14 +111,14 @@ class Buckets {
111
111
 
112
112
  private initBucketColours = () => {
113
113
  if (this.useRagColour && this.bucketCount === 3) {
114
- this.buckets = Array.from(new Array(this.bucketCount)).map((d, i) => {
114
+ this.buckets = Array.from(new Array(this.bucketCount)).map((_d, i) => {
115
115
  return {
116
116
  hexColour: this.ragColours[i],
117
117
  }
118
118
  })
119
119
  } else {
120
120
  const alphaDivision = 1 / this.bucketCount
121
- this.buckets = Array.from(new Array(this.bucketCount)).map((d, i) => {
121
+ this.buckets = Array.from(new Array(this.bucketCount)).map((_d, i) => {
122
122
  const division = alphaDivision * (i + 1)
123
123
  return {
124
124
  hexColour: withAlphaHex(this.baseColour, division),
@@ -1,2 +1,2 @@
1
- var M=Object.create;var l=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var w=(e,s)=>{for(var t in s)l(e,t,{get:s[t],enumerable:!0})},D=(e,s,t,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of x(s))!T.call(e,i)&&i!==t&&l(e,i,{get:()=>s[i],enumerable:!(a=g(s,i))||a.enumerable});return e};var m=(e,s,t)=>(t=e!=null?M(V(e)):{},D(s||!e||!e.__esModule?l(t,"default",{value:e,enumerable:!0}):t,e)),C=e=>D(l({},"__esModule",{value:!0}),e);var F={};w(F,{HeatmapChart:()=>p,default:()=>E});module.exports=C(F);var n=m(require("dayjs")),d=require("../../../_dashboards/dashboard-visualisation/types"),y=m(require("../../../../utils/datasetHelper")),b=m(require("../../../_dashboards/dashboard-visualisation/DashboardVisualisation")),f=m(require("../Buckets"));class p extends b.default{constructor(t,a,i){super(t,i);this.data=[];this.dayDateFormat="DD/MM/YYYY";this.valueKey="";this.label="";this.buckets=[];this.initUnit=()=>{this.unit=this.columns.measures[0].unit?this.columns.measures[0].unit:void 0};this.setLabel=()=>{const{id:t,display:a}=this.columns.measures[1];this.valueKey=t,this.label=a||""};this.validateDefinition=()=>{const{id:t,columns:a,type:i}=this.definition,o=[];if(a.measures.length!==2?o.push(`Measures should only have 2 columns defined. Only found ${a.measures.length}`):i===d.DashboardVisualisationType.MATRIX_TIMESERIES&&a.measures[0].id!=="ts"&&o.push(`measure at index 0 has incorrect ID. Expected ID to be "ts". Found "${a.measures[0].id}"`),o.length){const r=`Validation: Visualisaton definition: ID: ${t}, type: ${i}, errors: ${o.join(",")}`;throw new Error(r)}};this.initTimeseriesData=()=>{const t=y.default.groupRowsByTimestamp(this.responseData);this.data=t.map(a=>{const{raw:i,rag:o}=a[0][this.valueKey],r=a[0].ts.raw,k=Number(i),v=o!==void 0?Number(a[0][this.valueKey].rag):void 0;let u=0,h=0;switch(this.granularity){case"hourly":break;case"weekly":u=(0,n.default)(r,this.dayDateFormat).format("ddd"),h=(0,n.default)(r,this.dayDateFormat).week();break;case"daily":u=(0,n.default)(r,this.dayDateFormat).format("MMM YY"),h=(0,n.default)(r,this.dayDateFormat).format("D");break;case"monthly":{const c=r.split(" ");u=c[1],h=c[0]}break;case"annually":u="year",h=r;break;default:u=(0,n.default)(r,this.dayDateFormat).format("MMM YY"),h=(0,n.default)(r,this.dayDateFormat).format("D");break}return{y:h,x:u,v:k,r:v}})};this.bucketData=()=>{this.data=this.data.map(t=>{const{v:a,r:i}=t,o=this.bucketsHelper.getBucketForValue(a,i);return{...t,c:o.colour}})};this.build=()=>(this.validateDefinition(),this.initTimeseriesData(),this.bucketData(),{type:this.type,unit:this.unit,timeseries:!0,data:{datasets:[{label:this.label,data:this.data}]}});this.granularity=a,this.isTimeseriesChart=this.type===d.DashboardVisualisationType.LINE_TIMESERIES,this.setLabel(),this.initUnit(),this.bucketsHelper=new f.default(t,this.definition,this.valueKey,!0),this.buckets=this.bucketsHelper.getBuckets()}}var E=p;0&&(module.exports={HeatmapChart});
1
+ "use strict";var M=Object.create;var h=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var V=(e,s)=>{for(var t in s)h(e,t,{get:s[t],enumerable:!0})},c=(e,s,t,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of x(s))!F.call(e,i)&&i!==t&&h(e,i,{get:()=>s[i],enumerable:!(a=g(s,i))||a.enumerable});return e};var m=(e,s,t)=>(t=e!=null?M(w(e)):{},c(s||!e||!e.__esModule?h(t,"default",{value:e,enumerable:!0}):t,e)),C=e=>c(h({},"__esModule",{value:!0}),e);var T={};V(T,{HeatmapChart:()=>d,default:()=>Y});module.exports=C(T);var n=m(require("dayjs")),D=require("../../../_dashboards/dashboard-visualisation/types"),y=m(require("../../../../utils/datasetHelper")),b=m(require("../../../_dashboards/dashboard-visualisation/DashboardVisualisation")),f=m(require("../Buckets"));class d extends b.default{constructor(t,a,i){super(t,i);this.data=[];this.dayDateFormat="DD/MM/YYYY";this.valueKey="";this.label="";this.setLabel=()=>{const{id:t,display:a}=this.columns.measures[1];this.valueKey=t,this.label=a||""};this.validateDefinition=()=>{const{id:t,columns:a,type:i}=this.definition,o=[];if(a.measures.length!==2?o.push(`Measures should only have 2 columns defined. Only found ${a.measures.length}`):i===D.DashboardVisualisationType.MATRIX_TIMESERIES&&a.measures[0].id!=="ts"&&o.push(`measure at index 0 has incorrect ID. Expected ID to be "ts". Found "${a.measures[0].id}"`),o.length){const r=`Validation: Visualisaton definition: ID: ${t}, type: ${i}, errors: ${o.join(",")}`;throw new Error(r)}};this.initTimeseriesData=()=>{const t=y.default.groupRowsByTimestamp(this.responseData);this.data=t.map(a=>{const{raw:i,rag:o}=a[0][this.valueKey],r=a[0].ts.raw,v=Number(i),k=o!==void 0?Number(a[0][this.valueKey].rag):void 0;let l=0,u=0;switch(this.granularity){case"hourly":break;case"weekly":l=(0,n.default)(r,this.dayDateFormat).format("ddd"),u=(0,n.default)(r,this.dayDateFormat).week();break;case"daily":l=(0,n.default)(r,this.dayDateFormat).format("MMM YY"),u=(0,n.default)(r,this.dayDateFormat).format("D");break;case"monthly":{const p=r.split(" ");l=p[1],u=p[0]}break;case"annually":l="year",u=r;break;default:l=(0,n.default)(r,this.dayDateFormat).format("MMM YY"),u=(0,n.default)(r,this.dayDateFormat).format("D");break}return{y:u,x:l,v,r:k}})};this.bucketData=()=>{this.data=this.data.map(t=>{const{v:a,r:i}=t,o=this.bucketsHelper.getBucketForValue(a,i);return{...t,c:o.colour}})};this.build=()=>(this.validateDefinition(),this.initTimeseriesData(),this.bucketData(),{type:this.type,unit:this.unit,timeseries:!0,data:{datasets:[{label:this.label,data:this.data}]}});this.granularity=a,this.setLabel(),this.initUnit(),this.bucketsHelper=new f.default(t,this.definition,this.valueKey,!0)}}var Y=d;0&&(module.exports={HeatmapChart});
2
2
  //# sourceMappingURL=HeatmapChart.js.map