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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/dpr/assets/app.js.map +2 -2
  2. package/dpr/components/_async/async-filters-form/sortByTemplate.js +60 -1
  3. package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +2 -2
  4. package/dpr/components/_async/async-filters-form/types.d.js +16 -1
  5. package/dpr/components/_async/async-filters-form/types.d.js.map +2 -2
  6. package/dpr/components/_async/async-filters-form/utils.js +180 -1
  7. package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
  8. package/dpr/components/_catalogue/catalogue/types.js +16 -1
  9. package/dpr/components/_catalogue/catalogue/types.js.map +2 -2
  10. package/dpr/components/_catalogue/catalogue/utils.js +83 -1
  11. package/dpr/components/_catalogue/catalogue/utils.js.map +2 -2
  12. package/dpr/components/_catalogue/catalogue-list/utils.js +140 -1
  13. package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
  14. package/dpr/components/_charts/chart/Chart.js +99 -1
  15. package/dpr/components/_charts/chart/Chart.js.map +2 -2
  16. package/dpr/components/_charts/chart/ChartColours.js +61 -1
  17. package/dpr/components/_charts/chart/ChartColours.js.map +2 -2
  18. package/dpr/components/_charts/chart/ChartTimeseries.js +101 -1
  19. package/dpr/components/_charts/chart/ChartTimeseries.js.map +2 -2
  20. package/dpr/components/_charts/chart/bar/BarChart.js +193 -1
  21. package/dpr/components/_charts/chart/bar/BarChart.js.map +2 -2
  22. package/dpr/components/_charts/chart/bar/types.js +16 -1
  23. package/dpr/components/_charts/chart/bar/types.js.map +2 -2
  24. package/dpr/components/_charts/chart/bar/validate.js +73 -1
  25. package/dpr/components/_charts/chart/bar/validate.js.map +2 -2
  26. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js +80 -1
  27. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +2 -2
  28. package/dpr/components/_charts/chart/bar-timeseries/types.js +16 -1
  29. package/dpr/components/_charts/chart/bar-timeseries/types.js.map +2 -2
  30. package/dpr/components/_charts/chart/bar-timeseries/validate.js +48 -1
  31. package/dpr/components/_charts/chart/bar-timeseries/validate.js.map +2 -2
  32. package/dpr/components/_charts/chart/buckets/Buckets.js +194 -1
  33. package/dpr/components/_charts/chart/buckets/Buckets.js.map +2 -2
  34. package/dpr/components/_charts/chart/buckets/types.js +16 -1
  35. package/dpr/components/_charts/chart/buckets/types.js.map +2 -2
  36. package/dpr/components/_charts/chart/buckets/validate.js +40 -1
  37. package/dpr/components/_charts/chart/buckets/validate.js.map +2 -2
  38. package/dpr/components/_charts/chart/chart-config.js +62 -1
  39. package/dpr/components/_charts/chart/chart-config.js.map +2 -2
  40. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js +96 -1
  41. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +2 -2
  42. package/dpr/components/_charts/chart/doughnut/types.js +16 -1
  43. package/dpr/components/_charts/chart/doughnut/types.js.map +2 -2
  44. package/dpr/components/_charts/chart/doughnut/validate.js +48 -1
  45. package/dpr/components/_charts/chart/doughnut/validate.js.map +2 -2
  46. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +213 -1
  47. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +2 -2
  48. package/dpr/components/_charts/chart/heatmap/types.js +16 -1
  49. package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
  50. package/dpr/components/_charts/chart/heatmap/validate.js +40 -1
  51. package/dpr/components/_charts/chart/heatmap/validate.js.map +2 -2
  52. package/dpr/components/_charts/chart/line/LineChart.js +107 -1
  53. package/dpr/components/_charts/chart/line/LineChart.js.map +2 -2
  54. package/dpr/components/_charts/chart/line/types.js +16 -1
  55. package/dpr/components/_charts/chart/line/types.js.map +2 -2
  56. package/dpr/components/_charts/chart/line/validate.js +48 -1
  57. package/dpr/components/_charts/chart/line/validate.js.map +2 -2
  58. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js +81 -1
  59. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +2 -2
  60. package/dpr/components/_charts/chart/line-timeseries/types.js +16 -1
  61. package/dpr/components/_charts/chart/line-timeseries/types.js.map +2 -2
  62. package/dpr/components/_charts/chart/line-timeseries/validate.js +48 -1
  63. package/dpr/components/_charts/chart/line-timeseries/validate.js.map +2 -2
  64. package/dpr/components/_charts/utils.js +240 -1
  65. package/dpr/components/_charts/utils.js.map +2 -2
  66. package/dpr/components/_dashboards/dashboard-list/types.js +16 -1
  67. package/dpr/components/_dashboards/dashboard-list/types.js.map +2 -2
  68. package/dpr/components/_dashboards/dashboard-list/utils.js +170 -1
  69. package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
  70. package/dpr/components/_dashboards/dashboard-list/validate.js +43 -1
  71. package/dpr/components/_dashboards/dashboard-list/validate.js.map +2 -2
  72. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js +95 -1
  73. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js.map +2 -2
  74. package/dpr/components/_dashboards/dashboard-visualisation/types.js +40 -1
  75. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
  76. package/dpr/components/_dashboards/scorecard/Scorecard.js +176 -1
  77. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
  78. package/dpr/components/_dashboards/scorecard/types.js +16 -1
  79. package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
  80. package/dpr/components/_dashboards/scorecard/utils.js +61 -1
  81. package/dpr/components/_dashboards/scorecard/utils.js.map +2 -2
  82. package/dpr/components/_dashboards/scorecard/validate.js +50 -1
  83. package/dpr/components/_dashboards/scorecard/validate.js.map +2 -2
  84. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js +212 -1
  85. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +2 -2
  86. package/dpr/components/_dashboards/scorecard-group/types.js +16 -1
  87. package/dpr/components/_dashboards/scorecard-group/types.js.map +2 -2
  88. package/dpr/components/_dashboards/scorecard-group/validate.js +50 -1
  89. package/dpr/components/_dashboards/scorecard-group/validate.js.map +2 -2
  90. package/dpr/components/_filters/filter-input/enum.js +38 -1
  91. package/dpr/components/_filters/filter-input/enum.js.map +2 -2
  92. package/dpr/components/_filters/filter-input/filters.js +37 -1
  93. package/dpr/components/_filters/filter-input/filters.js.map +2 -2
  94. package/dpr/components/_filters/filter-input/types.d.js +16 -1
  95. package/dpr/components/_filters/filter-input/types.d.js.map +2 -2
  96. package/dpr/components/_filters/filters-selected/utils.js +314 -1
  97. package/dpr/components/_filters/filters-selected/utils.js.map +2 -2
  98. package/dpr/components/_filters/filtersTypeEnum.js +32 -1
  99. package/dpr/components/_filters/filtersTypeEnum.js.map +2 -2
  100. package/dpr/components/_filters/types.d.js +16 -1
  101. package/dpr/components/_filters/types.d.js.map +2 -2
  102. package/dpr/components/_filters/utils.js +385 -1
  103. package/dpr/components/_filters/utils.js.map +2 -2
  104. package/dpr/components/_inputs/autocomplete-text-input/utils.js +45 -1
  105. package/dpr/components/_inputs/autocomplete-text-input/utils.js.map +2 -2
  106. package/dpr/components/_inputs/date-input/utils.js +88 -1
  107. package/dpr/components/_inputs/date-input/utils.js.map +2 -2
  108. package/dpr/components/_inputs/date-range/types.js +38 -1
  109. package/dpr/components/_inputs/date-range/types.js.map +2 -2
  110. package/dpr/components/_inputs/date-range/utils.js +229 -1
  111. package/dpr/components/_inputs/date-range/utils.js.map +2 -2
  112. package/dpr/components/_inputs/granular-date-range/types.js +70 -1
  113. package/dpr/components/_inputs/granular-date-range/types.js.map +2 -2
  114. package/dpr/components/_inputs/granular-date-range/utils.js +445 -1
  115. package/dpr/components/_inputs/granular-date-range/utils.js.map +2 -2
  116. package/dpr/components/_inputs/multi-select/utils.js +88 -1
  117. package/dpr/components/_inputs/multi-select/utils.js.map +2 -2
  118. package/dpr/components/_inputs/start-end-date/utils.js +84 -1
  119. package/dpr/components/_inputs/start-end-date/utils.js.map +2 -2
  120. package/dpr/components/_reports/report-actions/actionsTemplate.js +59 -1
  121. package/dpr/components/_reports/report-actions/actionsTemplate.js.map +2 -2
  122. package/dpr/components/_reports/report-actions/types.d.js +16 -1
  123. package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
  124. package/dpr/components/_reports/report-actions/utils.js +97 -1
  125. package/dpr/components/_reports/report-actions/utils.js.map +2 -2
  126. package/dpr/components/_reports/report-columns-form/types.d.js +16 -1
  127. package/dpr/components/_reports/report-columns-form/types.d.js.map +2 -2
  128. package/dpr/components/_reports/report-columns-form/utils.js +65 -1
  129. package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
  130. package/dpr/components/_reports/report-data-table/types.d.js +16 -1
  131. package/dpr/components/_reports/report-data-table/types.d.js.map +2 -2
  132. package/dpr/components/_reports/report-data-table/utils.js +122 -1
  133. package/dpr/components/_reports/report-data-table/utils.js.map +2 -2
  134. package/dpr/components/_reports/report-pagination/types.d.js +16 -1
  135. package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
  136. package/dpr/components/_reports/report-pagination/utils.js +105 -1
  137. package/dpr/components/_reports/report-pagination/utils.js.map +2 -2
  138. package/dpr/components/_reports/report-totals/utils.js +42 -1
  139. package/dpr/components/_reports/report-totals/utils.js.map +2 -2
  140. package/dpr/components/card-group/utils.js +57 -1
  141. package/dpr/components/card-group/utils.js.map +2 -2
  142. package/dpr/components/report-list/defaultTokenProvider.js +36 -1
  143. package/dpr/components/report-list/defaultTokenProvider.js.map +2 -2
  144. package/dpr/components/report-list/types.d.js +16 -1
  145. package/dpr/components/report-list/types.d.js.map +2 -2
  146. package/dpr/components/report-list/utils.js +238 -1
  147. package/dpr/components/report-list/utils.js.map +2 -2
  148. package/dpr/components/show-more/utils.js +38 -3
  149. package/dpr/components/show-more/utils.js.map +2 -2
  150. package/dpr/components/user-reports/bookmarks/utils.js +198 -1
  151. package/dpr/components/user-reports/bookmarks/utils.js.map +2 -2
  152. package/dpr/components/user-reports/requested/utils.js +65 -1
  153. package/dpr/components/user-reports/requested/utils.js.map +2 -2
  154. package/dpr/components/user-reports/types.d.js +16 -1
  155. package/dpr/components/user-reports/types.d.js.map +2 -2
  156. package/dpr/components/user-reports/utils.js +365 -1
  157. package/dpr/components/user-reports/utils.js.map +2 -2
  158. package/dpr/components/user-reports/viewed/utils.js +37 -1
  159. package/dpr/components/user-reports/viewed/utils.js.map +2 -2
  160. package/dpr/data/agentConfig.js +35 -1
  161. package/dpr/data/agentConfig.js.map +2 -2
  162. package/dpr/data/dashboardClient.js +108 -1
  163. package/dpr/data/dashboardClient.js.map +2 -2
  164. package/dpr/data/dprReportingClient.js +55 -1
  165. package/dpr/data/dprReportingClient.js.map +2 -2
  166. package/dpr/data/missingReportClient.js +55 -1
  167. package/dpr/data/missingReportClient.js.map +2 -2
  168. package/dpr/data/productCollectionClient.js +58 -1
  169. package/dpr/data/productCollectionClient.js.map +2 -2
  170. package/dpr/data/reportDataStore.js +77 -1
  171. package/dpr/data/reportDataStore.js.map +2 -2
  172. package/dpr/data/reportingClient.js +173 -1
  173. package/dpr/data/reportingClient.js.map +2 -2
  174. package/dpr/data/restClient.js +143 -1
  175. package/dpr/data/restClient.js.map +2 -2
  176. package/dpr/data/types.d.js +16 -1
  177. package/dpr/data/types.d.js.map +2 -2
  178. package/dpr/middleware/reportAuthoriser.js +63 -1
  179. package/dpr/middleware/reportAuthoriser.js.map +2 -2
  180. package/dpr/middleware/setUpDprResources.js +173 -1
  181. package/dpr/middleware/setUpDprResources.js.map +2 -2
  182. package/dpr/middleware/setUpNestedRoute.js +35 -1
  183. package/dpr/middleware/setUpNestedRoute.js.map +2 -2
  184. package/dpr/routes/index.js +50 -1
  185. package/dpr/routes/index.js.map +2 -2
  186. package/dpr/routes/journeys/api-failures.cy.js +295 -1
  187. package/dpr/routes/journeys/api-failures.cy.js.map +2 -2
  188. package/dpr/routes/journeys/download-report/controller.js +65 -1
  189. package/dpr/routes/journeys/download-report/controller.js.map +2 -2
  190. package/dpr/routes/journeys/download-report/request-download/form/controller.js +98 -1
  191. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +2 -2
  192. package/dpr/routes/journeys/download-report/request-download/form/routes.js +50 -1
  193. package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +2 -2
  194. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +68 -1
  195. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +2 -2
  196. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +47 -1
  197. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +2 -2
  198. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +17 -1
  199. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +1 -1
  200. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +24 -1
  201. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +2 -2
  202. package/dpr/routes/journeys/download-report/request-download/routes.js +46 -1
  203. package/dpr/routes/journeys/download-report/request-download/routes.js.map +2 -2
  204. package/dpr/routes/journeys/download-report/request-download/service.js +90 -1
  205. package/dpr/routes/journeys/download-report/request-download/service.js.map +2 -2
  206. package/dpr/routes/journeys/download-report/routes.js +63 -1
  207. package/dpr/routes/journeys/download-report/routes.js.map +2 -2
  208. package/dpr/routes/journeys/download-report/tests.cy.js +104 -1
  209. package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
  210. package/dpr/routes/journeys/download-report/utils.js +196 -1
  211. package/dpr/routes/journeys/download-report/utils.js.map +2 -2
  212. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +58 -1
  213. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +2 -2
  214. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +56 -1
  215. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +2 -2
  216. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +47 -1
  217. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +2 -2
  218. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +32 -1
  219. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
  220. package/dpr/routes/journeys/my-reports/bookmarks/routes.js +49 -1
  221. package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +2 -2
  222. package/dpr/routes/journeys/my-reports/bookmarks/service.js +123 -4
  223. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +2 -2
  224. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +448 -1
  225. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
  226. package/dpr/routes/journeys/my-reports/bookmarks/utils.js +44 -1
  227. package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +2 -2
  228. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +53 -1
  229. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +2 -2
  230. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +65 -1
  231. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +2 -2
  232. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +47 -1
  233. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +2 -2
  234. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +83 -1
  235. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
  236. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +49 -1
  237. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +2 -2
  238. package/dpr/routes/journeys/my-reports/recently-viewed/service.js +118 -1
  239. package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +2 -2
  240. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +52 -1
  241. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +2 -2
  242. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +65 -1
  243. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +2 -2
  244. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +47 -1
  245. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +2 -2
  246. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +15 -1
  247. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +2 -2
  248. package/dpr/routes/journeys/my-reports/requested-reports/routes.js +49 -1
  249. package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +2 -2
  250. package/dpr/routes/journeys/my-reports/requested-reports/service.js +200 -1
  251. package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +2 -2
  252. package/dpr/routes/journeys/my-reports/routes.js +59 -1
  253. package/dpr/routes/journeys/my-reports/routes.js.map +2 -2
  254. package/dpr/routes/journeys/product-collection/routes.js +45 -1
  255. package/dpr/routes/journeys/product-collection/routes.js.map +2 -2
  256. package/dpr/routes/journeys/product-collection/selected/controller.js +55 -1
  257. package/dpr/routes/journeys/product-collection/selected/controller.js.map +2 -2
  258. package/dpr/routes/journeys/product-collection/selected/routes.js +37 -1
  259. package/dpr/routes/journeys/product-collection/selected/routes.js.map +2 -2
  260. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +47 -1
  261. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
  262. package/dpr/routes/journeys/product-collection/selected/validation.js +41 -1
  263. package/dpr/routes/journeys/product-collection/selected/validation.js.map +2 -2
  264. package/dpr/routes/journeys/request-missing-report/form/controller.js +104 -1
  265. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +2 -2
  266. package/dpr/routes/journeys/request-missing-report/form/routes.js +50 -1
  267. package/dpr/routes/journeys/request-missing-report/form/routes.js.map +2 -2
  268. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +22 -1
  269. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +2 -2
  270. package/dpr/routes/journeys/request-missing-report/form/validation.js +43 -1
  271. package/dpr/routes/journeys/request-missing-report/form/validation.js.map +2 -2
  272. package/dpr/routes/journeys/request-missing-report/routes.js +57 -1
  273. package/dpr/routes/journeys/request-missing-report/routes.js.map +2 -2
  274. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +65 -1
  275. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +2 -2
  276. package/dpr/routes/journeys/request-missing-report/submitted/routes.js +47 -1
  277. package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +2 -2
  278. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +14 -1
  279. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +2 -2
  280. package/dpr/routes/journeys/request-missing-report/tests.cy.js +37 -1
  281. package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
  282. package/dpr/routes/journeys/request-report/controller.js +79 -1
  283. package/dpr/routes/journeys/request-report/controller.js.map +2 -2
  284. package/dpr/routes/journeys/request-report/filters/controller.js +127 -1
  285. package/dpr/routes/journeys/request-report/filters/controller.js.map +2 -2
  286. package/dpr/routes/journeys/request-report/filters/routes.js +50 -1
  287. package/dpr/routes/journeys/request-report/filters/routes.js.map +2 -2
  288. package/dpr/routes/journeys/request-report/filters/tests.cy.js +451 -1
  289. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +2 -2
  290. package/dpr/routes/journeys/request-report/filters/utils.js +331 -1
  291. package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
  292. package/dpr/routes/journeys/request-report/routes.js +100 -1
  293. package/dpr/routes/journeys/request-report/routes.js.map +2 -2
  294. package/dpr/routes/journeys/request-report/status/controller.js +80 -1
  295. package/dpr/routes/journeys/request-report/status/controller.js.map +2 -2
  296. package/dpr/routes/journeys/request-report/status/routes.js +48 -1
  297. package/dpr/routes/journeys/request-report/status/routes.js.map +2 -2
  298. package/dpr/routes/journeys/request-report/status/tests.cy.js +127 -1
  299. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
  300. package/dpr/routes/journeys/request-report/status/utils.js +72 -1
  301. package/dpr/routes/journeys/request-report/status/utils.js.map +2 -2
  302. package/dpr/routes/journeys/request-report/tests.cy.js +307 -1
  303. package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
  304. package/dpr/routes/journeys/routes.js +46 -1
  305. package/dpr/routes/journeys/routes.js.map +2 -2
  306. package/dpr/routes/journeys/view-report/async/controller.js +89 -1
  307. package/dpr/routes/journeys/view-report/async/controller.js.map +2 -2
  308. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +82 -1
  309. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +2 -2
  310. package/dpr/routes/journeys/view-report/async/dashboard/routes.js +48 -1
  311. package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +2 -2
  312. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +33 -1
  313. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
  314. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +242 -1
  315. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +2 -2
  316. package/dpr/routes/journeys/view-report/async/report/controller.js +83 -1
  317. package/dpr/routes/journeys/view-report/async/report/controller.js.map +2 -2
  318. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js +76 -1
  319. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +2 -2
  320. package/dpr/routes/journeys/view-report/async/report/routes.js +53 -1
  321. package/dpr/routes/journeys/view-report/async/report/routes.js.map +2 -2
  322. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +895 -1
  323. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  324. package/dpr/routes/journeys/view-report/async/report/types.js +16 -1
  325. package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
  326. package/dpr/routes/journeys/view-report/async/report/utils.js +427 -1
  327. package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
  328. package/dpr/routes/journeys/view-report/async/routes.js +52 -1
  329. package/dpr/routes/journeys/view-report/async/routes.js.map +2 -2
  330. package/dpr/routes/journeys/view-report/controller.js +62 -1
  331. package/dpr/routes/journeys/view-report/controller.js.map +2 -2
  332. package/dpr/routes/journeys/view-report/routes.js +87 -1
  333. package/dpr/routes/journeys/view-report/routes.js.map +2 -2
  334. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js +68 -1
  335. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +2 -2
  336. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js +48 -1
  337. package/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +2 -2
  338. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +144 -1
  339. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +2 -2
  340. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +102 -1
  341. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +2 -2
  342. package/dpr/routes/journeys/view-report/sync/load-report/routes.js +47 -1
  343. package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +2 -2
  344. package/dpr/routes/journeys/view-report/sync/report/controller.js +99 -1
  345. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +2 -2
  346. package/dpr/routes/journeys/view-report/sync/report/routes.js +51 -1
  347. package/dpr/routes/journeys/view-report/sync/report/routes.js.map +2 -2
  348. package/dpr/routes/journeys/view-report/sync/report/utils.js +298 -1
  349. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +2 -2
  350. package/dpr/routes/journeys/view-report/sync/routes.js +51 -1
  351. package/dpr/routes/journeys/view-report/sync/routes.js.map +2 -2
  352. package/dpr/routes/journeys/view-report/sync/tests.cy.js +43 -1
  353. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
  354. package/dpr/routes/journeys/view-report/utils.js +173 -1
  355. package/dpr/routes/journeys/view-report/utils.js.map +2 -2
  356. package/dpr/services/dashboardService.js +66 -1
  357. package/dpr/services/dashboardService.js.map +2 -2
  358. package/dpr/services/defaultFilterValuesService.js +114 -1
  359. package/dpr/services/defaultFilterValuesService.js.map +2 -2
  360. package/dpr/services/featureFlagService.js +65 -1
  361. package/dpr/services/featureFlagService.js.map +2 -2
  362. package/dpr/services/featureFlags.cy.js +72 -1
  363. package/dpr/services/featureFlags.cy.js.map +2 -2
  364. package/dpr/services/index.js +59 -1
  365. package/dpr/services/index.js.map +2 -2
  366. package/dpr/services/missingReport/missingReportService.js +52 -1
  367. package/dpr/services/missingReport/missingReportService.js.map +2 -2
  368. package/dpr/services/productCollection/productCollectionService.js +55 -1
  369. package/dpr/services/productCollection/productCollectionService.js.map +2 -2
  370. package/dpr/services/productCollection/productCollectionStoreService.js +61 -1
  371. package/dpr/services/productCollection/productCollectionStoreService.js.map +2 -2
  372. package/dpr/services/reportStoreService.js +51 -1
  373. package/dpr/services/reportStoreService.js.map +2 -2
  374. package/dpr/services/reportingService.js +81 -1
  375. package/dpr/services/reportingService.js.map +2 -2
  376. package/dpr/setUpNunjucksFilters.js +66 -1
  377. package/dpr/setUpNunjucksFilters.js.map +2 -2
  378. package/dpr/types/AsyncReportUtils.js +16 -1
  379. package/dpr/types/AsyncReportUtils.js.map +2 -2
  380. package/dpr/types/Bookmark.js +16 -1
  381. package/dpr/types/Bookmark.js.map +2 -2
  382. package/dpr/types/Charts.js +16 -1
  383. package/dpr/types/Charts.js.map +2 -2
  384. package/dpr/types/Download.js +16 -1
  385. package/dpr/types/Download.js.map +2 -2
  386. package/dpr/types/DprConfig.js +16 -1
  387. package/dpr/types/DprConfig.js.map +2 -2
  388. package/dpr/types/DprUser.js +43 -1
  389. package/dpr/types/DprUser.js.map +2 -2
  390. package/dpr/types/EmbeddedReportUtils.js +33 -1
  391. package/dpr/types/EmbeddedReportUtils.js.map +2 -2
  392. package/dpr/types/ExecutionData.d.js +16 -1
  393. package/dpr/types/ExecutionData.d.js.map +2 -2
  394. package/dpr/types/Metrics.js +16 -1
  395. package/dpr/types/Metrics.js.map +2 -2
  396. package/dpr/types/ReportQuery.js +168 -1
  397. package/dpr/types/ReportQuery.js.map +2 -2
  398. package/dpr/types/ReportStore.js +16 -1
  399. package/dpr/types/ReportStore.js.map +2 -2
  400. package/dpr/types/Services.d.js +16 -1
  401. package/dpr/types/Services.d.js.map +2 -2
  402. package/dpr/types/Templates.d.js +16 -1
  403. package/dpr/types/Templates.d.js.map +2 -2
  404. package/dpr/types/UserReports.js +55 -1
  405. package/dpr/types/UserReports.js.map +2 -2
  406. package/dpr/types/api.d.js +16 -1
  407. package/dpr/types/api.d.js.map +2 -2
  408. package/dpr/types/index.d.js +16 -1
  409. package/dpr/types/index.d.js.map +2 -2
  410. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +91 -1
  411. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +2 -2
  412. package/dpr/utils/CreateDprServices.js +66 -1
  413. package/dpr/utils/CreateDprServices.js.map +2 -2
  414. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +304 -1
  415. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +2 -2
  416. package/dpr/utils/DataTableBuilder/types.d.js +16 -1
  417. package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
  418. package/dpr/utils/DateMapper/DateMapper.js +125 -1
  419. package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
  420. package/dpr/utils/DateMapper/types.d.js +16 -1
  421. package/dpr/utils/DateMapper/types.d.js.map +2 -2
  422. package/dpr/utils/ErrorHandler.js +94 -1
  423. package/dpr/utils/ErrorHandler.js.map +2 -2
  424. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +201 -1
  425. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  426. package/dpr/utils/ParentChildDataTableBuilder/types.d.js +16 -1
  427. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +2 -2
  428. package/dpr/utils/Personalisation/personalisationUtils.js +202 -1
  429. package/dpr/utils/Personalisation/personalisationUtils.js.map +2 -2
  430. package/dpr/utils/Personalisation/types.d.js +16 -1
  431. package/dpr/utils/Personalisation/types.d.js.map +2 -2
  432. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +310 -1
  433. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
  434. package/dpr/utils/SectionedDataTableBuilder/types.d.js +16 -1
  435. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +2 -2
  436. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +145 -1
  437. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
  438. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +60 -1
  439. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +2 -2
  440. package/dpr/utils/UserStoreItemBuilder.js +247 -1
  441. package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
  442. package/dpr/utils/arrayUtils.js +28 -1
  443. package/dpr/utils/arrayUtils.js.map +2 -2
  444. package/dpr/utils/datasetHelper.js +229 -1
  445. package/dpr/utils/datasetHelper.js.map +2 -2
  446. package/dpr/utils/definitionUtils.js +133 -1
  447. package/dpr/utils/definitionUtils.js.map +2 -2
  448. package/dpr/utils/index.js +44 -1
  449. package/dpr/utils/index.js.map +2 -2
  450. package/dpr/utils/indexedAccesHelper.js +41 -1
  451. package/dpr/utils/indexedAccesHelper.js.map +2 -2
  452. package/dpr/utils/localsHelper.js +105 -1
  453. package/dpr/utils/localsHelper.js.map +2 -2
  454. package/dpr/utils/logger.js +48 -1
  455. package/dpr/utils/logger.js.map +2 -2
  456. package/dpr/utils/reportListsHelper.js +128 -12
  457. package/dpr/utils/reportListsHelper.js.map +2 -2
  458. package/dpr/utils/reportStoreHelper.js +65 -1
  459. package/dpr/utils/reportStoreHelper.js.map +2 -2
  460. package/dpr/utils/requestStatusHelper.js +172 -1
  461. package/dpr/utils/requestStatusHelper.js.map +2 -2
  462. package/dpr/utils/sanitisedError.js +45 -1
  463. package/dpr/utils/sanitisedError.js.map +2 -2
  464. package/dpr/utils/urlHelper.js +103 -1
  465. package/dpr/utils/urlHelper.js.map +2 -2
  466. package/dpr/validation/validate.js +52 -1
  467. package/dpr/validation/validate.js.map +2 -2
  468. package/package.json +1 -1
@@ -1,2 +1,177 @@
1
- "use strict";var y=Object.create;var u=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var B=(i,e)=>{for(var t in e)u(i,t,{get:e[t],enumerable:!0})},m=(i,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of R(e))!w.call(i,s)&&s!==t&&u(i,s,{get:()=>e[s],enumerable:!(a=k(e,s))||a.enumerable});return i};var h=(i,e,t)=>(t=i!=null?y(T(i)):{},m(e||!i||!i.__esModule?u(t,"default",{value:i,enumerable:!0}):t,i)),C=i=>m(u({},"__esModule",{value:!0}),i);var K={};B(K,{ScorecardVisualisation:()=>p,default:()=>V});module.exports=C(K);var f=h(require("../../_charts/chart/buckets/Buckets")),c=h(require("../../../utils/datasetHelper")),b=h(require("./validate"));class p{definition;id;measures;options;dataset;bucketsHelper;buckets=[];valueKey;titleColumn;responseData=[];ragColours=["#cce2d8","#fff7bf","#f4cdc6"];withDefinition=e=>(this.definition=b.default.ScorecardSchema.parse(e),this.init(),this);withData=e=>(this.responseData=e,this.dataset=this.getDataset(this.definition,this.responseData),this.initBuckets(this.responseData,this.valueKey),this);init=()=>{this.id=this.definition.id,this.measures=this.definition.columns.measures,this.options=this.definition.options,this.titleColumn={display:this.definition.display,id:this.valueKey},this.initFromMeasures()};initFromMeasures=()=>{this.measures[0]!==void 0&&(this.valueKey=this.measures[0].id)};initBuckets=(e,t)=>{(this.options?.buckets||this.options?.useRagColour)&&(this.bucketsHelper=new f.default(e,this.definition,t,!1,this.ragColours),this.buckets=this.bucketsHelper.getBuckets())};getDataset=(e,t)=>{const a=c.default.getLastestDataset(t),s=c.default.getDatasetRows(e,a),r=s[0]?.ts?.raw,o=c.default.filterRowsByDisplayColumns(e,s,!0),d=c.default.getEarliestDataset(t),n=c.default.getDatasetRows(e,d),l=n[0]?.ts?.raw;return{earliest:c.default.filterRowsByDisplayColumns(e,n,!0),earliestTs:l,latest:o,latestTs:r}};createScorecardData=({id:e,title:t,value:a,rag:s,valueFor:r,valueFrom:o,prevVal:d,groupTitle:n})=>({id:e,title:t,value:a,...s&&{rag:s},valueFor:r,trend:this.createTrend(r,o,a,d),...n&&{group:n}});createTrend=(e,t,a,s)=>{let r;if(t!==e){const o=s?Number(a)-Number(s):0;r={direction:Math.sign(o),value:Math.abs(o),from:t}}return r};setRagScore=(e,t,a,s)=>{let r;return!Number.isNaN(e)&&a?.length&&s&&(r=s.getBucketForValue(e,t)),r};build=()=>{const{latest:e,earliest:t,latestTs:a,earliestTs:s}=this.dataset;return e.map((o,d)=>{const{raw:n,rag:l}=o[this.valueKey],D=t[d][this.valueKey].raw,S=`${a}`,g=`${s}`,v=this.titleColumn?.display;return this.createScorecardData({id:this.id,title:v||"",value:n||"",rag:this.setRagScore(n,l,this.buckets,this.bucketsHelper),prevVal:D,valueFor:S,valueFrom:g})})[0]}}var V=p;0&&(module.exports={ScorecardVisualisation});
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Scorecard_exports = {};
30
+ __export(Scorecard_exports, {
31
+ ScorecardVisualisation: () => ScorecardVisualisation,
32
+ default: () => Scorecard_default
33
+ });
34
+ module.exports = __toCommonJS(Scorecard_exports);
35
+ var import_Buckets = __toESM(require("../../_charts/chart/buckets/Buckets"));
36
+ var import_datasetHelper = __toESM(require("../../../utils/datasetHelper"));
37
+ var import_validate = __toESM(require("./validate"));
38
+ class ScorecardVisualisation {
39
+ definition;
40
+ id;
41
+ measures;
42
+ options;
43
+ dataset;
44
+ bucketsHelper;
45
+ buckets = [];
46
+ valueKey;
47
+ titleColumn;
48
+ responseData = [];
49
+ ragColours = ["#cce2d8", "#fff7bf", "#f4cdc6"];
50
+ withDefinition = (definition) => {
51
+ this.definition = import_validate.default.ScorecardSchema.parse(definition);
52
+ this.init();
53
+ return this;
54
+ };
55
+ withData = (responseData) => {
56
+ this.responseData = responseData;
57
+ this.dataset = this.getDataset(this.definition, this.responseData);
58
+ this.initBuckets(this.responseData, this.valueKey);
59
+ return this;
60
+ };
61
+ init = () => {
62
+ this.id = this.definition.id;
63
+ this.measures = this.definition.columns.measures;
64
+ this.options = this.definition.options;
65
+ this.titleColumn = { display: this.definition.display, id: this.valueKey };
66
+ this.initFromMeasures();
67
+ };
68
+ initFromMeasures = () => {
69
+ if (this.measures[0] !== void 0) {
70
+ this.valueKey = this.measures[0].id;
71
+ }
72
+ };
73
+ initBuckets = (responseData, valueKey) => {
74
+ if (this.options?.buckets || this.options?.useRagColour) {
75
+ this.bucketsHelper = new import_Buckets.default(responseData, this.definition, valueKey, false, this.ragColours);
76
+ this.buckets = this.bucketsHelper.getBuckets();
77
+ }
78
+ };
79
+ getDataset = (definition, rawData) => {
80
+ const latestData = import_datasetHelper.default.getLastestDataset(rawData);
81
+ const latestDataSetRows = import_datasetHelper.default.getDatasetRows(
82
+ definition,
83
+ latestData
84
+ );
85
+ const latestTs = latestDataSetRows[0]?.["ts"]?.raw;
86
+ const latestFiltered = import_datasetHelper.default.filterRowsByDisplayColumns(
87
+ definition,
88
+ latestDataSetRows,
89
+ true
90
+ );
91
+ const earliestData = import_datasetHelper.default.getEarliestDataset(rawData);
92
+ const earliestDataSetRows = import_datasetHelper.default.getDatasetRows(
93
+ definition,
94
+ earliestData
95
+ );
96
+ const earliestTs = earliestDataSetRows[0]?.["ts"]?.raw;
97
+ const earliestfiltered = import_datasetHelper.default.filterRowsByDisplayColumns(
98
+ definition,
99
+ earliestDataSetRows,
100
+ true
101
+ );
102
+ return {
103
+ earliest: earliestfiltered,
104
+ earliestTs,
105
+ latest: latestFiltered,
106
+ latestTs
107
+ };
108
+ };
109
+ createScorecardData = ({
110
+ id,
111
+ title,
112
+ value,
113
+ rag,
114
+ valueFor,
115
+ valueFrom,
116
+ prevVal,
117
+ groupTitle
118
+ }) => {
119
+ return {
120
+ id,
121
+ title,
122
+ value,
123
+ ...rag && { rag },
124
+ valueFor,
125
+ trend: this.createTrend(valueFor, valueFrom, value, prevVal),
126
+ ...groupTitle && {
127
+ group: groupTitle
128
+ }
129
+ };
130
+ };
131
+ createTrend = (valueFor, valueFrom, latestValue, earliestValue) => {
132
+ let trendData;
133
+ if (valueFrom !== valueFor) {
134
+ const value = earliestValue ? Number(latestValue) - Number(earliestValue) : 0;
135
+ const direction = Math.sign(value);
136
+ trendData = {
137
+ direction,
138
+ value: Math.abs(value),
139
+ from: valueFrom
140
+ };
141
+ }
142
+ return trendData;
143
+ };
144
+ setRagScore = (value, rag, buckets, bucketsHelper) => {
145
+ let ragScore;
146
+ if (!Number.isNaN(value) && buckets?.length && bucketsHelper) {
147
+ ragScore = bucketsHelper.getBucketForValue(value, rag);
148
+ }
149
+ return ragScore;
150
+ };
151
+ build = () => {
152
+ const { latest, earliest, latestTs, earliestTs } = this.dataset;
153
+ const scorecordArr = latest.map((datasetRow, index) => {
154
+ const { raw: value, rag } = datasetRow[this.valueKey];
155
+ const prevVal = earliest[index][this.valueKey].raw;
156
+ const valueFor = `${latestTs}`;
157
+ const valueFrom = `${earliestTs}`;
158
+ const title = this.titleColumn?.display;
159
+ return this.createScorecardData({
160
+ id: this.id,
161
+ title: title || "",
162
+ value: value || "",
163
+ rag: this.setRagScore(value, rag, this.buckets, this.bucketsHelper),
164
+ prevVal,
165
+ valueFor,
166
+ valueFrom
167
+ });
168
+ });
169
+ return scorecordArr[0];
170
+ };
171
+ }
172
+ var Scorecard_default = ScorecardVisualisation;
173
+ // Annotate the CommonJS export names for ESM import in node:
174
+ 0 && (module.exports = {
175
+ ScorecardVisualisation
176
+ });
2
177
  //# sourceMappingURL=Scorecard.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_dashboards/scorecard/Scorecard.ts"],
4
4
  "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport { DashboardVisualisationBucket } from '../dashboard-visualisation/types'\nimport { CreateScorecardDataArgs, Scorecard, ScorecardDataset, ScorecardDefinitionType, ScorecardTrend } from './types'\nimport Buckets from '../../_charts/chart/buckets/Buckets'\nimport { components } from '../../../types/api'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport ScorecardSchemas from './validate'\nimport { ScorecardGroupDefinitionType } from '../scorecard-group/types'\n\nclass ScorecardVisualisation {\n private definition!: ScorecardDefinitionType\n\n private id!: string\n\n private measures!: ScorecardDefinitionType['columns']['measures']\n\n private options!: ScorecardDefinitionType['options']\n\n private dataset!: ScorecardDataset\n\n private bucketsHelper: Buckets | undefined\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private valueKey!: string\n\n private titleColumn: components['schemas']['DashboardVisualisationColumnDefinition'] | undefined\n\n responseData: DashboardDataResponse[] = []\n\n ragColours: string[] = ['#cce2d8', '#fff7bf', '#f4cdc6']\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = ScorecardSchemas.ScorecardSchema.parse(definition)\n this.init()\n\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.dataset = this.getDataset(this.definition, this.responseData)\n this.initBuckets(this.responseData, this.valueKey)\n\n return this\n }\n\n private init = () => {\n this.id = this.definition.id\n this.measures = this.definition.columns.measures\n this.options = this.definition.options\n this.titleColumn = { display: this.definition.display, id: this.valueKey }\n this.initFromMeasures()\n }\n\n private initFromMeasures = () => {\n // Zod should throw an error on line 40 so should always pass\n if (this.measures[0] !== undefined) {\n this.valueKey = this.measures[0].id\n }\n }\n\n private initBuckets = (responseData: DashboardDataResponse[], valueKey: string) => {\n if (this.options?.buckets || this.options?.useRagColour) {\n this.bucketsHelper = new Buckets(responseData, this.definition, valueKey, false, this.ragColours)\n this.buckets = this.bucketsHelper.getBuckets()\n }\n }\n\n getDataset = (\n definition: ScorecardDefinitionType | ScorecardGroupDefinitionType,\n rawData: DashboardDataResponse[],\n ): ScorecardDataset => {\n const latestData = DatasetHelper.getLastestDataset(rawData)\n const latestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestData,\n )\n const latestTs = latestDataSetRows[0]?.['ts']?.raw\n const latestFiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestDataSetRows,\n true,\n )\n\n const earliestData = DatasetHelper.getEarliestDataset(rawData)\n const earliestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestData,\n )\n const earliestTs = earliestDataSetRows[0]?.['ts']?.raw\n const earliestfiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestDataSetRows,\n true,\n )\n\n return {\n earliest: earliestfiltered,\n earliestTs,\n latest: latestFiltered,\n latestTs,\n }\n }\n\n createScorecardData = ({\n id,\n title,\n value,\n rag,\n valueFor,\n valueFrom,\n prevVal,\n groupTitle,\n }: CreateScorecardDataArgs): Scorecard => {\n return {\n id,\n title,\n value,\n ...(rag && { rag }),\n valueFor,\n trend: this.createTrend(valueFor, valueFrom, value, prevVal),\n ...(groupTitle && {\n group: groupTitle,\n }),\n }\n }\n\n createTrend = (\n valueFor: string,\n valueFrom: string,\n latestValue: string | number,\n earliestValue: string | number | null | undefined,\n ): ScorecardTrend | undefined => {\n let trendData\n\n if (valueFrom !== valueFor) {\n const value = earliestValue ? Number(latestValue) - Number(earliestValue) : 0\n const direction = Math.sign(value)\n trendData = {\n direction,\n value: Math.abs(value),\n from: valueFrom,\n }\n }\n\n return trendData\n }\n\n setRagScore = (\n value: string | number | undefined | null,\n rag: number | undefined,\n buckets: DashboardVisualisationBucket[] | undefined,\n bucketsHelper: Buckets | undefined,\n ) => {\n let ragScore\n if (!Number.isNaN(value) && buckets?.length && bucketsHelper) {\n ragScore = bucketsHelper.getBucketForValue(<number>value, rag)\n }\n return ragScore\n }\n\n build = () => {\n const { latest, earliest, latestTs, earliestTs } = this.dataset\n const scorecordArr: Scorecard[] = latest.map((datasetRow: DashboardDataResponse, index: number) => {\n const { raw: value, rag } = datasetRow[this.valueKey]\n const prevVal = earliest[index][this.valueKey].raw\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n const title = this.titleColumn?.display\n\n return this.createScorecardData({\n id: this.id,\n title: title || '',\n value: value || '',\n rag: this.setRagScore(value, rag, this.buckets, this.bucketsHelper),\n prevVal,\n valueFor,\n valueFrom,\n })\n })\n\n return scorecordArr[0]\n }\n}\n\nexport { ScorecardVisualisation }\nexport default ScorecardVisualisation\n"],
5
- "mappings": "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",
6
- "names": ["Scorecard_exports", "__export", "ScorecardVisualisation", "Scorecard_default", "__toCommonJS", "import_Buckets", "import_datasetHelper", "import_validate", "definition", "ScorecardSchemas", "responseData", "valueKey", "Buckets", "rawData", "latestData", "DatasetHelper", "latestDataSetRows", "latestTs", "latestFiltered", "earliestData", "earliestDataSetRows", "earliestTs", "id", "title", "value", "rag", "valueFor", "valueFrom", "prevVal", "groupTitle", "latestValue", "earliestValue", "trendData", "buckets", "bucketsHelper", "ragScore", "latest", "earliest", "datasetRow", "index"]
5
+ "mappings": "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",
6
+ "names": ["ScorecardSchemas", "Buckets", "DatasetHelper"]
7
7
  }
@@ -1,2 +1,17 @@
1
- "use strict";var a=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var d=(e,r,i,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of c(r))!s.call(e,n)&&n!==i&&a(e,n,{get:()=>r[n],enumerable:!(t=o(r,n))||t.enumerable});return e};var u=e=>d(a({},"__esModule",{value:!0}),e);var g={};module.exports=u(g);
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
2
17
  //# sourceMappingURL=types.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_dashboards/scorecard/types.ts"],
4
4
  "sourcesContent": ["import z from 'zod'\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport ScorecardSchema from './validate'\n\nexport interface Scorecard {\n id: string\n title: string\n group?: string\n value: number | string\n trend?: ScorecardTrend | undefined\n link?:\n | {\n href: '#'\n displayName: 'View breakdown'\n }\n | undefined\n valueFor?: string\n rag?: ScorecardRag | undefined\n}\n\nexport interface ScorecardSubGroup {\n name: string\n scorecards: Scorecard[]\n}\n\nexport interface ScorecardGroup {\n title?: string\n description?: string\n scorecards: Scorecard[]\n}\n\nexport interface ScorecardTrend {\n direction: number\n value: number\n from: string\n}\n\nexport interface ScorecardRag {\n score: number\n colour: string\n}\n\nexport interface ScorecardDataset {\n earliest: DashboardDataResponse[]\n earliestTs?: string | number | null | undefined\n latest: DashboardDataResponse[]\n latestTs?: string | number | null | undefined\n}\n\nexport interface CreateScorecardDataArgs {\n id: string\n title: string\n value: string | number\n rag?:\n | {\n colour: string\n score: number\n }\n | undefined\n valueFor: string\n valueFrom: string\n prevVal: string | number | null | undefined\n groupTitle?: string\n}\n\nexport type ScorecardDefinitionType = z.infer<typeof ScorecardSchema.ScorecardSchema>\n"],
5
- "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
- "names": ["types_exports", "__toCommonJS"]
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,62 @@
1
- "use strict";var d=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var i=(o,c)=>{for(var e in c)d(o,e,{get:c[e],enumerable:!0})},l=(o,c,e,t)=>{if(c&&typeof c=="object"||typeof c=="function")for(let r of p(c))!h.call(o,r)&&r!==e&&d(o,r,{get:()=>c[r],enumerable:!(t=u(c,r))||t.enumerable});return o};var m=o=>l(d({},"__esModule",{value:!0}),o);var f={};i(f,{default:()=>b,mergeScorecardsIntoGroup:()=>s});module.exports=m(f);var n=require("../dashboard-visualisation/types");const s=o=>(o.reduce((e,t,r)=>(t.type===n.DashboardVisualisationType.SCORECARD&&e.push(r),e),[]).reduce((e,t)=>{const r=e[e.length-1];return(!r||r[r.length-1]!==t-1)&&e.push([]),e[e.length-1].push(t),e},[]).reverse().forEach(e=>{const t=e[0],r=e.map(a=>o[a].data).filter(a=>!!a);for(;e.length;){const a=e.pop();a!==void 0&&o.splice(a,1)}r.length&&o.splice(t,0,{id:`${t}`,type:n.DashboardVisualisationType.SCORECARD_GROUP,data:[{scorecards:r}]})}),o);var b={mergeScorecardsIntoGroup:s};0&&(module.exports={mergeScorecardsIntoGroup});
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var utils_exports = {};
20
+ __export(utils_exports, {
21
+ default: () => utils_default,
22
+ mergeScorecardsIntoGroup: () => mergeScorecardsIntoGroup
23
+ });
24
+ module.exports = __toCommonJS(utils_exports);
25
+ var import_types = require("../dashboard-visualisation/types");
26
+ const mergeScorecardsIntoGroup = (visualisations) => {
27
+ const groupedScorecardIndexes = visualisations.reduce((acc, vis, i) => {
28
+ if (vis.type === import_types.DashboardVisualisationType.SCORECARD) acc.push(i);
29
+ return acc;
30
+ }, []).reduce((r, n) => {
31
+ const lastSubArray = r[r.length - 1];
32
+ if (!lastSubArray || lastSubArray[lastSubArray.length - 1] !== n - 1) r.push([]);
33
+ r[r.length - 1].push(n);
34
+ return r;
35
+ }, []);
36
+ groupedScorecardIndexes.reverse().forEach((group) => {
37
+ const spliceAtIndex = group[0];
38
+ const scorecardGroup = group.map((scIndex) => {
39
+ return visualisations[scIndex].data;
40
+ }).filter((scorecard) => !!scorecard);
41
+ while (group.length) {
42
+ const i = group.pop();
43
+ if (i !== void 0) visualisations.splice(i, 1);
44
+ }
45
+ if (scorecardGroup.length) {
46
+ visualisations.splice(spliceAtIndex, 0, {
47
+ id: `${spliceAtIndex}`,
48
+ type: import_types.DashboardVisualisationType.SCORECARD_GROUP,
49
+ data: [{ scorecards: scorecardGroup }]
50
+ });
51
+ }
52
+ });
53
+ return visualisations;
54
+ };
55
+ var utils_default = {
56
+ mergeScorecardsIntoGroup
57
+ };
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ mergeScorecardsIntoGroup
61
+ });
2
62
  //# sourceMappingURL=utils.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_dashboards/scorecard/utils.ts"],
4
4
  "sourcesContent": ["import { DashboardVisualisation, DashboardVisualisationType } from '../dashboard-visualisation/types'\nimport { Scorecard } from './types'\n\nexport const mergeScorecardsIntoGroup = (visualisations: DashboardVisualisation[]) => {\n const groupedScorecardIndexes: number[][] = visualisations\n // get scorecard indexes\n .reduce((acc: number[], vis: DashboardVisualisation, i: number) => {\n if (vis.type === DashboardVisualisationType.SCORECARD) acc.push(i)\n return acc\n }, [])\n // group adjacent indexes\n .reduce((r: number[][], n) => {\n const lastSubArray = r[r.length - 1]\n if (!lastSubArray || lastSubArray[lastSubArray.length - 1] !== n - 1) r.push([])\n r[r.length - 1].push(n)\n return r\n }, [])\n\n groupedScorecardIndexes.reverse().forEach((group: number[]) => {\n const spliceAtIndex = group[0]\n const scorecardGroup: Scorecard[] = group\n .map((scIndex: number) => {\n return visualisations[scIndex].data as Scorecard\n })\n .filter((scorecard: Scorecard) => !!scorecard)\n\n while (group.length) {\n const i = group.pop()\n if (i !== undefined) visualisations.splice(i, 1)\n }\n\n if (scorecardGroup.length) {\n visualisations.splice(spliceAtIndex, 0, {\n id: `${spliceAtIndex}`,\n type: DashboardVisualisationType.SCORECARD_GROUP,\n data: [{ scorecards: scorecardGroup }],\n })\n }\n })\n\n return visualisations\n}\n\nexport default {\n mergeScorecardsIntoGroup,\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,6BAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAmE,4CAG5D,MAAMF,EAA4BG,IACKA,EAEzC,OAAO,CAACC,EAAeC,EAA6BC,KAC/CD,EAAI,OAAS,6BAA2B,WAAWD,EAAI,KAAKE,CAAC,EAC1DF,GACN,CAAC,CAAC,EAEJ,OAAO,CAACG,EAAeC,IAAM,CAC5B,MAAMC,EAAeF,EAAEA,EAAE,OAAS,CAAC,EACnC,OAAI,CAACE,GAAgBA,EAAaA,EAAa,OAAS,CAAC,IAAMD,EAAI,IAAGD,EAAE,KAAK,CAAC,CAAC,EAC/EA,EAAEA,EAAE,OAAS,CAAC,EAAE,KAAKC,CAAC,EACfD,CACT,EAAG,CAAC,CAAC,EAEiB,QAAQ,EAAE,QAASG,GAAoB,CAC7D,MAAMC,EAAgBD,EAAM,CAAC,EACvBE,EAA8BF,EACjC,IAAKG,GACGV,EAAeU,CAAO,EAAE,IAChC,EACA,OAAQC,GAAyB,CAAC,CAACA,CAAS,EAE/C,KAAOJ,EAAM,QAAQ,CACnB,MAAMJ,EAAII,EAAM,IAAI,EAChBJ,IAAM,QAAWH,EAAe,OAAOG,EAAG,CAAC,CACjD,CAEIM,EAAe,QACjBT,EAAe,OAAOQ,EAAe,EAAG,CACtC,GAAI,GAAGA,CAAa,GACpB,KAAM,6BAA2B,gBACjC,KAAM,CAAC,CAAE,WAAYC,CAAe,CAAC,CACvC,CAAC,CAEL,CAAC,EAEMT,GAGT,IAAOJ,EAAQ,CACb,yBAAAC,CACF",
6
- "names": ["utils_exports", "__export", "utils_default", "mergeScorecardsIntoGroup", "__toCommonJS", "import_types", "visualisations", "acc", "vis", "i", "r", "n", "lastSubArray", "group", "spliceAtIndex", "scorecardGroup", "scIndex", "scorecard"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmE;AAG5D,MAAM,2BAA2B,CAAC,mBAA6C;AACpF,QAAM,0BAAsC,eAEzC,OAAO,CAAC,KAAe,KAA6B,MAAc;AACjE,QAAI,IAAI,SAAS,wCAA2B,UAAW,KAAI,KAAK,CAAC;AACjE,WAAO;AAAA,EACT,GAAG,CAAC,CAAC,EAEJ,OAAO,CAAC,GAAe,MAAM;AAC5B,UAAM,eAAe,EAAE,EAAE,SAAS,CAAC;AACnC,QAAI,CAAC,gBAAgB,aAAa,aAAa,SAAS,CAAC,MAAM,IAAI,EAAG,GAAE,KAAK,CAAC,CAAC;AAC/E,MAAE,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEP,0BAAwB,QAAQ,EAAE,QAAQ,CAAC,UAAoB;AAC7D,UAAM,gBAAgB,MAAM,CAAC;AAC7B,UAAM,iBAA8B,MACjC,IAAI,CAAC,YAAoB;AACxB,aAAO,eAAe,OAAO,EAAE;AAAA,IACjC,CAAC,EACA,OAAO,CAAC,cAAyB,CAAC,CAAC,SAAS;AAE/C,WAAO,MAAM,QAAQ;AACnB,YAAM,IAAI,MAAM,IAAI;AACpB,UAAI,MAAM,OAAW,gBAAe,OAAO,GAAG,CAAC;AAAA,IACjD;AAEA,QAAI,eAAe,QAAQ;AACzB,qBAAe,OAAO,eAAe,GAAG;AAAA,QACtC,IAAI,GAAG,aAAa;AAAA,QACpB,MAAM,wCAA2B;AAAA,QACjC,MAAM,CAAC,EAAE,YAAY,eAAe,CAAC;AAAA,MACvC,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,IAAO,gBAAQ;AAAA,EACb;AACF;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,51 @@
1
- "use strict";var c=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(o,a)=>{for(var r in a)c(o,r,{get:a[r],enumerable:!0})},u=(o,a,r,n)=>{if(a&&typeof a=="object"||typeof a=="function")for(let t of l(a))!m.call(o,t)&&t!==r&&c(o,t,{get:()=>a[t],enumerable:!(n=d(a,t))||n.enumerable});return o};var h=o=>u(c({},"__esModule",{value:!0}),o);var g={};p(g,{default:()=>S});module.exports=h(g);var e=require("zod"),s=require("../dashboard-visualisation/Validate");const b=e.z.object({id:e.z.string(),optional:e.z.boolean().default(!1)}),f=e.z.object({id:e.z.string(),unit:e.z.enum(["NUMBER","PERCENTAGE"]).optional()}),i=e.z.array(f).length(1,"Measure must contain a single item"),y=e.z.object({...s.DashboardVisualisationSchema.shape,type:e.z.literal("scorecard"),display:e.z.string(),description:e.z.undefined(),options:e.z.object(s.BucketOptionsSchema.shape).optional(),columns:e.z.object({...s.DashboardColumns.shape,keys:e.z.array(b).min(1),measures:i})});var S={ScorecardSchema:y,ScorecardMeasuresSchema:i};
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var validate_exports = {};
20
+ __export(validate_exports, {
21
+ default: () => validate_default
22
+ });
23
+ module.exports = __toCommonJS(validate_exports);
24
+ var import_zod = require("zod");
25
+ var import_Validate = require("../dashboard-visualisation/Validate");
26
+ const scorecardKey = import_zod.z.object({
27
+ id: import_zod.z.string(),
28
+ optional: import_zod.z.boolean().default(false)
29
+ });
30
+ const scorecardMeasure = import_zod.z.object({
31
+ id: import_zod.z.string(),
32
+ unit: import_zod.z.enum(["NUMBER", "PERCENTAGE"]).optional()
33
+ });
34
+ const ScorecardMeasuresSchema = import_zod.z.array(scorecardMeasure).length(1, "Measure must contain a single item");
35
+ const ScorecardSchema = import_zod.z.object({
36
+ ...import_Validate.DashboardVisualisationSchema.shape,
37
+ type: import_zod.z.literal("scorecard"),
38
+ display: import_zod.z.string(),
39
+ description: import_zod.z.undefined(),
40
+ options: import_zod.z.object(import_Validate.BucketOptionsSchema.shape).optional(),
41
+ columns: import_zod.z.object({
42
+ ...import_Validate.DashboardColumns.shape,
43
+ keys: import_zod.z.array(scorecardKey).min(1),
44
+ measures: ScorecardMeasuresSchema
45
+ })
46
+ });
47
+ var validate_default = {
48
+ ScorecardSchema,
49
+ ScorecardMeasuresSchema
50
+ };
2
51
  //# sourceMappingURL=validate.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_dashboards/scorecard/validate.ts"],
4
4
  "sourcesContent": ["import { z } from 'zod'\nimport {\n DashboardVisualisationSchema,\n DashboardColumns,\n BucketOptionsSchema,\n} from '../dashboard-visualisation/Validate'\n\nconst scorecardKey = z.object({\n id: z.string(),\n optional: z.boolean().default(false),\n})\n\nconst scorecardMeasure = z.object({\n id: z.string(),\n unit: z.enum(['NUMBER', 'PERCENTAGE']).optional(),\n})\n\nconst ScorecardMeasuresSchema = z.array(scorecardMeasure).length(1, 'Measure must contain a single item')\n\nconst ScorecardSchema = z.object({\n ...DashboardVisualisationSchema.shape,\n type: z.literal('scorecard'),\n display: z.string(),\n description: z.undefined(),\n options: z.object(BucketOptionsSchema.shape).optional(),\n columns: z.object({\n ...DashboardColumns.shape,\n keys: z.array(scorecardKey).min(1),\n measures: ScorecardMeasuresSchema,\n }),\n})\n\nexport default {\n ScorecardSchema,\n ScorecardMeasuresSchema,\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,eAClBC,EAIO,+CAEP,MAAMC,EAAe,IAAE,OAAO,CAC5B,GAAI,IAAE,OAAO,EACb,SAAU,IAAE,QAAQ,EAAE,QAAQ,EAAK,CACrC,CAAC,EAEKC,EAAmB,IAAE,OAAO,CAChC,GAAI,IAAE,OAAO,EACb,KAAM,IAAE,KAAK,CAAC,SAAU,YAAY,CAAC,EAAE,SAAS,CAClD,CAAC,EAEKC,EAA0B,IAAE,MAAMD,CAAgB,EAAE,OAAO,EAAG,oCAAoC,EAElGE,EAAkB,IAAE,OAAO,CAC/B,GAAG,+BAA6B,MAChC,KAAM,IAAE,QAAQ,WAAW,EAC3B,QAAS,IAAE,OAAO,EAClB,YAAa,IAAE,UAAU,EACzB,QAAS,IAAE,OAAO,sBAAoB,KAAK,EAAE,SAAS,EACtD,QAAS,IAAE,OAAO,CAChB,GAAG,mBAAiB,MACpB,KAAM,IAAE,MAAMH,CAAY,EAAE,IAAI,CAAC,EACjC,SAAUE,CACZ,CAAC,CACH,CAAC,EAED,IAAON,EAAQ,CACb,gBAAAO,EACA,wBAAAD,CACF",
6
- "names": ["validate_exports", "__export", "validate_default", "__toCommonJS", "import_zod", "import_Validate", "scorecardKey", "scorecardMeasure", "ScorecardMeasuresSchema", "ScorecardSchema"]
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,sBAIO;AAEP,MAAM,eAAe,aAAE,OAAO;AAAA,EAC5B,IAAI,aAAE,OAAO;AAAA,EACb,UAAU,aAAE,QAAQ,EAAE,QAAQ,KAAK;AACrC,CAAC;AAED,MAAM,mBAAmB,aAAE,OAAO;AAAA,EAChC,IAAI,aAAE,OAAO;AAAA,EACb,MAAM,aAAE,KAAK,CAAC,UAAU,YAAY,CAAC,EAAE,SAAS;AAClD,CAAC;AAED,MAAM,0BAA0B,aAAE,MAAM,gBAAgB,EAAE,OAAO,GAAG,oCAAoC;AAExG,MAAM,kBAAkB,aAAE,OAAO;AAAA,EAC/B,GAAG,6CAA6B;AAAA,EAChC,MAAM,aAAE,QAAQ,WAAW;AAAA,EAC3B,SAAS,aAAE,OAAO;AAAA,EAClB,aAAa,aAAE,UAAU;AAAA,EACzB,SAAS,aAAE,OAAO,oCAAoB,KAAK,EAAE,SAAS;AAAA,EACtD,SAAS,aAAE,OAAO;AAAA,IAChB,GAAG,iCAAiB;AAAA,IACpB,MAAM,aAAE,MAAM,YAAY,EAAE,IAAI,CAAC;AAAA,IACjC,UAAU;AAAA,EACZ,CAAC;AACH,CAAC;AAED,IAAO,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,213 @@
1
- "use strict";var R=Object.create;var h=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var H=(r,e)=>{for(var t in e)h(r,t,{get:e[t],enumerable:!0})},v=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of T(e))!$.call(r,s)&&s!==t&&h(r,s,{get:()=>e[s],enumerable:!(i=w(e,s))||i.enumerable});return r};var m=(r,e,t)=>(t=r!=null?R(F(r)):{},v(e||!r||!r.__esModule?h(t,"default",{value:r,enumerable:!0}):t,r)),I=r=>v(h({},"__esModule",{value:!0}),r);var M={};H(M,{ScorecardGroupVisualisation:()=>f,default:()=>L});module.exports=I(M);var y=m(require("../../../utils/datasetHelper")),g=m(require("../../_charts/chart/buckets/Buckets")),K=m(require("../scorecard/Scorecard")),S=m(require("./validate"));class f{definition;id;measures;keys;options;dataset;groupKey;groupKeyId;groupKeyDisplay;bucketsHelper;buckets=[];valueColumn;valueKey="";titleColumn;titleKey="";responseData=[];scoreCardBuilder;constructor(){this.scoreCardBuilder=new K.default}withDefinition=e=>(this.definition=S.default.ScorecardGroupSchema.parse(e),this.init(),this);withData=e=>(this.responseData=e,this.dataset=this.scoreCardBuilder.getDataset(this.definition,this.responseData),this.initBuckets(this.responseData,this.valueKey),this.initGroupVars(),this);init=()=>{this.id=this.definition.id,this.measures=this.definition.columns.measures,this.keys=this.definition.columns.keys,this.options=this.definition.options,this.valueKey=this.measures[0].id,this.titleColumn={display:this.definition.display||"",id:this.valueKey}};initBuckets=(e,t)=>{(this.options?.buckets||this.options?.useRagColour)&&(this.bucketsHelper=new g.default(e,this.definition,t,!1,this.scoreCardBuilder.ragColours),this.buckets=this.bucketsHelper.getBuckets())};initGroupVars=()=>{this.groupKey=y.default.getGroupKey(this.dataset.latest,this.keys||[]),this.groupKeyId=this.groupKey?.id,this.groupKeyDisplay=this.groupKey?.display,this.valueColumn=this.measures.find(e=>e.displayValue),this.valueColumn&&(this.valueKey=this.valueColumn?.id,this.titleColumn=this.measures.find(e=>e.display||e.display===""),this.titleKey=this.titleColumn?.id||"")};createScorecardGroupFromColumns=()=>{const{latest:e,earliest:t,latestTs:i,earliestTs:s}=this.dataset;return e.map((o,u)=>({title:this.createGroupTitle(o),scorecards:Object.keys(o).filter(a=>a!==this.groupKeyId).map(a=>{const c=this.measures.find(V=>V.id===a)?.display||a,p=o[a],{raw:d,rag:l}=p,D=Number(d),G=l!==void 0?Number(l):void 0;this.initBuckets([o],a);const b=`${i}`,C=`${s}`,k=t[u][a]?.raw,B=this.scoreCardBuilder.setRagScore(D,G,this.buckets,this.bucketsHelper);return this.scoreCardBuilder.createScorecardData({id:this.id,title:c,value:D,rag:B,prevVal:k,valueFor:b,valueFrom:C})})}))};createScorecardGroupFromList=()=>{const{latest:e,earliest:t}=this.dataset;return[{title:"",scorecards:e.map((i,s)=>{const o=this.getScorecardValues(i),u=t[s][this.valueKey].raw;return this.scoreCardBuilder.createScorecardData({...o,prevVal:u})})}]};createScorecardGroupFromListWithGroups=()=>{const{latest:e,earliest:t}=this.dataset;let i=y.default.groupRowsByKey(t,this.groupKeyId),s=y.default.groupRowsByKey(e,this.groupKeyId);return this.groupKeyId===this.titleKey&&(s=[s.flat()],i=[i.flat()]),s.map((u,a)=>({title:this.groupKeyDisplay?`By ${this.groupKeyDisplay}`:"",scorecards:u.map((n,c)=>{const p=this.getScorecardValues(n),l=i[a][c][this.valueKey]?.raw;return this.scoreCardBuilder.createScorecardData({...p,prevVal:l})})}))};getScorecardValues=e=>{const{latestTs:t,earliestTs:i}=this.dataset,s=`${this.titleColumn?.display} ${e[this.titleKey].raw}`,o=e[this.valueKey],{raw:u,rag:a}=o,n=Number(u),c=a!==void 0?Number(a):void 0;this.initBuckets([e],this.valueKey);const p=`${t}`,d=`${i}`;return{id:this.id,title:s,value:n,rag:this.scoreCardBuilder.setRagScore(n,c,this.buckets,this.bucketsHelper),valueFor:p,valueFrom:d}};createGroupTitle=e=>{const t=this.groupKeyId?`${e[this.groupKeyId]?.raw}`:"";return this.groupKeyDisplay&&this.groupKeyDisplay.length?`${this.groupKeyDisplay}: ${t}`:t};build=()=>{let e;return this.valueColumn?this.groupKey?e=this.createScorecardGroupFromListWithGroups():e=this.createScorecardGroupFromList():e=this.createScorecardGroupFromColumns(),e}}var L=f;0&&(module.exports={ScorecardGroupVisualisation});
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var ScorecardGroup_exports = {};
30
+ __export(ScorecardGroup_exports, {
31
+ ScorecardGroupVisualisation: () => ScorecardGroupVisualisation,
32
+ default: () => ScorecardGroup_default
33
+ });
34
+ module.exports = __toCommonJS(ScorecardGroup_exports);
35
+ var import_datasetHelper = __toESM(require("../../../utils/datasetHelper"));
36
+ var import_Buckets = __toESM(require("../../_charts/chart/buckets/Buckets"));
37
+ var import_Scorecard = __toESM(require("../scorecard/Scorecard"));
38
+ var import_validate = __toESM(require("./validate"));
39
+ class ScorecardGroupVisualisation {
40
+ definition;
41
+ id;
42
+ measures;
43
+ keys;
44
+ options;
45
+ dataset;
46
+ groupKey;
47
+ groupKeyId;
48
+ groupKeyDisplay;
49
+ bucketsHelper;
50
+ buckets = [];
51
+ valueColumn;
52
+ valueKey = "";
53
+ titleColumn;
54
+ titleKey = "";
55
+ responseData = [];
56
+ scoreCardBuilder;
57
+ constructor() {
58
+ this.scoreCardBuilder = new import_Scorecard.default();
59
+ }
60
+ withDefinition = (definition) => {
61
+ this.definition = import_validate.default.ScorecardGroupSchema.parse(definition);
62
+ this.init();
63
+ return this;
64
+ };
65
+ withData = (responseData) => {
66
+ this.responseData = responseData;
67
+ this.dataset = this.scoreCardBuilder.getDataset(this.definition, this.responseData);
68
+ this.initBuckets(this.responseData, this.valueKey);
69
+ this.initGroupVars();
70
+ return this;
71
+ };
72
+ init = () => {
73
+ this.id = this.definition.id;
74
+ this.measures = this.definition.columns.measures;
75
+ this.keys = this.definition.columns.keys;
76
+ this.options = this.definition.options;
77
+ this.valueKey = this.measures[0].id;
78
+ this.titleColumn = { display: this.definition.display || "", id: this.valueKey };
79
+ };
80
+ initBuckets = (responseData, valueKey) => {
81
+ if (this.options?.buckets || this.options?.useRagColour) {
82
+ this.bucketsHelper = new import_Buckets.default(responseData, this.definition, valueKey, false, this.scoreCardBuilder.ragColours);
83
+ this.buckets = this.bucketsHelper.getBuckets();
84
+ }
85
+ };
86
+ initGroupVars = () => {
87
+ this.groupKey = import_datasetHelper.default.getGroupKey(
88
+ this.dataset.latest,
89
+ this.keys || []
90
+ );
91
+ this.groupKeyId = this.groupKey?.id;
92
+ this.groupKeyDisplay = this.groupKey?.display;
93
+ this.valueColumn = this.measures.find((col) => col.displayValue);
94
+ if (this.valueColumn) {
95
+ this.valueKey = this.valueColumn?.id;
96
+ this.titleColumn = this.measures.find((col) => {
97
+ return col.display || col.display === "";
98
+ });
99
+ this.titleKey = this.titleColumn?.id || "";
100
+ }
101
+ };
102
+ createScorecardGroupFromColumns = () => {
103
+ const { latest, earliest, latestTs, earliestTs } = this.dataset;
104
+ return latest.map((row, rowIndex) => {
105
+ return {
106
+ title: this.createGroupTitle(row),
107
+ scorecards: Object.keys(row).filter((colId) => colId !== this.groupKeyId).map((colId) => {
108
+ const measure = this.measures.find((m) => m.id === colId);
109
+ const title = measure?.display || colId;
110
+ const rowCol = row[colId];
111
+ const { raw, rag } = rowCol;
112
+ const value = Number(raw);
113
+ const ragValue = rag !== void 0 ? Number(rag) : void 0;
114
+ this.initBuckets([row], colId);
115
+ const valueFor = `${latestTs}`;
116
+ const valueFrom = `${earliestTs}`;
117
+ const comparisonRow = earliest[rowIndex];
118
+ const prevVal = comparisonRow[colId]?.raw;
119
+ const ragScore = this.scoreCardBuilder.setRagScore(value, ragValue, this.buckets, this.bucketsHelper);
120
+ return this.scoreCardBuilder.createScorecardData({
121
+ id: this.id,
122
+ title,
123
+ value,
124
+ rag: ragScore,
125
+ prevVal,
126
+ valueFor,
127
+ valueFrom
128
+ });
129
+ })
130
+ };
131
+ });
132
+ };
133
+ createScorecardGroupFromList = () => {
134
+ const { latest, earliest } = this.dataset;
135
+ return [
136
+ {
137
+ title: "",
138
+ scorecards: latest.map((row, index) => {
139
+ const values = this.getScorecardValues(row);
140
+ const prevVal = earliest[index][this.valueKey].raw;
141
+ return this.scoreCardBuilder.createScorecardData({
142
+ ...values,
143
+ prevVal
144
+ });
145
+ })
146
+ }
147
+ ];
148
+ };
149
+ createScorecardGroupFromListWithGroups = () => {
150
+ const { latest, earliest } = this.dataset;
151
+ let earliestGroupedByKey = import_datasetHelper.default.groupRowsByKey(earliest, this.groupKeyId);
152
+ let latestGroupedByKey = import_datasetHelper.default.groupRowsByKey(latest, this.groupKeyId);
153
+ if (this.groupKeyId === this.titleKey) {
154
+ latestGroupedByKey = [latestGroupedByKey.flat()];
155
+ earliestGroupedByKey = [earliestGroupedByKey.flat()];
156
+ }
157
+ const scorecardGroup = latestGroupedByKey.map((group, groupIndex) => {
158
+ return {
159
+ title: this.groupKeyDisplay ? `By ${this.groupKeyDisplay}` : "",
160
+ scorecards: group.map((row, rowIndex) => {
161
+ const values = this.getScorecardValues(row);
162
+ const comparisonRow = earliestGroupedByKey[groupIndex][rowIndex];
163
+ const prevVal = comparisonRow[this.valueKey]?.raw;
164
+ return this.scoreCardBuilder.createScorecardData({
165
+ ...values,
166
+ prevVal
167
+ });
168
+ })
169
+ };
170
+ });
171
+ return scorecardGroup;
172
+ };
173
+ getScorecardValues = (row) => {
174
+ const { latestTs, earliestTs } = this.dataset;
175
+ const title = `${this.titleColumn?.display} ${row[this.titleKey].raw}`;
176
+ const rowCol = row[this.valueKey];
177
+ const { raw, rag: ragScore } = rowCol;
178
+ const value = Number(raw);
179
+ const rag = ragScore !== void 0 ? Number(ragScore) : void 0;
180
+ this.initBuckets([row], this.valueKey);
181
+ const valueFor = `${latestTs}`;
182
+ const valueFrom = `${earliestTs}`;
183
+ return {
184
+ id: this.id,
185
+ title,
186
+ value,
187
+ rag: this.scoreCardBuilder.setRagScore(value, rag, this.buckets, this.bucketsHelper),
188
+ valueFor,
189
+ valueFrom
190
+ };
191
+ };
192
+ createGroupTitle = (row) => {
193
+ const title = this.groupKeyId ? `${row[this.groupKeyId]?.raw}` : "";
194
+ return this.groupKeyDisplay && this.groupKeyDisplay.length ? `${this.groupKeyDisplay}: ${title}` : title;
195
+ };
196
+ build = () => {
197
+ let scorecardGroup;
198
+ if (!this.valueColumn) {
199
+ scorecardGroup = this.createScorecardGroupFromColumns();
200
+ } else if (this.groupKey) {
201
+ scorecardGroup = this.createScorecardGroupFromListWithGroups();
202
+ } else {
203
+ scorecardGroup = this.createScorecardGroupFromList();
204
+ }
205
+ return scorecardGroup;
206
+ };
207
+ }
208
+ var ScorecardGroup_default = ScorecardGroupVisualisation;
209
+ // Annotate the CommonJS export names for ESM import in node:
210
+ 0 && (module.exports = {
211
+ ScorecardGroupVisualisation
212
+ });
2
213
  //# sourceMappingURL=ScorecardGroup.js.map