@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.3 → 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 +2 -2
  17. package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
  18. package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
  19. package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -0
  20. package/dpr/components/_catalogue/catalogue-list/utils.ts +5 -5
  21. package/dpr/components/_charts/chart/Buckets.js +1 -1
  22. package/dpr/components/_charts/chart/Buckets.js.map +3 -3
  23. package/dpr/components/_charts/chart/Buckets.ts +3 -3
  24. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
  25. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
  26. package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +1 -13
  27. package/dpr/components/_charts/chart/heatmap/types.js +1 -1
  28. package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
  29. package/dpr/components/_charts/chart/heatmap/types.ts +1 -1
  30. package/dpr/components/_charts/utils.js +1 -1
  31. package/dpr/components/_charts/utils.js.map +3 -3
  32. package/dpr/components/_charts/utils.test.ts +1 -0
  33. package/dpr/components/_charts/utils.ts +84 -43
  34. package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
  35. package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
  36. package/dpr/components/_dashboards/dashboard-list/utils.test.ts +1 -0
  37. package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -11
  38. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +1 -1
  39. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +2 -2
  40. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +1 -1
  41. package/dpr/components/_dashboards/dashboard-visualisation/types.js +1 -1
  42. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
  43. package/dpr/components/_dashboards/dashboard-visualisation/types.ts +8 -8
  44. package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
  45. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
  46. package/dpr/components/_dashboards/scorecard/Scorecard.ts +8 -8
  47. package/dpr/components/_dashboards/scorecard/types.js +1 -1
  48. package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
  49. package/dpr/components/_dashboards/scorecard/types.ts +12 -10
  50. package/dpr/components/_dashboards/scorecard/utils.js +1 -1
  51. package/dpr/components/_dashboards/scorecard/utils.js.map +1 -1
  52. package/dpr/components/_dashboards/scorecard/utils.test.ts +1 -0
  53. package/dpr/components/_filters/filter-input/enum.js +1 -1
  54. package/dpr/components/_filters/filter-input/enum.js.map +1 -1
  55. package/dpr/components/_filters/filter-input/filters.js +1 -1
  56. package/dpr/components/_filters/filter-input/filters.js.map +1 -1
  57. package/dpr/components/_filters/filter-input/filters.test.ts +1 -0
  58. package/dpr/components/_filters/filter-input/types.d.js +1 -1
  59. package/dpr/components/_filters/filter-input/types.d.js.map +1 -1
  60. package/dpr/components/_filters/filters-selected/utils.js +1 -1
  61. package/dpr/components/_filters/filters-selected/utils.js.map +3 -3
  62. package/dpr/components/_filters/filters-selected/utils.test.ts +7 -4
  63. package/dpr/components/_filters/filters-selected/utils.ts +1 -1
  64. package/dpr/components/_filters/filtersTypeEnum.js +1 -1
  65. package/dpr/components/_filters/filtersTypeEnum.js.map +1 -1
  66. package/dpr/components/_filters/types.d.js +1 -1
  67. package/dpr/components/_filters/types.d.js.map +2 -2
  68. package/dpr/components/_filters/types.d.ts +5 -5
  69. package/dpr/components/_filters/utils.js +1 -1
  70. package/dpr/components/_filters/utils.js.map +2 -2
  71. package/dpr/components/_filters/utils.test.ts +54 -49
  72. package/dpr/components/_filters/utils.ts +16 -20
  73. package/dpr/components/_inputs/date-input/utils.js +1 -1
  74. package/dpr/components/_inputs/date-input/utils.js.map +1 -1
  75. package/dpr/components/_inputs/date-input/utils.test.ts +1 -0
  76. package/dpr/components/_inputs/date-range/clientClass.mjs +2 -2
  77. package/dpr/components/_inputs/date-range/types.js +1 -1
  78. package/dpr/components/_inputs/date-range/types.js.map +2 -2
  79. package/dpr/components/_inputs/date-range/types.ts +2 -2
  80. package/dpr/components/_inputs/date-range/utils.js +1 -1
  81. package/dpr/components/_inputs/date-range/utils.js.map +2 -2
  82. package/dpr/components/_inputs/date-range/utils.test.ts +5 -7
  83. package/dpr/components/_inputs/date-range/utils.ts +4 -4
  84. package/dpr/components/_inputs/date-range/view.njk +1 -0
  85. package/dpr/components/_inputs/granular-date-range/types.js +1 -1
  86. package/dpr/components/_inputs/granular-date-range/types.js.map +1 -1
  87. package/dpr/components/_inputs/granular-date-range/utils.js +1 -1
  88. package/dpr/components/_inputs/granular-date-range/utils.js.map +1 -1
  89. package/dpr/components/_inputs/granular-date-range/utils.test.ts +1 -0
  90. package/dpr/components/_inputs/multi-select/utils.js +1 -1
  91. package/dpr/components/_inputs/multi-select/utils.js.map +3 -3
  92. package/dpr/components/_inputs/multi-select/utils.ts +1 -1
  93. package/dpr/components/_inputs/multi-select/utilt.test.ts +29 -14
  94. package/dpr/components/_inputs/start-end-date/utils.js +1 -1
  95. package/dpr/components/_inputs/start-end-date/utils.js.map +1 -1
  96. package/dpr/components/_inputs/start-end-date/utils.test.ts +1 -0
  97. package/dpr/components/_reports/report-actions/actionsTemplate.js +1 -1
  98. package/dpr/components/_reports/report-actions/actionsTemplate.js.map +1 -1
  99. package/dpr/components/_reports/report-actions/types.d.js +1 -1
  100. package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
  101. package/dpr/components/_reports/report-actions/types.d.ts +1 -1
  102. package/dpr/components/_reports/report-actions/utils.js +1 -1
  103. package/dpr/components/_reports/report-actions/utils.js.map +1 -1
  104. package/dpr/components/_reports/report-actions/utils.test.ts +8 -4
  105. package/dpr/components/_reports/report-columns-form/types.d.js +1 -1
  106. package/dpr/components/_reports/report-columns-form/types.d.js.map +1 -1
  107. package/dpr/components/_reports/report-columns-form/utils.js +1 -1
  108. package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
  109. package/dpr/components/_reports/report-columns-form/utils.ts +1 -1
  110. package/dpr/components/_reports/report-data-table/types.d.js +1 -1
  111. package/dpr/components/_reports/report-data-table/types.d.js.map +1 -1
  112. package/dpr/components/_reports/report-data-table/utils.js +1 -1
  113. package/dpr/components/_reports/report-data-table/utils.js.map +3 -3
  114. package/dpr/components/_reports/report-data-table/utils.test.ts +15 -8
  115. package/dpr/components/_reports/report-data-table/utils.ts +20 -8
  116. package/dpr/components/_reports/report-pagination/types.d.js +1 -1
  117. package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
  118. package/dpr/components/_reports/report-pagination/types.d.ts +2 -2
  119. package/dpr/components/_reports/report-pagination/utils.js +1 -1
  120. package/dpr/components/_reports/report-pagination/utils.js.map +1 -1
  121. package/dpr/components/_reports/report-pagination/utils.test.ts +1 -0
  122. package/dpr/components/_reports/report-totals/utils.js +1 -1
  123. package/dpr/components/_reports/report-totals/utils.js.map +1 -1
  124. package/dpr/components/card-group/utils.js +1 -1
  125. package/dpr/components/card-group/utils.js.map +1 -1
  126. package/dpr/components/card-group/utils.test.ts +7 -0
  127. package/dpr/components/report-list/defaultTokenProvider.js +1 -1
  128. package/dpr/components/report-list/defaultTokenProvider.js.map +3 -3
  129. package/dpr/components/report-list/defaultTokenProvider.ts +3 -3
  130. package/dpr/components/report-list/types.d.js +1 -1
  131. package/dpr/components/report-list/types.d.js.map +1 -1
  132. package/dpr/components/report-list/utils.js +1 -1
  133. package/dpr/components/report-list/utils.js.map +2 -2
  134. package/dpr/components/report-list/utils.test.ts +6 -4
  135. package/dpr/components/report-list/utils.ts +5 -5
  136. package/dpr/components/show-more/utils.js +1 -1
  137. package/dpr/components/show-more/utils.js.map +1 -1
  138. package/dpr/components/user-reports/bookmarks/utils.js +1 -1
  139. package/dpr/components/user-reports/bookmarks/utils.js.map +3 -3
  140. package/dpr/components/user-reports/bookmarks/utils.test.ts +14 -11
  141. package/dpr/components/user-reports/bookmarks/utils.ts +26 -31
  142. package/dpr/components/user-reports/requested/utils.js +1 -1
  143. package/dpr/components/user-reports/requested/utils.js.map +3 -3
  144. package/dpr/components/user-reports/requested/utils.test.ts +4 -3
  145. package/dpr/components/user-reports/requested/utils.ts +4 -3
  146. package/dpr/components/user-reports/types.d.js +1 -1
  147. package/dpr/components/user-reports/types.d.js.map +2 -2
  148. package/dpr/components/user-reports/types.d.ts +1 -1
  149. package/dpr/components/user-reports/utils.js +1 -1
  150. package/dpr/components/user-reports/utils.js.map +3 -3
  151. package/dpr/components/user-reports/utils.test.ts +48 -47
  152. package/dpr/components/user-reports/utils.ts +51 -57
  153. package/dpr/components/user-reports/viewed/utils.js +1 -1
  154. package/dpr/components/user-reports/viewed/utils.js.map +2 -2
  155. package/dpr/components/user-reports/viewed/utils.ts +5 -4
  156. package/dpr/data/agentConfig.js +1 -1
  157. package/dpr/data/agentConfig.js.map +1 -1
  158. package/dpr/data/dashboardClient.js +1 -1
  159. package/dpr/data/dashboardClient.js.map +2 -2
  160. package/dpr/data/dashboardClient.ts +2 -2
  161. package/dpr/data/dprReportingClient.js +1 -1
  162. package/dpr/data/dprReportingClient.js.map +3 -3
  163. package/dpr/data/dprReportingClient.ts +3 -3
  164. package/dpr/data/missingReportClient.js +2 -0
  165. package/dpr/data/missingReportClient.js.map +7 -0
  166. package/dpr/{services/missingReport → data}/missingReportClient.ts +4 -4
  167. package/dpr/data/productCollectionClient.js +2 -0
  168. package/dpr/data/productCollectionClient.js.map +7 -0
  169. package/dpr/data/productCollectionClient.ts +28 -0
  170. package/dpr/data/reportDataStore.js +1 -1
  171. package/dpr/data/reportDataStore.js.map +1 -1
  172. package/dpr/data/reportingClient.js +1 -1
  173. package/dpr/data/reportingClient.js.map +3 -3
  174. package/dpr/data/reportingClient.ts +7 -9
  175. package/dpr/data/restClient.js +1 -1
  176. package/dpr/data/restClient.js.map +2 -2
  177. package/dpr/data/restClient.ts +5 -5
  178. package/dpr/data/types.d.js +1 -1
  179. package/dpr/data/types.d.js.map +2 -2
  180. package/dpr/data/types.d.ts +1 -1
  181. package/dpr/middleware/reportAuthoriser.js +1 -1
  182. package/dpr/middleware/reportAuthoriser.js.map +2 -2
  183. package/dpr/middleware/reportAuthoriser.ts +2 -2
  184. package/dpr/middleware/setUpDprResources.js +1 -1
  185. package/dpr/middleware/setUpDprResources.js.map +2 -2
  186. package/dpr/middleware/setUpDprResources.test.ts +59 -20
  187. package/dpr/middleware/setUpDprResources.ts +30 -29
  188. package/dpr/middleware/setUpNestedRoute.js +1 -1
  189. package/dpr/middleware/setUpNestedRoute.js.map +2 -2
  190. package/dpr/middleware/setUpNestedRoute.ts +1 -1
  191. package/dpr/routes/index.js +1 -1
  192. package/dpr/routes/index.js.map +2 -2
  193. package/dpr/routes/index.ts +1 -2
  194. package/dpr/routes/journeys/download-report/controller.js +1 -1
  195. package/dpr/routes/journeys/download-report/controller.js.map +3 -3
  196. package/dpr/routes/journeys/download-report/controller.ts +7 -6
  197. package/dpr/routes/journeys/download-report/request-download/form/controller.js +1 -1
  198. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +3 -3
  199. package/dpr/routes/journeys/download-report/request-download/form/controller.ts +1 -1
  200. package/dpr/routes/journeys/download-report/request-download/form/routes.js +1 -1
  201. package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +1 -1
  202. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +1 -1
  203. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +3 -3
  204. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.ts +1 -1
  205. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +1 -1
  206. package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +1 -1
  207. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +1 -1
  208. package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +1 -1
  209. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +1 -1
  210. package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +1 -1
  211. package/dpr/routes/journeys/download-report/request-download/routes.js +1 -1
  212. package/dpr/routes/journeys/download-report/request-download/routes.js.map +1 -1
  213. package/dpr/routes/journeys/download-report/request-download/service.js +1 -1
  214. package/dpr/routes/journeys/download-report/request-download/service.js.map +3 -3
  215. package/dpr/routes/journeys/download-report/request-download/service.ts +20 -8
  216. package/dpr/routes/journeys/download-report/routes.js +1 -1
  217. package/dpr/routes/journeys/download-report/routes.js.map +3 -3
  218. package/dpr/routes/journeys/download-report/routes.ts +1 -4
  219. package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
  220. package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
  221. package/dpr/routes/journeys/download-report/tests.cy.ts +4 -1
  222. package/dpr/routes/journeys/download-report/utils.js +1 -1
  223. package/dpr/routes/journeys/download-report/utils.js.map +2 -2
  224. package/dpr/routes/journeys/download-report/utils.ts +2 -4
  225. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
  226. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
  227. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +1 -1
  228. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +3 -3
  229. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.ts +2 -2
  230. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +1 -1
  231. package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +1 -1
  232. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
  233. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
  234. package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -2
  235. package/dpr/routes/journeys/my-reports/bookmarks/routes.js +1 -1
  236. package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +1 -1
  237. package/dpr/routes/journeys/my-reports/bookmarks/service.js +3 -3
  238. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +3 -3
  239. package/dpr/routes/journeys/my-reports/bookmarks/service.ts +31 -18
  240. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
  241. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
  242. package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +26 -26
  243. package/dpr/routes/journeys/my-reports/bookmarks/utils.js +1 -1
  244. package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
  245. package/dpr/routes/journeys/my-reports/bookmarks/utils.ts +10 -11
  246. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
  247. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +1 -1
  248. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +1 -1
  249. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +3 -3
  250. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.ts +1 -1
  251. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +1 -1
  252. package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +1 -1
  253. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
  254. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
  255. package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +7 -4
  256. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +1 -1
  257. package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +1 -1
  258. package/dpr/routes/journeys/my-reports/recently-viewed/service.js +1 -1
  259. package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +3 -3
  260. package/dpr/routes/journeys/my-reports/recently-viewed/service.ts +0 -2
  261. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +1 -1
  262. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +1 -1
  263. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +1 -1
  264. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +3 -3
  265. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.ts +1 -1
  266. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +1 -1
  267. package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +1 -1
  268. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +1 -1
  269. package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +1 -1
  270. package/dpr/routes/journeys/my-reports/requested-reports/routes.js +1 -1
  271. package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +1 -1
  272. package/dpr/routes/journeys/my-reports/requested-reports/service.js +1 -1
  273. package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +3 -3
  274. package/dpr/routes/journeys/my-reports/requested-reports/service.ts +25 -17
  275. package/dpr/routes/journeys/my-reports/routes.js +1 -1
  276. package/dpr/routes/journeys/my-reports/routes.js.map +3 -3
  277. package/dpr/routes/journeys/my-reports/routes.ts +0 -3
  278. package/dpr/routes/journeys/product-collection/routes.js +1 -1
  279. package/dpr/routes/journeys/product-collection/routes.js.map +1 -1
  280. package/dpr/routes/journeys/product-collection/selected/controller.js +1 -1
  281. package/dpr/routes/journeys/product-collection/selected/controller.js.map +1 -1
  282. package/dpr/routes/journeys/product-collection/selected/routes.js +1 -1
  283. package/dpr/routes/journeys/product-collection/selected/routes.js.map +1 -1
  284. package/dpr/routes/journeys/product-collection/selected/tests.cy.js +1 -1
  285. package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
  286. package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +6 -4
  287. package/dpr/routes/journeys/product-collection/selected/validation.js +1 -1
  288. package/dpr/routes/journeys/product-collection/selected/validation.js.map +1 -1
  289. package/dpr/routes/journeys/request-missing-report/form/controller.js +1 -1
  290. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +3 -3
  291. package/dpr/routes/journeys/request-missing-report/form/controller.ts +21 -19
  292. package/dpr/routes/journeys/request-missing-report/form/routes.js +1 -1
  293. package/dpr/routes/journeys/request-missing-report/form/routes.js.map +1 -1
  294. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +1 -1
  295. package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +1 -1
  296. package/dpr/routes/journeys/request-missing-report/form/validation.js +1 -1
  297. package/dpr/routes/journeys/request-missing-report/form/validation.js.map +1 -1
  298. package/dpr/routes/journeys/request-missing-report/routes.js +1 -1
  299. package/dpr/routes/journeys/request-missing-report/routes.js.map +1 -1
  300. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +1 -1
  301. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +1 -1
  302. package/dpr/routes/journeys/request-missing-report/submitted/routes.js +1 -1
  303. package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +1 -1
  304. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +1 -1
  305. package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +1 -1
  306. package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
  307. package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
  308. package/dpr/routes/journeys/request-missing-report/tests.cy.ts +1 -1
  309. package/dpr/routes/journeys/request-report/controller.js +1 -1
  310. package/dpr/routes/journeys/request-report/controller.js.map +3 -3
  311. package/dpr/routes/journeys/request-report/controller.ts +1 -1
  312. package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
  313. package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
  314. package/dpr/routes/journeys/request-report/filters/controller.ts +7 -8
  315. package/dpr/routes/journeys/request-report/filters/routes.js +1 -1
  316. package/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
  317. package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
  318. package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +1 -1
  319. package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
  320. package/dpr/routes/journeys/request-report/filters/utils.js.map +3 -3
  321. package/dpr/routes/journeys/request-report/filters/utils.ts +38 -23
  322. package/dpr/routes/journeys/request-report/filters/view.njk +2 -1
  323. package/dpr/routes/journeys/request-report/routes.js +1 -1
  324. package/dpr/routes/journeys/request-report/routes.js.map +2 -2
  325. package/dpr/routes/journeys/request-report/routes.ts +2 -2
  326. package/dpr/routes/journeys/request-report/status/controller.js +1 -1
  327. package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
  328. package/dpr/routes/journeys/request-report/status/controller.ts +4 -4
  329. package/dpr/routes/journeys/request-report/status/routes.js +1 -1
  330. package/dpr/routes/journeys/request-report/status/routes.js.map +1 -1
  331. package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
  332. package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
  333. package/dpr/routes/journeys/request-report/status/tests.cy.ts +9 -4
  334. package/dpr/routes/journeys/request-report/status/utils.js +1 -1
  335. package/dpr/routes/journeys/request-report/status/utils.js.map +3 -3
  336. package/dpr/routes/journeys/request-report/status/utils.ts +10 -13
  337. package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
  338. package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
  339. package/dpr/routes/journeys/request-report/tests.cy.ts +14 -11
  340. package/dpr/routes/journeys/routes.js +1 -1
  341. package/dpr/routes/journeys/routes.js.map +1 -1
  342. package/dpr/routes/journeys/view-report/async/controller.js +1 -1
  343. package/dpr/routes/journeys/view-report/async/controller.js.map +3 -3
  344. package/dpr/routes/journeys/view-report/async/controller.ts +4 -4
  345. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +1 -1
  346. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +3 -3
  347. package/dpr/routes/journeys/view-report/async/dashboard/controller.ts +4 -4
  348. package/dpr/routes/journeys/view-report/async/dashboard/routes.js +1 -1
  349. package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +1 -1
  350. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
  351. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
  352. package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +2 -2
  353. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  354. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
  355. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +6 -8
  356. package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
  357. package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
  358. package/dpr/routes/journeys/view-report/async/report/controller.ts +5 -5
  359. package/dpr/routes/journeys/view-report/async/report/routes.js +1 -1
  360. package/dpr/routes/journeys/view-report/async/report/routes.js.map +1 -1
  361. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
  362. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  363. package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +9 -7
  364. package/dpr/routes/journeys/view-report/async/report/types.js +1 -1
  365. package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
  366. package/dpr/routes/journeys/view-report/async/report/types.ts +8 -8
  367. package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
  368. package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
  369. package/dpr/routes/journeys/view-report/async/report/utils.ts +16 -18
  370. package/dpr/routes/journeys/view-report/async/routes.js +1 -1
  371. package/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
  372. package/dpr/routes/journeys/view-report/controller.js +1 -1
  373. package/dpr/routes/journeys/view-report/controller.js.map +3 -3
  374. package/dpr/routes/journeys/view-report/controller.ts +1 -1
  375. package/dpr/routes/journeys/view-report/routes.js +1 -1
  376. package/dpr/routes/journeys/view-report/routes.js.map +2 -2
  377. package/dpr/routes/journeys/view-report/routes.ts +6 -3
  378. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
  379. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +2 -2
  380. package/dpr/routes/journeys/view-report/sync/load-report/controller.ts +1 -1
  381. package/dpr/routes/journeys/view-report/sync/load-report/routes.js +1 -1
  382. package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +1 -1
  383. package/dpr/routes/journeys/view-report/sync/report/controller.js +1 -1
  384. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +3 -3
  385. package/dpr/routes/journeys/view-report/sync/report/controller.ts +6 -6
  386. package/dpr/routes/journeys/view-report/sync/report/routes.js +1 -1
  387. package/dpr/routes/journeys/view-report/sync/report/routes.js.map +1 -1
  388. package/dpr/routes/journeys/view-report/sync/report/utils.js +1 -1
  389. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
  390. package/dpr/routes/journeys/view-report/sync/report/utils.ts +29 -19
  391. package/dpr/routes/journeys/view-report/sync/routes.js +1 -1
  392. package/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
  393. package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
  394. package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
  395. package/dpr/routes/journeys/view-report/sync/tests.cy.ts +1 -1
  396. package/dpr/routes/journeys/view-report/utils.js +1 -1
  397. package/dpr/routes/journeys/view-report/utils.js.map +3 -3
  398. package/dpr/routes/journeys/view-report/utils.ts +22 -12
  399. package/dpr/services/dashboardService.js +1 -1
  400. package/dpr/services/dashboardService.js.map +3 -3
  401. package/dpr/services/dashboardService.ts +1 -3
  402. package/dpr/services/defaultFilterValuesService.js +1 -1
  403. package/dpr/services/defaultFilterValuesService.js.map +3 -3
  404. package/dpr/services/defaultFilterValuesService.ts +34 -15
  405. package/dpr/services/index.js +1 -1
  406. package/dpr/services/index.js.map +1 -1
  407. package/dpr/services/missingReport/missingReportService.js +2 -0
  408. package/dpr/services/missingReport/missingReportService.js.map +7 -0
  409. package/dpr/services/missingReport/missingReportService.ts +26 -0
  410. package/dpr/services/productCollection/productCollectionService.js +1 -1
  411. package/dpr/services/productCollection/productCollectionService.js.map +3 -3
  412. package/dpr/services/productCollection/productCollectionService.ts +19 -14
  413. package/dpr/services/productCollection/productCollectionStoreService.js +1 -1
  414. package/dpr/services/productCollection/productCollectionStoreService.js.map +3 -3
  415. package/dpr/services/productCollection/productCollectionStoreService.ts +9 -3
  416. package/dpr/services/reportStoreService.js +1 -1
  417. package/dpr/services/reportStoreService.js.map +2 -2
  418. package/dpr/services/reportStoreService.ts +1 -1
  419. package/dpr/services/reportingService.js +1 -1
  420. package/dpr/services/reportingService.js.map +3 -3
  421. package/dpr/services/reportingService.ts +1 -3
  422. package/dpr/setUpNunjucksFilters.js +1 -1
  423. package/dpr/setUpNunjucksFilters.js.map +1 -1
  424. package/dpr/types/AsyncReportUtils.js +1 -1
  425. package/dpr/types/AsyncReportUtils.js.map +2 -2
  426. package/dpr/types/AsyncReportUtils.ts +2 -1
  427. package/dpr/types/Bookmark.js +1 -1
  428. package/dpr/types/Bookmark.js.map +2 -2
  429. package/dpr/types/Bookmark.ts +9 -3
  430. package/dpr/types/Charts.js +1 -1
  431. package/dpr/types/Charts.js.map +1 -1
  432. package/dpr/types/Download.js +1 -1
  433. package/dpr/types/Download.js.map +1 -1
  434. package/dpr/types/DprConfig.js +1 -1
  435. package/dpr/types/DprConfig.js.map +2 -2
  436. package/dpr/types/DprConfig.ts +8 -0
  437. package/dpr/types/DprUser.js +1 -1
  438. package/dpr/types/DprUser.js.map +2 -2
  439. package/dpr/types/DprUser.ts +2 -2
  440. package/dpr/types/EmbeddedReportUtils.js +1 -1
  441. package/dpr/types/EmbeddedReportUtils.js.map +1 -1
  442. package/dpr/types/ExecutionData.d.js +1 -1
  443. package/dpr/types/ExecutionData.d.js.map +2 -2
  444. package/dpr/types/ExecutionData.d.ts +2 -2
  445. package/dpr/types/Metrics.js +1 -1
  446. package/dpr/types/Metrics.js.map +2 -2
  447. package/dpr/types/Metrics.ts +1 -1
  448. package/dpr/types/ReportQuery.js +1 -1
  449. package/dpr/types/ReportQuery.js.map +2 -2
  450. package/dpr/types/ReportQuery.ts +15 -11
  451. package/dpr/types/ReportStore.js +1 -1
  452. package/dpr/types/ReportStore.js.map +1 -1
  453. package/dpr/types/Services.d.js +1 -1
  454. package/dpr/types/Services.d.js.map +2 -2
  455. package/dpr/types/Services.d.ts +8 -8
  456. package/dpr/types/Templates.d.js +1 -1
  457. package/dpr/types/Templates.d.js.map +1 -1
  458. package/dpr/types/UserReports.js +1 -1
  459. package/dpr/types/UserReports.js.map +2 -2
  460. package/dpr/types/UserReports.ts +29 -15
  461. package/dpr/types/api.d.js +1 -1
  462. package/dpr/types/api.d.js.map +1 -1
  463. package/dpr/types/index.d.js +1 -1
  464. package/dpr/types/index.d.js.map +2 -2
  465. package/dpr/types/index.d.ts +1 -1
  466. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +1 -1
  467. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
  468. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts +2 -0
  469. package/dpr/utils/CreateDprServices.js +2 -0
  470. package/dpr/utils/CreateDprServices.js.map +7 -0
  471. package/dpr/utils/CreateDprServices.ts +73 -0
  472. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
  473. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +1 -1
  474. package/dpr/utils/DataTableBuilder/DataTableBuilder.test.ts +10 -0
  475. package/dpr/utils/DataTableBuilder/types.d.js +1 -1
  476. package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
  477. package/dpr/utils/DataTableBuilder/types.d.ts +3 -3
  478. package/dpr/utils/DateMapper/DateMapper.js +1 -1
  479. package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
  480. package/dpr/utils/DateMapper/DateMapper.test.ts +22 -9
  481. package/dpr/utils/DateMapper/DateMapper.ts +9 -11
  482. package/dpr/utils/DateMapper/types.d.js +1 -1
  483. package/dpr/utils/DateMapper/types.d.js.map +1 -1
  484. package/dpr/utils/ErrorHandler.js +2 -0
  485. package/dpr/utils/ErrorHandler.js.map +7 -0
  486. package/dpr/utils/ErrorHandler.ts +85 -0
  487. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
  488. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  489. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +13 -2
  490. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +3 -3
  491. package/dpr/utils/ParentChildDataTableBuilder/types.d.js +1 -1
  492. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +1 -1
  493. package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
  494. package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
  495. package/dpr/utils/Personalisation/personalisationUtils.ts +6 -2
  496. package/dpr/utils/Personalisation/types.d.js +1 -1
  497. package/dpr/utils/Personalisation/types.d.js.map +1 -1
  498. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +1 -1
  499. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
  500. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +5 -0
  501. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +1 -1
  502. package/dpr/utils/SectionedDataTableBuilder/types.d.js +1 -1
  503. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +1 -1
  504. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +1 -1
  505. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
  506. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +7 -4
  507. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +3 -3
  508. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
  509. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
  510. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.test.ts +1 -0
  511. package/dpr/utils/UserStoreItemBuilder.js +1 -1
  512. package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
  513. package/dpr/utils/UserStoreItemBuilder.ts +19 -32
  514. package/dpr/utils/arrayUtils.js +1 -1
  515. package/dpr/utils/arrayUtils.js.map +1 -1
  516. package/dpr/utils/datasetHelper.js +1 -1
  517. package/dpr/utils/datasetHelper.js.map +2 -2
  518. package/dpr/utils/datasetHelper.test.ts +21 -33
  519. package/dpr/utils/datasetHelper.ts +12 -17
  520. package/dpr/utils/definitionUtils.js +1 -1
  521. package/dpr/utils/definitionUtils.js.map +3 -3
  522. package/dpr/utils/definitionUtils.ts +14 -3
  523. package/dpr/utils/index.js +1 -1
  524. package/dpr/utils/index.js.map +1 -1
  525. package/dpr/utils/indexedAccesHelper.js +2 -0
  526. package/dpr/utils/indexedAccesHelper.js.map +7 -0
  527. package/dpr/utils/indexedAccesHelper.ts +24 -0
  528. package/dpr/utils/localsHelper.js +1 -1
  529. package/dpr/utils/localsHelper.js.map +2 -2
  530. package/dpr/utils/localsHelper.ts +8 -8
  531. package/dpr/utils/logger.js +1 -1
  532. package/dpr/utils/logger.js.map +2 -2
  533. package/dpr/utils/logger.ts +1 -1
  534. package/dpr/utils/reportListsHelper.js +1 -1
  535. package/dpr/utils/reportListsHelper.js.map +1 -1
  536. package/dpr/utils/reportStoreHelper.js +1 -1
  537. package/dpr/utils/reportStoreHelper.js.map +1 -1
  538. package/dpr/utils/reportStoreHelper.test.ts +3 -2
  539. package/dpr/utils/requestStatusHelper.js +1 -1
  540. package/dpr/utils/requestStatusHelper.js.map +3 -3
  541. package/dpr/utils/requestStatusHelper.ts +29 -42
  542. package/dpr/utils/sanitisedError.js +1 -1
  543. package/dpr/utils/sanitisedError.js.map +2 -2
  544. package/dpr/utils/sanitisedError.ts +1 -1
  545. package/dpr/utils/urlHelper.js +1 -1
  546. package/dpr/utils/urlHelper.js.map +2 -2
  547. package/dpr/utils/urlHelper.ts +4 -4
  548. package/dpr/validation/validate.js +1 -1
  549. package/dpr/validation/validate.js.map +2 -2
  550. package/dpr/validation/validate.ts +2 -2
  551. package/package.json +4 -2
  552. package/dpr/components/error-summary/utils.js +0 -2
  553. package/dpr/components/error-summary/utils.js.map +0 -7
  554. package/dpr/components/error-summary/utils.test.ts +0 -54
  555. package/dpr/components/error-summary/utils.ts +0 -65
  556. package/dpr/services/missingReport/missingReportClient.js +0 -2
  557. package/dpr/services/missingReport/missingReportClient.js.map +0 -7
  558. package/dpr/utils/ReportStoreServiceUtils.js +0 -2
  559. package/dpr/utils/ReportStoreServiceUtils.js.map +0 -7
  560. package/dpr/utils/ReportStoreServiceUtils.ts +0 -140
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/DateMapper/DateMapper.ts"],
4
- "sourcesContent": ["import dayjs, { Dayjs } from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport { DateType } from './types'\nimport logger from '../logger'\n\nclass DateMapper {\n private isoDateRegEx = /^(\\d{4}[/-](0?[1-9]|1[012])[/-](0?[1-9]|[12][0-9]|3[01]))/\n\n private localDateRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{4}$/\n\n private localDateShortYearRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{2}$/\n\n private localDateTimeRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{4} [0-2]\\d:[0-5]\\d$/\n\n private localDateTimeShortYearRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{2} [0-2]\\d:[0-5]\\d$/\n\n private isoFormat = 'YYYY-MM-DD'\n\n private localDateFormatInput = 'D/M/YYYY'\n\n private localDateFormatOutput = 'DD/MM/YYYY'\n\n private localDateShortYearFormatInput = 'D/M/YY'\n\n private localDateShortYearFormatOutput = 'DD/MM/YY'\n\n private localDateTimeFormatInput = 'D/M/YYYY HH:mm'\n\n private localDateTimeFormatOutput = 'DD/MM/YYYY HH:mm'\n\n private localDateTimeShortYearFormatInput = 'D/M/YY HH:mm'\n\n private localDateTimeShortYearFormatOutput = 'DD/MM/YY HH:mm'\n\n private localDateFormatMonthYear = 'MMM YY'\n\n private localDateFormatYear = 'YYYY'\n\n getDateType(value: string): DateType {\n if (value && value.match) {\n if (value.match(this.isoDateRegEx)) {\n return 'iso'\n }\n\n if (value.match(this.localDateRegEx)) {\n return 'local-date'\n }\n\n if (value.match(this.localDateShortYearRegEx)) {\n return 'local-date-short-year'\n }\n\n if (value.match(this.localDateTimeRegEx)) {\n return 'local-datetime'\n }\n\n if (value.match(this.localDateTimeShortYearRegEx)) {\n return 'local-datetime-short-year'\n }\n }\n\n return 'none'\n }\n\n getDateWrapper(value: string): Dayjs | null {\n dayjs.extend(customParseFormat)\n\n switch (this.getDateType(value)) {\n case 'iso':\n return dayjs(value)\n case 'local-date':\n return dayjs(value, this.localDateFormatInput)\n case 'local-date-short-year':\n return dayjs(value, this.localDateShortYearFormatInput)\n case 'local-datetime':\n return dayjs(value, this.localDateTimeFormatInput)\n case 'local-datetime-short-year':\n return dayjs(value, this.localDateTimeShortYearFormatInput)\n default:\n return null\n }\n }\n\n isDate(value: string): boolean {\n return this.getDateType(value) !== 'none'\n }\n\n toDateString(value: string, type: DateType): string | null {\n const dateWrapper = this.getDateWrapper(value)\n\n if (dateWrapper) {\n switch (type) {\n case 'iso':\n return dateWrapper.format(this.isoFormat)\n case 'local-date':\n return dateWrapper.format(this.localDateFormatOutput)\n case 'local-date-short-year':\n return dateWrapper.format(this.localDateShortYearFormatOutput)\n case 'local-datetime':\n return dateWrapper.format(this.localDateTimeFormatOutput)\n case 'local-datetime-short-year':\n return dateWrapper.format(this.localDateTimeShortYearFormatOutput)\n default:\n logger.warn(`Invalid date type: ${type}`)\n return null\n }\n }\n\n if (value) {\n logger.warn(`Could not map non-date value : ${value}`)\n }\n return null\n }\n}\n\nexport { DateMapper }\nexport default DateMapper\n"],
5
- "mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAA6B,oBAC7BC,EAA8B,6CAE9BC,EAAmB,wBAEnB,MAAML,CAAW,CAAjB,cACE,KAAQ,aAAe,4DAEvB,KAAQ,eAAiB,2DAEzB,KAAQ,wBAA0B,2DAElC,KAAQ,mBAAqB,2EAE7B,KAAQ,4BAA8B,2EAEtC,KAAQ,UAAY,aAEpB,KAAQ,qBAAuB,WAE/B,KAAQ,sBAAwB,aAEhC,KAAQ,8BAAgC,SAExC,KAAQ,+BAAiC,WAEzC,KAAQ,yBAA2B,iBAEnC,KAAQ,0BAA4B,mBAEpC,KAAQ,kCAAoC,eAE5C,KAAQ,mCAAqC,iBAE7C,KAAQ,yBAA2B,SAEnC,KAAQ,oBAAsB,OAE9B,YAAYM,EAAyB,CACnC,GAAIA,GAASA,EAAM,MAAO,CACxB,GAAIA,EAAM,MAAM,KAAK,YAAY,EAC/B,MAAO,MAGT,GAAIA,EAAM,MAAM,KAAK,cAAc,EACjC,MAAO,aAGT,GAAIA,EAAM,MAAM,KAAK,uBAAuB,EAC1C,MAAO,wBAGT,GAAIA,EAAM,MAAM,KAAK,kBAAkB,EACrC,MAAO,iBAGT,GAAIA,EAAM,MAAM,KAAK,2BAA2B,EAC9C,MAAO,2BAEX,CAEA,MAAO,MACT,CAEA,eAAeA,EAA6B,CAG1C,OAFA,EAAAC,QAAM,OAAO,EAAAC,OAAiB,EAEtB,KAAK,YAAYF,CAAK,EAAG,CAC/B,IAAK,MACH,SAAO,EAAAC,SAAMD,CAAK,EACpB,IAAK,aACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,oBAAoB,EAC/C,IAAK,wBACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,6BAA6B,EACxD,IAAK,iBACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,wBAAwB,EACnD,IAAK,4BACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,iCAAiC,EAC5D,QACE,OAAO,IACX,CACF,CAEA,OAAOA,EAAwB,CAC7B,OAAO,KAAK,YAAYA,CAAK,IAAM,MACrC,CAEA,aAAaA,EAAeG,EAA+B,CACzD,MAAMC,EAAc,KAAK,eAAeJ,CAAK,EAE7C,GAAII,EACF,OAAQD,EAAM,CACZ,IAAK,MACH,OAAOC,EAAY,OAAO,KAAK,SAAS,EAC1C,IAAK,aACH,OAAOA,EAAY,OAAO,KAAK,qBAAqB,EACtD,IAAK,wBACH,OAAOA,EAAY,OAAO,KAAK,8BAA8B,EAC/D,IAAK,iBACH,OAAOA,EAAY,OAAO,KAAK,yBAAyB,EAC1D,IAAK,4BACH,OAAOA,EAAY,OAAO,KAAK,kCAAkC,EACnE,QACE,SAAAC,QAAO,KAAK,sBAAsBF,CAAI,EAAE,EACjC,IACX,CAGF,OAAIH,GACF,EAAAK,QAAO,KAAK,kCAAkCL,CAAK,EAAE,EAEhD,IACT,CACF,CAGA,IAAOL,EAAQD",
4
+ "sourcesContent": ["import dayjs, { Dayjs } from 'dayjs'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport { DateType } from './types'\nimport logger from '../logger'\n\nclass DateMapper {\n private isoDateRegEx = /^(\\d{4}[/-](0?[1-9]|1[012])[/-](0?[1-9]|[12][0-9]|3[01]))/\n\n private localDateRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{4}$/\n\n private localDateShortYearRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{2}$/\n\n private localDateTimeRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{4} [0-2]\\d:[0-5]\\d$/\n\n private localDateTimeShortYearRegEx = /^(0?[1-9]|[12][0-9]|3[01])[/-](0?[1-9]|1[012])[/-]\\d{2} [0-2]\\d:[0-5]\\d$/\n\n private isoFormat = 'YYYY-MM-DD'\n\n private localDateFormatInput = 'D/M/YYYY'\n\n private localDateFormatOutput = 'DD/MM/YYYY'\n\n private localDateShortYearFormatInput = 'D/M/YY'\n\n private localDateShortYearFormatOutput = 'DD/MM/YY'\n\n private localDateTimeFormatInput = 'D/M/YYYY HH:mm'\n\n private localDateTimeFormatOutput = 'DD/MM/YYYY HH:mm'\n\n private localDateTimeShortYearFormatInput = 'D/M/YY HH:mm'\n\n private localDateTimeShortYearFormatOutput = 'DD/MM/YY HH:mm'\n\n getDateType(value: string | null): DateType {\n if (value && value.match) {\n if (value.match(this.isoDateRegEx)) {\n return 'iso'\n }\n\n if (value.match(this.localDateRegEx)) {\n return 'local-date'\n }\n\n if (value.match(this.localDateShortYearRegEx)) {\n return 'local-date-short-year'\n }\n\n if (value.match(this.localDateTimeRegEx)) {\n return 'local-datetime'\n }\n\n if (value.match(this.localDateTimeShortYearRegEx)) {\n return 'local-datetime-short-year'\n }\n }\n\n return 'none'\n }\n\n getDateWrapper(value: string | null): Dayjs | null {\n dayjs.extend(customParseFormat)\n if (!value) {\n return null\n }\n switch (this.getDateType(value)) {\n case 'iso':\n return dayjs(value)\n case 'local-date':\n return dayjs(value, this.localDateFormatInput)\n case 'local-date-short-year':\n return dayjs(value, this.localDateShortYearFormatInput)\n case 'local-datetime':\n return dayjs(value, this.localDateTimeFormatInput)\n case 'local-datetime-short-year':\n return dayjs(value, this.localDateTimeShortYearFormatInput)\n default:\n return null\n }\n }\n\n isDate(value: string | null): boolean {\n return this.getDateType(value) !== 'none'\n }\n\n toDateString(value: string | null, type: DateType): string | undefined {\n const dateWrapper = this.getDateWrapper(value)\n\n if (dateWrapper) {\n switch (type) {\n case 'iso':\n return dateWrapper.format(this.isoFormat)\n case 'local-date':\n return dateWrapper.format(this.localDateFormatOutput)\n case 'local-date-short-year':\n return dateWrapper.format(this.localDateShortYearFormatOutput)\n case 'local-datetime':\n return dateWrapper.format(this.localDateTimeFormatOutput)\n case 'local-datetime-short-year':\n return dateWrapper.format(this.localDateTimeShortYearFormatOutput)\n default:\n logger.warn(`Invalid date type: ${type}`)\n return undefined\n }\n }\n\n if (value) {\n logger.warn(`Could not map non-date value : ${value}`)\n }\n return undefined\n }\n}\n\nexport { DateMapper }\nexport default DateMapper\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAA6B,oBAC7BC,EAA8B,6CAE9BC,EAAmB,wBAEnB,MAAML,CAAW,CAAjB,cACE,KAAQ,aAAe,4DAEvB,KAAQ,eAAiB,2DAEzB,KAAQ,wBAA0B,2DAElC,KAAQ,mBAAqB,2EAE7B,KAAQ,4BAA8B,2EAEtC,KAAQ,UAAY,aAEpB,KAAQ,qBAAuB,WAE/B,KAAQ,sBAAwB,aAEhC,KAAQ,8BAAgC,SAExC,KAAQ,+BAAiC,WAEzC,KAAQ,yBAA2B,iBAEnC,KAAQ,0BAA4B,mBAEpC,KAAQ,kCAAoC,eAE5C,KAAQ,mCAAqC,iBAE7C,YAAYM,EAAgC,CAC1C,GAAIA,GAASA,EAAM,MAAO,CACxB,GAAIA,EAAM,MAAM,KAAK,YAAY,EAC/B,MAAO,MAGT,GAAIA,EAAM,MAAM,KAAK,cAAc,EACjC,MAAO,aAGT,GAAIA,EAAM,MAAM,KAAK,uBAAuB,EAC1C,MAAO,wBAGT,GAAIA,EAAM,MAAM,KAAK,kBAAkB,EACrC,MAAO,iBAGT,GAAIA,EAAM,MAAM,KAAK,2BAA2B,EAC9C,MAAO,2BAEX,CAEA,MAAO,MACT,CAEA,eAAeA,EAAoC,CAEjD,GADA,EAAAC,QAAM,OAAO,EAAAC,OAAiB,EAC1B,CAACF,EACH,OAAO,KAET,OAAQ,KAAK,YAAYA,CAAK,EAAG,CAC/B,IAAK,MACH,SAAO,EAAAC,SAAMD,CAAK,EACpB,IAAK,aACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,oBAAoB,EAC/C,IAAK,wBACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,6BAA6B,EACxD,IAAK,iBACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,wBAAwB,EACnD,IAAK,4BACH,SAAO,EAAAC,SAAMD,EAAO,KAAK,iCAAiC,EAC5D,QACE,OAAO,IACX,CACF,CAEA,OAAOA,EAA+B,CACpC,OAAO,KAAK,YAAYA,CAAK,IAAM,MACrC,CAEA,aAAaA,EAAsBG,EAAoC,CACrE,MAAMC,EAAc,KAAK,eAAeJ,CAAK,EAE7C,GAAII,EACF,OAAQD,EAAM,CACZ,IAAK,MACH,OAAOC,EAAY,OAAO,KAAK,SAAS,EAC1C,IAAK,aACH,OAAOA,EAAY,OAAO,KAAK,qBAAqB,EACtD,IAAK,wBACH,OAAOA,EAAY,OAAO,KAAK,8BAA8B,EAC/D,IAAK,iBACH,OAAOA,EAAY,OAAO,KAAK,yBAAyB,EAC1D,IAAK,4BACH,OAAOA,EAAY,OAAO,KAAK,kCAAkC,EACnE,QACE,EAAAC,QAAO,KAAK,sBAAsBF,CAAI,EAAE,EACxC,MACJ,CAGEH,GACF,EAAAK,QAAO,KAAK,kCAAkCL,CAAK,EAAE,CAGzD,CACF,CAGA,IAAOL,EAAQD",
6
6
  "names": ["DateMapper_exports", "__export", "DateMapper", "DateMapper_default", "__toCommonJS", "import_dayjs", "import_customParseFormat", "import_logger", "value", "dayjs", "customParseFormat", "type", "dateWrapper", "logger"]
7
7
  }
@@ -1,3 +1,4 @@
1
+ import { expect } from '@jest/globals'
1
2
  import DateMapper from './DateMapper'
2
3
 
3
4
  const dateMapper = new DateMapper()
@@ -40,27 +41,39 @@ describe('getDateType', () => {
40
41
 
41
42
  describe('getDateWrapper', () => {
42
43
  it('Iso Date', () => {
43
- expect(dateMapper.getDateWrapper('2001-02-03').format('YYYY-MM-DD')).toEqual('2001-02-03')
44
+ const date = dateMapper.getDateWrapper('2001-02-03')
45
+ const formattedDate = date ? date.format('YYYY-MM-DD') : ''
46
+ expect(formattedDate).toEqual('2001-02-03')
44
47
  })
45
48
 
46
49
  it('Local Date', () => {
47
- expect(dateMapper.getDateWrapper('01/02/2003').format('YYYY-MM-DD')).toEqual('2003-02-01')
50
+ const date = dateMapper.getDateWrapper('01/02/2003')
51
+ const formattedDate = date ? date.format('YYYY-MM-DD') : ''
52
+ expect(formattedDate).toEqual('2003-02-01')
48
53
  })
49
54
 
50
55
  it('Picker Local Date', () => {
51
- expect(dateMapper.getDateWrapper('1/2/2003').format('YYYY-MM-DD')).toEqual('2003-02-01')
56
+ const date = dateMapper.getDateWrapper('1/2/2003')
57
+ const formattedDate = date ? date.format('YYYY-MM-DD') : ''
58
+ expect(formattedDate).toEqual('2003-02-01')
52
59
  })
53
60
 
54
61
  it('Local Date Short Year', () => {
55
- expect(dateMapper.getDateWrapper('01/02/03').format('YYYY-MM-DD')).toEqual('2003-02-01')
62
+ const date = dateMapper.getDateWrapper('01/02/03')
63
+ const formattedDate = date ? date.format('YYYY-MM-DD') : ''
64
+ expect(formattedDate).toEqual('2003-02-01')
56
65
  })
57
66
 
58
67
  it('Local Date Time', () => {
59
- expect(dateMapper.getDateWrapper('01/02/2003 04:05').format('YYYY-MM-DD')).toEqual('2003-02-01')
68
+ const date = dateMapper.getDateWrapper('01/02/2003 04:05')
69
+ const formattedDate = date ? date.format('YYYY-MM-DD') : ''
70
+ expect(formattedDate).toEqual('2003-02-01')
60
71
  })
61
72
 
62
73
  it('Local Date Time Short Year', () => {
63
- expect(dateMapper.getDateWrapper('01/02/03 04:05').format('YYYY-MM-DD')).toEqual('2003-02-01')
74
+ const date = dateMapper.getDateWrapper('01/02/03 04:05')
75
+ const formattedDate = date ? date.format('YYYY-MM-DD') : ''
76
+ expect(formattedDate).toEqual('2003-02-01')
64
77
  })
65
78
 
66
79
  it('No value', () => {
@@ -124,14 +137,14 @@ describe('toDateString', () => {
124
137
  })
125
138
 
126
139
  it('No value', () => {
127
- expect(dateMapper.toDateString(null, 'iso')).toBeNull()
140
+ expect(dateMapper.toDateString(null, 'iso')).toBeUndefined()
128
141
  })
129
142
 
130
143
  it('Non-date value', () => {
131
- expect(dateMapper.toDateString('Not a date', 'iso')).toBeNull()
144
+ expect(dateMapper.toDateString('Not a date', 'iso')).toBeUndefined()
132
145
  })
133
146
 
134
147
  it('Invalid type', () => {
135
- expect(dateMapper.toDateString('2001-02-03T04:05:06Z', 'none')).toBeNull()
148
+ expect(dateMapper.toDateString('2001-02-03T04:05:06Z', 'none')).toBeUndefined()
136
149
  })
137
150
  })
@@ -32,11 +32,7 @@ class DateMapper {
32
32
 
33
33
  private localDateTimeShortYearFormatOutput = 'DD/MM/YY HH:mm'
34
34
 
35
- private localDateFormatMonthYear = 'MMM YY'
36
-
37
- private localDateFormatYear = 'YYYY'
38
-
39
- getDateType(value: string): DateType {
35
+ getDateType(value: string | null): DateType {
40
36
  if (value && value.match) {
41
37
  if (value.match(this.isoDateRegEx)) {
42
38
  return 'iso'
@@ -62,9 +58,11 @@ class DateMapper {
62
58
  return 'none'
63
59
  }
64
60
 
65
- getDateWrapper(value: string): Dayjs | null {
61
+ getDateWrapper(value: string | null): Dayjs | null {
66
62
  dayjs.extend(customParseFormat)
67
-
63
+ if (!value) {
64
+ return null
65
+ }
68
66
  switch (this.getDateType(value)) {
69
67
  case 'iso':
70
68
  return dayjs(value)
@@ -81,11 +79,11 @@ class DateMapper {
81
79
  }
82
80
  }
83
81
 
84
- isDate(value: string): boolean {
82
+ isDate(value: string | null): boolean {
85
83
  return this.getDateType(value) !== 'none'
86
84
  }
87
85
 
88
- toDateString(value: string, type: DateType): string | null {
86
+ toDateString(value: string | null, type: DateType): string | undefined {
89
87
  const dateWrapper = this.getDateWrapper(value)
90
88
 
91
89
  if (dateWrapper) {
@@ -102,14 +100,14 @@ class DateMapper {
102
100
  return dateWrapper.format(this.localDateTimeShortYearFormatOutput)
103
101
  default:
104
102
  logger.warn(`Invalid date type: ${type}`)
105
- return null
103
+ return undefined
106
104
  }
107
105
  }
108
106
 
109
107
  if (value) {
110
108
  logger.warn(`Could not map non-date value : ${value}`)
111
109
  }
112
- return null
110
+ return undefined
113
111
  }
114
112
  }
115
113
 
@@ -1,2 +1,2 @@
1
- var l=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var i=(a,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!y.call(a,t)&&t!==r&&l(a,t,{get:()=>e[t],enumerable:!(o=c(e,t))||o.enumerable});return a};var p=a=>i(l({},"__esModule",{value:!0}),a);var s={};module.exports=p(s);
1
+ "use strict";var l=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var i=(a,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!y.call(a,t)&&t!==r&&l(a,t,{get:()=>e[t],enumerable:!(o=c(e,t))||o.enumerable});return a};var p=a=>i(l({},"__esModule",{value:!0}),a);var s={};module.exports=p(s);
2
2
  //# sourceMappingURL=types.d.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/DateMapper/types.d.ts"],
4
4
  "sourcesContent": ["export type DateType =\n | 'iso'\n | 'local-date'\n | 'local-date-short-year'\n | 'local-datetime'\n | 'local-datetime-short-year'\n | 'none'\n"],
5
- "mappings": "kWAAA,IAAAA,EAAA,kBAAAC,EAAAD",
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_d_exports", "__toCommonJS"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";var h=Object.create;var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var c=(s,e)=>{for(var r in e)o(s,r,{get:e[r],enumerable:!0})},g=(s,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of u(e))!f.call(s,t)&&t!==r&&o(s,t,{get:()=>e[t],enumerable:!(i=p(e,t))||i.enumerable});return s};var m=(s,e,r)=>(r=s!=null?h(d(s)):{},g(e||!s||!s.__esModule?o(r,"default",{value:s,enumerable:!0}):r,s)),l=s=>g(o({},"__esModule",{value:!0}),s);var E={};c(E,{ErrorHandler:()=>n,default:()=>M});module.exports=l(E);var a=m(require("./logger"));class n{constructor(e){this.formatError=()=>this.handleError();this.handleError=()=>{if(typeof this.error=="string")this.developerMessage=this.error;else if(this.error.data){const r=this.error.data;this.developerMessage=r.developerMessage,this.userMessage=r.userMessage,this.moreInfo=r.moreInfo,this.status=r.status}else if(Object.prototype.hasOwnProperty.call(this.error,"message")){const r=this.error;this.userMessage=r.message,this.stack=r.stack,this.status=500}else if(Object.prototype.hasOwnProperty.call(this.error,"developerMessage")){const r=this.error;this.developerMessage=r.developerMessage,this.userMessage=r.userMessage,this.moreInfo=r.moreInfo,this.status=r.status}const e={...this.developerMessage&&{developerMessage:this.developerMessage},...this.userMessage&&{userMessage:this.userMessage},...this.moreInfo&&{moreInfo:this.moreInfo},...this.stack&&{stack:this.stack},...this.status&&{status:this.status}};return a.default.error(JSON.stringify(e,null,2)),e};this.error=e,a.default.error(`Error: ${JSON.stringify(e)}`)}}var M=n;0&&(module.exports={ErrorHandler});
2
+ //# sourceMappingURL=ErrorHandler.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dpr/utils/ErrorHandler.ts"],
4
+ "sourcesContent": ["import { components } from '../types/api'\nimport logger from './logger'\n\ninterface DprErrorMessage {\n userMessage?: string\n developerMessage?: string\n stack?: string\n moreInfo?: string\n status?: string | number\n}\n\ninterface DprErrorData {\n data: components['schemas']['ErrorResponse']\n}\n\nclass ErrorHandler {\n error: Error | components['schemas']['ErrorResponse'] | string | undefined | unknown | DprErrorData\n\n developerMessage?: string | undefined\n\n userMessage?: string | undefined\n\n moreInfo?: string | undefined\n\n stack?: string | undefined\n\n status?: number | string | undefined\n\n constructor(error: Error | components['schemas']['ErrorResponse'] | string | undefined | unknown) {\n this.error = error\n logger.error(`Error: ${JSON.stringify(error)}`)\n }\n\n formatError = (): DprErrorMessage => {\n return this.handleError()\n }\n\n private handleError = (): DprErrorMessage => {\n // status: FAILED\n if (typeof this.error === 'string') {\n this.developerMessage = this.error\n }\n\n // Error response\n else if ((<DprErrorData>this.error).data) {\n const error = (<DprErrorData>this.error).data\n this.developerMessage = error.developerMessage\n this.userMessage = error.userMessage\n this.moreInfo = error.moreInfo\n this.status = error.status\n }\n\n // client side error\n else if (Object.prototype.hasOwnProperty.call(this.error, 'message')) {\n const error = <Error>this.error\n this.userMessage = error.message\n this.stack = error.stack\n this.status = 500\n }\n\n // Server response error\n else if (Object.prototype.hasOwnProperty.call(this.error, 'developerMessage')) {\n const error = <components['schemas']['ErrorResponse']>this.error\n this.developerMessage = error.developerMessage\n this.userMessage = error.userMessage\n this.moreInfo = error.moreInfo\n this.status = error.status\n }\n\n const formattedError = {\n ...(this.developerMessage && { developerMessage: this.developerMessage }),\n ...(this.userMessage && { userMessage: this.userMessage }),\n ...(this.moreInfo && { moreInfo: this.moreInfo }),\n ...(this.stack && { stack: this.stack }),\n ...(this.status && { status: this.status }),\n }\n\n logger.error(JSON.stringify(formattedError, null, 2))\n\n return formattedError\n }\n}\n\nexport { ErrorHandler }\nexport default ErrorHandler\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAmB,uBAcnB,MAAMH,CAAa,CAajB,YAAYI,EAAsF,CAKlG,iBAAc,IACL,KAAK,YAAY,EAG1B,KAAQ,YAAc,IAAuB,CAE3C,GAAI,OAAO,KAAK,OAAU,SACxB,KAAK,iBAAmB,KAAK,cAIP,KAAK,MAAO,KAAM,CACxC,MAAMA,EAAuB,KAAK,MAAO,KACzC,KAAK,iBAAmBA,EAAM,iBAC9B,KAAK,YAAcA,EAAM,YACzB,KAAK,SAAWA,EAAM,SACtB,KAAK,OAASA,EAAM,MACtB,SAGS,OAAO,UAAU,eAAe,KAAK,KAAK,MAAO,SAAS,EAAG,CACpE,MAAMA,EAAe,KAAK,MAC1B,KAAK,YAAcA,EAAM,QACzB,KAAK,MAAQA,EAAM,MACnB,KAAK,OAAS,GAChB,SAGS,OAAO,UAAU,eAAe,KAAK,KAAK,MAAO,kBAAkB,EAAG,CAC7E,MAAMA,EAAgD,KAAK,MAC3D,KAAK,iBAAmBA,EAAM,iBAC9B,KAAK,YAAcA,EAAM,YACzB,KAAK,SAAWA,EAAM,SACtB,KAAK,OAASA,EAAM,MACtB,CAEA,MAAMC,EAAiB,CACrB,GAAI,KAAK,kBAAoB,CAAE,iBAAkB,KAAK,gBAAiB,EACvE,GAAI,KAAK,aAAe,CAAE,YAAa,KAAK,WAAY,EACxD,GAAI,KAAK,UAAY,CAAE,SAAU,KAAK,QAAS,EAC/C,GAAI,KAAK,OAAS,CAAE,MAAO,KAAK,KAAM,EACtC,GAAI,KAAK,QAAU,CAAE,OAAQ,KAAK,MAAO,CAC3C,EAEA,SAAAC,QAAO,MAAM,KAAK,UAAUD,EAAgB,KAAM,CAAC,CAAC,EAE7CA,CACT,EAnDE,KAAK,MAAQD,EACb,EAAAE,QAAO,MAAM,UAAU,KAAK,UAAUF,CAAK,CAAC,EAAE,CAChD,CAkDF,CAGA,IAAOH,EAAQD",
6
+ "names": ["ErrorHandler_exports", "__export", "ErrorHandler", "ErrorHandler_default", "__toCommonJS", "import_logger", "error", "formattedError", "logger"]
7
+ }
@@ -0,0 +1,85 @@
1
+ import { components } from '../types/api'
2
+ import logger from './logger'
3
+
4
+ interface DprErrorMessage {
5
+ userMessage?: string
6
+ developerMessage?: string
7
+ stack?: string
8
+ moreInfo?: string
9
+ status?: string | number
10
+ }
11
+
12
+ interface DprErrorData {
13
+ data: components['schemas']['ErrorResponse']
14
+ }
15
+
16
+ class ErrorHandler {
17
+ error: Error | components['schemas']['ErrorResponse'] | string | undefined | unknown | DprErrorData
18
+
19
+ developerMessage?: string | undefined
20
+
21
+ userMessage?: string | undefined
22
+
23
+ moreInfo?: string | undefined
24
+
25
+ stack?: string | undefined
26
+
27
+ status?: number | string | undefined
28
+
29
+ constructor(error: Error | components['schemas']['ErrorResponse'] | string | undefined | unknown) {
30
+ this.error = error
31
+ logger.error(`Error: ${JSON.stringify(error)}`)
32
+ }
33
+
34
+ formatError = (): DprErrorMessage => {
35
+ return this.handleError()
36
+ }
37
+
38
+ private handleError = (): DprErrorMessage => {
39
+ // status: FAILED
40
+ if (typeof this.error === 'string') {
41
+ this.developerMessage = this.error
42
+ }
43
+
44
+ // Error response
45
+ else if ((<DprErrorData>this.error).data) {
46
+ const error = (<DprErrorData>this.error).data
47
+ this.developerMessage = error.developerMessage
48
+ this.userMessage = error.userMessage
49
+ this.moreInfo = error.moreInfo
50
+ this.status = error.status
51
+ }
52
+
53
+ // client side error
54
+ else if (Object.prototype.hasOwnProperty.call(this.error, 'message')) {
55
+ const error = <Error>this.error
56
+ this.userMessage = error.message
57
+ this.stack = error.stack
58
+ this.status = 500
59
+ }
60
+
61
+ // Server response error
62
+ else if (Object.prototype.hasOwnProperty.call(this.error, 'developerMessage')) {
63
+ const error = <components['schemas']['ErrorResponse']>this.error
64
+ this.developerMessage = error.developerMessage
65
+ this.userMessage = error.userMessage
66
+ this.moreInfo = error.moreInfo
67
+ this.status = error.status
68
+ }
69
+
70
+ const formattedError = {
71
+ ...(this.developerMessage && { developerMessage: this.developerMessage }),
72
+ ...(this.userMessage && { userMessage: this.userMessage }),
73
+ ...(this.moreInfo && { moreInfo: this.moreInfo }),
74
+ ...(this.stack && { stack: this.stack }),
75
+ ...(this.status && { status: this.status }),
76
+ }
77
+
78
+ logger.error(JSON.stringify(formattedError, null, 2))
79
+
80
+ return formattedError
81
+ }
82
+ }
83
+
84
+ export { ErrorHandler }
85
+ export default ErrorHandler
@@ -1,2 +1,2 @@
1
- var P=Object.create;var u=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var F=(n,c)=>{for(var t in c)u(n,t,{get:c[t],enumerable:!0})},f=(n,c,t,r)=>{if(c&&typeof c=="object"||typeof c=="function")for(let e of A(c))!N.call(n,e)&&e!==t&&u(n,e,{get:()=>c[e],enumerable:!(r=v(c,e))||r.enumerable});return n};var S=(n,c,t)=>(t=n!=null?P(w(n)):{},f(c||!n||!n.__esModule?u(t,"default",{value:n,enumerable:!0}):t,n)),B=n=>f(u({},"__esModule",{value:!0}),n);var J={};F(J,{ParentChildDataTableBuilder:()=>C,default:()=>H});module.exports=B(J);var g=S(require("../DataTableBuilder/DataTableBuilder")),b=require("../arrayUtils"),T=S(require("../SectionedDataTableBuilder/SectionedDataTableBuilder"));class C extends T.default{constructor(t){const{specification:r}=t,{sections:e,template:i}=r;super(r);this.childData=[];this.sections=e,this.template=i,this.variant=t,this.childVariants=this.variant.childVariants||[]}createParentChildTable(t,r){let e={};const i=this.mapNamesToFields(this.childVariants.flatMap(a=>a.joinFields).reduce(b.distinct,[])),s=this.calculateParentChildKeys(t,i);s.forEach(a=>{e[a.sortKey]={parent:[]}}),e=this.splitParentDataIntoSections(e,t,i),e=this.splitChildDataIntoSections(s,e);const l=this.createChildDataTableBuilders();return s.flatMap(a=>{const d=e[a.sortKey]||{};let p=[];return d&&(p=d.parent?d.parent:[]),[r].concat(p.map(h=>this.mapRow(h,"dpr-parent-cell"))).concat(this.childVariants.filter(h=>d&&d[h.id]).map(h=>{const D=l[h.id],m=d[h.id],y=D&&m?D.buildTable(m):void 0,K=y?this.convertDataTableToHtml(y):"";return[{classes:"dpr-child-report-cell",format:"string",html:`<div class='dpr-child-report'><h2 class="govuk-heading-s">${h.name}</h2><div class="dpr-child-report_table">${K}</div></div>`,colspan:this.columns.length}]}))})}createParentChildSectionRows(t,r){const i=this.mapSections(t).sectionedData,s=[];return Object.keys(i).forEach(o=>{const a=i[o];s.push({sectionDescription:o,...this.getSectionCount(i,o),rows:this.createParentChildTable(a,r)})}),s.flatMap((o,a)=>[...this.createSectionHeader(o.sectionDescription,a,o.count,o.countDescription),...o.rows])}mapParentChildData(t,r){return this.sections?.length?this.createParentChildSectionRows(t,r):this.createParentChildTable(t,r)}createChildDataTableBuilders(){return this.childVariants.reduce((r,e)=>{const{specification:i}=e,s=i?i.fields:[],l=s.filter(a=>a.visible||a.mandatory).map(a=>a.name),o=new g.default(s).withNoHeaderOptions(l).withSortedData();return{...r,[e.id]:o}},{})}calculateParentChildKeys(t,r){return t.map(e=>({sortKey:this.getSortKey(e,r),childSortKeys:this.childVariants.reduce((i,s)=>({...i,[s.id]:this.getSortKey(e,this.mapNamesToFields(s.joinFields))}),{})})).reduce((e,i)=>e.find(s=>s.sortKey===i.sortKey)?e:e.concat(i),[])}splitParentDataIntoSections(t,r,e){return r.reduce((i,s)=>{const l=this.getSortKey(s,e),o=i[l]?i[l].parent:[];return{...i,...o&&{[l]:{parent:o.concat(s)}}}},t)}splitChildDataIntoSections(t,r){const e={...r};return this.childVariants.forEach(i=>{const s=this.mapNamesToFields(i.joinFields),l=this.childData.find(a=>a.id===i.id);(l?l.data:[]).filter(a=>{const d=this.getSortKey(a,s);return t.find(p=>p.childSortKeys[i.id]===d)}).forEach(a=>{const d=this.getSortKey(a,s),p=t.find(m=>m.childSortKeys[i.id]===d),h=p?p.sortKey:"",D=e[h];if(D){const m=D[i.id]||[];D[i.id]=m.concat(a)}})}),e}withChildData(t){return this.childData=t,this}buildTable(t){return{head:null,rows:this.mapParentChildData(t,this.mapHeader(!0,"govuk-table__header")),rowCount:t.length,colCount:this.columns.length}}}var H=C;0&&(module.exports={ParentChildDataTableBuilder});
1
+ "use strict";var P=Object.create;var u=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var F=(n,c)=>{for(var t in c)u(n,t,{get:c[t],enumerable:!0})},f=(n,c,t,r)=>{if(c&&typeof c=="object"||typeof c=="function")for(let e of A(c))!N.call(n,e)&&e!==t&&u(n,e,{get:()=>c[e],enumerable:!(r=v(c,e))||r.enumerable});return n};var S=(n,c,t)=>(t=n!=null?P(w(n)):{},f(c||!n||!n.__esModule?u(t,"default",{value:n,enumerable:!0}):t,n)),B=n=>f(u({},"__esModule",{value:!0}),n);var J={};F(J,{ParentChildDataTableBuilder:()=>C,default:()=>H});module.exports=B(J);var g=S(require("../DataTableBuilder/DataTableBuilder")),b=require("../arrayUtils"),T=S(require("../SectionedDataTableBuilder/SectionedDataTableBuilder"));class C extends T.default{constructor(t){const{specification:r}=t,{sections:e,template:i}=r;super(r);this.childData=[];this.sections=e,this.template=i,this.variant=t,this.childVariants=this.variant.childVariants||[]}createParentChildTable(t,r){let e={};const i=this.mapNamesToFields(this.childVariants.flatMap(a=>a.joinFields).reduce(b.distinct,[])),s=this.calculateParentChildKeys(t,i);s.forEach(a=>{e[a.sortKey]={parent:[]}}),e=this.splitParentDataIntoSections(e,t,i),e=this.splitChildDataIntoSections(s,e);const l=this.createChildDataTableBuilders();return s.flatMap(a=>{const d=e[a.sortKey]||{};let p=[];return d&&(p=d.parent?d.parent:[]),[r].concat(p.map(h=>this.mapRow(h,"dpr-parent-cell"))).concat(this.childVariants.filter(h=>d&&d[h.id]).map(h=>{const D=l[h.id],m=d[h.id],y=D&&m?D.buildTable(m):void 0,K=y?this.convertDataTableToHtml(y):"";return[{classes:"dpr-child-report-cell",format:"string",html:`<div class='dpr-child-report'><h2 class="govuk-heading-s">${h.name}</h2><div class="dpr-child-report_table">${K}</div></div>`,colspan:this.columns.length}]}))})}createParentChildSectionRows(t,r){const i=this.mapSections(t).sectionedData,s=[];return Object.keys(i).forEach(o=>{const a=i[o];s.push({sectionDescription:o,...this.getSectionCount(i,o),rows:this.createParentChildTable(a,r)})}),s.flatMap((o,a)=>[...this.createSectionHeader(o.sectionDescription,a,o.count,o.countDescription),...o.rows])}mapParentChildData(t,r){return this.sections?.length?this.createParentChildSectionRows(t,r):this.createParentChildTable(t,r)}createChildDataTableBuilders(){return this.childVariants.reduce((r,e)=>{const{specification:i}=e,s=i?i.fields:[],l=s.filter(a=>a.visible||a.mandatory).map(a=>a.name),o=new g.default(s).withNoHeaderOptions(l).withSortedData();return{...r,[e.id]:o}},{})}calculateParentChildKeys(t,r){return t.map(e=>({sortKey:this.getSortKey(e,r),childSortKeys:this.childVariants.reduce((i,s)=>({...i,[s.id]:this.getSortKey(e,this.mapNamesToFields(s.joinFields))}),{})})).reduce((e,i)=>e.find(s=>s.sortKey===i.sortKey)?e:e.concat(i),[])}splitParentDataIntoSections(t,r,e){return r.reduce((i,s)=>{const l=this.getSortKey(s,e),o=i[l]?i[l].parent:[];return{...i,...o&&{[l]:{parent:o.concat(s)}}}},t)}splitChildDataIntoSections(t,r){const e={...r};return this.childVariants.forEach(i=>{const s=this.mapNamesToFields(i.joinFields),l=this.childData.find(a=>a.id===i.id);(l?l.data:[]).filter(a=>{const d=this.getSortKey(a,s);return t.find(p=>p.childSortKeys[i.id]===d)}).forEach(a=>{const d=this.getSortKey(a,s),p=t.find(m=>m.childSortKeys[i.id]===d),h=p?p.sortKey:"",D=e[h];if(D){const m=D[i.id]||[];D[i.id]=m.concat(a)}})}),e}withChildData(t){return this.childData=t,this}buildTable(t){return{head:null,rows:this.mapParentChildData(t,this.mapHeader(!0,"govuk-table__header")),rowCount:t.length,colCount:this.columns.length}}}var H=C;0&&(module.exports={ParentChildDataTableBuilder});
2
2
  //# sourceMappingURL=ParentChildDataTableBuilder.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts"],
4
- "sourcesContent": ["import Dict = NodeJS.Dict\nimport { components } from '../../types/api'\nimport { Cell, DataTable } from '../DataTableBuilder/types'\nimport DataTableBuilder from '../DataTableBuilder/DataTableBuilder'\nimport { distinct } from '../arrayUtils'\nimport { ChildData, ParentChildSortKey } from './types'\nimport SectionedDataTableBuilder from '../SectionedDataTableBuilder/SectionedDataTableBuilder'\n\nclass ParentChildDataTableBuilder extends SectionedDataTableBuilder {\n variant: components['schemas']['VariantDefinition']\n\n childVariants: components['schemas']['ChildVariantDefinition'][]\n\n childData: Array<ChildData> = []\n\n constructor(variant: components['schemas']['VariantDefinition']) {\n const { specification } = variant\n const { sections, template } = <components['schemas']['Specification']>specification\n super(<components['schemas']['Specification']>specification)\n\n this.sections = sections\n this.template = template\n this.variant = variant\n this.childVariants = this.variant.childVariants || []\n }\n\n private createParentChildTable(parentData: Array<Dict<string>>, header: Cell[]) {\n let sectionedParentChildData: Dict<Dict<Array<Dict<string>>>> = {}\n const joinFields = this.mapNamesToFields(this.childVariants.flatMap((c) => c.joinFields).reduce(distinct, []))\n // Get the parent-child joins definition data\n\n // Create the section keys and\n const parentChildKeys = this.calculateParentChildKeys(parentData, joinFields)\n parentChildKeys.forEach((parentKey) => {\n sectionedParentChildData[parentKey.sortKey] = {\n parent: [],\n }\n })\n\n sectionedParentChildData = this.splitParentDataIntoSections(sectionedParentChildData, parentData, joinFields)\n sectionedParentChildData = this.splitChildDataIntoSections(parentChildKeys, sectionedParentChildData)\n\n const childDataTableBuilders = this.createChildDataTableBuilders()\n\n const parentChildTable = parentChildKeys.flatMap((key) => {\n const sectionData = sectionedParentChildData[key.sortKey] || {}\n\n let parentSectionData: Dict<string>[] = []\n if (sectionData) {\n parentSectionData = sectionData.parent ? sectionData.parent : []\n }\n\n return [header].concat(parentSectionData.map((r) => this.mapRow(r, 'dpr-parent-cell'))).concat(\n this.childVariants\n .filter((childVariant) => sectionData && sectionData[childVariant.id])\n .map((childVariant) => {\n const builder = childDataTableBuilders[childVariant.id]\n const section = sectionData[childVariant.id]\n const dataTable = builder && section ? builder.buildTable(section) : undefined\n const dataTableHtml = dataTable ? this.convertDataTableToHtml(dataTable) : ''\n\n return [\n {\n classes: 'dpr-child-report-cell',\n format: 'string',\n html: `<div class='dpr-child-report'><h2 class=\"govuk-heading-s\">${childVariant.name}</h2><div class=\"dpr-child-report_table\">${dataTableHtml}</div></div>`,\n colspan: this.columns.length,\n },\n ]\n }),\n )\n })\n\n return parentChildTable\n }\n\n private createParentChildSectionRows(parentData: Array<Dict<string>>, header: Cell[]) {\n const sectionsDetails = this.mapSections(parentData)\n const sectionedData = sectionsDetails.sectionedData as Dict<Array<Dict<string>>>\n const sectionedParentChildSectionedRows: {\n sectionDescription: string\n rows: Cell[][]\n count: number\n countDescription: string\n }[] = []\n\n Object.keys(sectionedData).forEach((sectionDescription) => {\n const data = sectionedData[sectionDescription] as Array<Dict<string>>\n\n sectionedParentChildSectionedRows.push({\n sectionDescription,\n ...this.getSectionCount(sectionedData, sectionDescription),\n rows: this.createParentChildTable(data, header),\n })\n })\n\n const rows = sectionedParentChildSectionedRows.flatMap((section, index) => {\n const sectionHeader = this.createSectionHeader(\n section.sectionDescription,\n index,\n section.count,\n section.countDescription,\n )\n return [...sectionHeader, ...section.rows]\n })\n\n return rows\n }\n\n private mapParentChildData(parentData: Array<Dict<string>>, header: Cell[]): Cell[][] {\n if (this.sections?.length) {\n return this.createParentChildSectionRows(parentData, header)\n }\n return this.createParentChildTable(parentData, header)\n }\n\n private createChildDataTableBuilders() {\n const childDataTables: Dict<DataTableBuilder> = this.childVariants.reduce((previousValue, childVariant) => {\n const { specification } = childVariant\n const fields = specification ? specification.fields : []\n const fieldNamesToDisplay = fields.filter((f) => f.visible || f.mandatory).map((f) => f.name)\n\n const dataTableBuilder = new DataTableBuilder(fields).withNoHeaderOptions(fieldNamesToDisplay).withSortedData()\n\n return {\n ...previousValue,\n [childVariant.id]: dataTableBuilder,\n }\n }, {})\n return childDataTables\n }\n\n private calculateParentChildKeys(\n parentData: Array<NodeJS.Dict<string>>,\n joinFields: components['schemas']['FieldDefinition'][],\n ) {\n return parentData\n .map(\n (rowData): ParentChildSortKey => ({\n sortKey: this.getSortKey(rowData, joinFields),\n childSortKeys: this.childVariants.reduce((previousValue, childVariant) => {\n return {\n ...previousValue,\n [childVariant.id]: this.getSortKey(rowData, this.mapNamesToFields(childVariant.joinFields)),\n }\n }, {}),\n }),\n )\n .reduce((previousValue: ParentChildSortKey[], sortKey: ParentChildSortKey) => {\n if (previousValue.find((v) => v.sortKey === sortKey.sortKey)) {\n return previousValue\n }\n return previousValue.concat(sortKey)\n }, [])\n }\n\n private splitParentDataIntoSections(\n sectionedParentChildData: NodeJS.Dict<NodeJS.Dict<Array<NodeJS.Dict<string>>>>,\n parentData: Array<NodeJS.Dict<string>>,\n joinFields: components['schemas']['FieldDefinition'][],\n ) {\n return parentData.reduce((previousValue, rowData) => {\n const parentKey: string = this.getSortKey(rowData, joinFields)\n const previousParentValue = previousValue[parentKey] ? previousValue[parentKey].parent : []\n\n return {\n ...previousValue,\n ...(previousParentValue && {\n [parentKey]: {\n parent: previousParentValue.concat(rowData),\n },\n }),\n }\n }, sectionedParentChildData)\n }\n\n private splitChildDataIntoSections(\n parentKeys: ParentChildSortKey[],\n sectionedParentChildData: Dict<Dict<Array<Dict<string>>>>,\n ): Dict<Dict<Array<Dict<string>>>> {\n const sectionedParentChildDataWithChildren = { ...sectionedParentChildData }\n\n this.childVariants.forEach((childVariant) => {\n const childFields = this.mapNamesToFields(childVariant.joinFields)\n const matchingChildData = this.childData.find((d) => d.id === childVariant.id)\n const data = matchingChildData ? matchingChildData.data : []\n\n data\n .filter((rowData) => {\n const sortKey = this.getSortKey(rowData, childFields)\n return parentKeys.find((p) => p.childSortKeys[childVariant.id] === sortKey)\n })\n .forEach((rowData) => {\n const sortKey = this.getSortKey(rowData, childFields)\n const parent = parentKeys.find((p) => p.childSortKeys[childVariant.id] === sortKey)\n const parentSortKey = parent ? parent.sortKey : ''\n const parentSection = sectionedParentChildDataWithChildren[parentSortKey]\n if (parentSection) {\n const existingChildData = parentSection[childVariant.id] || []\n parentSection[childVariant.id] = existingChildData.concat(rowData)\n }\n })\n })\n\n return sectionedParentChildDataWithChildren\n }\n\n withChildData(childData: Array<ChildData>) {\n this.childData = childData\n return this\n }\n\n buildTable(data: Array<Dict<string>>): DataTable {\n return {\n head: null,\n rows: this.mapParentChildData(data, this.mapHeader(true, 'govuk-table__header')),\n rowCount: data.length,\n colCount: this.columns.length,\n }\n }\n}\n\nexport { ParentChildDataTableBuilder }\nexport default ParentChildDataTableBuilder\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import Dict = NodeJS.Dict\nimport { components } from '../../types/api'\nimport { Cell, DataTable } from '../DataTableBuilder/types'\nimport DataTableBuilder from '../DataTableBuilder/DataTableBuilder'\nimport { distinct } from '../arrayUtils'\nimport { ChildData, ParentChildSortKey } from './types'\nimport SectionedDataTableBuilder from '../SectionedDataTableBuilder/SectionedDataTableBuilder'\n\nclass ParentChildDataTableBuilder extends SectionedDataTableBuilder {\n variant: components['schemas']['VariantDefinition']\n\n childVariants: components['schemas']['ChildVariantDefinition'][]\n\n childData: Array<ChildData> = []\n\n constructor(variant: components['schemas']['VariantDefinition']) {\n const { specification } = variant\n const { sections, template } = <components['schemas']['Specification']>specification\n super(<components['schemas']['Specification']>specification)\n\n this.sections = sections\n this.template = template\n this.variant = variant\n this.childVariants = this.variant.childVariants || []\n }\n\n private createParentChildTable(parentData: Array<Dict<string>>, header: Cell[]) {\n let sectionedParentChildData: Dict<Dict<Array<Dict<string>>>> = {}\n const joinFields = this.mapNamesToFields(this.childVariants.flatMap((c) => c.joinFields).reduce(distinct, []))\n // Get the parent-child joins definition data\n\n // Create the section keys and\n const parentChildKeys = this.calculateParentChildKeys(parentData, joinFields)\n parentChildKeys.forEach((parentKey) => {\n sectionedParentChildData[parentKey.sortKey] = {\n parent: [],\n }\n })\n\n sectionedParentChildData = this.splitParentDataIntoSections(sectionedParentChildData, parentData, joinFields)\n sectionedParentChildData = this.splitChildDataIntoSections(parentChildKeys, sectionedParentChildData)\n\n const childDataTableBuilders = this.createChildDataTableBuilders()\n\n const parentChildTable = parentChildKeys.flatMap((key) => {\n const sectionData = sectionedParentChildData[key.sortKey] || {}\n\n let parentSectionData: Dict<string>[] = []\n if (sectionData) {\n parentSectionData = sectionData['parent'] ? sectionData['parent'] : []\n }\n\n return [header].concat(parentSectionData.map((r) => this.mapRow(r, 'dpr-parent-cell'))).concat(\n this.childVariants\n .filter((childVariant) => sectionData && sectionData[childVariant.id])\n .map((childVariant) => {\n const builder = childDataTableBuilders[childVariant.id]\n const section = sectionData[childVariant.id]\n const dataTable = builder && section ? builder.buildTable(section) : undefined\n const dataTableHtml = dataTable ? this.convertDataTableToHtml(dataTable) : ''\n\n return [\n {\n classes: 'dpr-child-report-cell',\n format: 'string',\n html: `<div class='dpr-child-report'><h2 class=\"govuk-heading-s\">${childVariant.name}</h2><div class=\"dpr-child-report_table\">${dataTableHtml}</div></div>`,\n colspan: this.columns.length,\n },\n ]\n }),\n )\n })\n\n return parentChildTable\n }\n\n private createParentChildSectionRows(parentData: Array<Dict<string>>, header: Cell[]) {\n const sectionsDetails = this.mapSections(parentData)\n const sectionedData = sectionsDetails.sectionedData as Dict<Array<Dict<string>>>\n const sectionedParentChildSectionedRows: {\n sectionDescription: string\n rows: Cell[][]\n count: number\n countDescription: string\n }[] = []\n\n Object.keys(sectionedData).forEach((sectionDescription) => {\n const data = sectionedData[sectionDescription] as Array<Dict<string>>\n\n sectionedParentChildSectionedRows.push({\n sectionDescription,\n ...this.getSectionCount(sectionedData, sectionDescription),\n rows: this.createParentChildTable(data, header),\n })\n })\n\n const rows = sectionedParentChildSectionedRows.flatMap((section, index) => {\n const sectionHeader = this.createSectionHeader(\n section.sectionDescription,\n index,\n section.count,\n section.countDescription,\n )\n return [...sectionHeader, ...section.rows]\n })\n\n return rows\n }\n\n private mapParentChildData(parentData: Array<Dict<string>>, header: Cell[]): Cell[][] {\n if (this.sections?.length) {\n return this.createParentChildSectionRows(parentData, header)\n }\n return this.createParentChildTable(parentData, header)\n }\n\n private createChildDataTableBuilders() {\n const childDataTables: Dict<DataTableBuilder> = this.childVariants.reduce((previousValue, childVariant) => {\n const { specification } = childVariant\n const fields = specification ? specification.fields : []\n const fieldNamesToDisplay = fields.filter((f) => f.visible || f.mandatory).map((f) => f.name)\n\n const dataTableBuilder = new DataTableBuilder(fields).withNoHeaderOptions(fieldNamesToDisplay).withSortedData()\n\n return {\n ...previousValue,\n [childVariant.id]: dataTableBuilder,\n }\n }, {})\n return childDataTables\n }\n\n private calculateParentChildKeys(\n parentData: Array<NodeJS.Dict<string>>,\n joinFields: components['schemas']['FieldDefinition'][],\n ) {\n return parentData\n .map(\n (rowData): ParentChildSortKey => ({\n sortKey: this.getSortKey(rowData, joinFields),\n childSortKeys: this.childVariants.reduce((previousValue, childVariant) => {\n return {\n ...previousValue,\n [childVariant.id]: this.getSortKey(rowData, this.mapNamesToFields(childVariant.joinFields)),\n }\n }, {}),\n }),\n )\n .reduce((previousValue: ParentChildSortKey[], sortKey: ParentChildSortKey) => {\n if (previousValue.find((v) => v.sortKey === sortKey.sortKey)) {\n return previousValue\n }\n return previousValue.concat(sortKey)\n }, [])\n }\n\n private splitParentDataIntoSections(\n sectionedParentChildData: NodeJS.Dict<NodeJS.Dict<Array<NodeJS.Dict<string>>>>,\n parentData: Array<NodeJS.Dict<string>>,\n joinFields: components['schemas']['FieldDefinition'][],\n ) {\n return parentData.reduce((previousValue, rowData) => {\n const parentKey: string = this.getSortKey(rowData, joinFields)\n const previousParentValue = previousValue[parentKey] ? previousValue[parentKey]['parent'] : []\n\n return {\n ...previousValue,\n ...(previousParentValue && {\n [parentKey]: {\n parent: previousParentValue.concat(rowData),\n },\n }),\n }\n }, sectionedParentChildData)\n }\n\n private splitChildDataIntoSections(\n parentKeys: ParentChildSortKey[],\n sectionedParentChildData: Dict<Dict<Array<Dict<string>>>>,\n ): Dict<Dict<Array<Dict<string>>>> {\n const sectionedParentChildDataWithChildren = { ...sectionedParentChildData }\n\n this.childVariants.forEach((childVariant) => {\n const childFields = this.mapNamesToFields(childVariant.joinFields)\n const matchingChildData = this.childData.find((d) => d.id === childVariant.id)\n const data = matchingChildData ? matchingChildData.data : []\n\n data\n .filter((rowData) => {\n const sortKey = this.getSortKey(rowData, childFields)\n return parentKeys.find((p) => p.childSortKeys[childVariant.id] === sortKey)\n })\n .forEach((rowData) => {\n const sortKey = this.getSortKey(rowData, childFields)\n const parent = parentKeys.find((p) => p.childSortKeys[childVariant.id] === sortKey)\n const parentSortKey = parent ? parent.sortKey : ''\n const parentSection = sectionedParentChildDataWithChildren[parentSortKey]\n if (parentSection) {\n const existingChildData = parentSection[childVariant.id] || []\n parentSection[childVariant.id] = existingChildData.concat(rowData)\n }\n })\n })\n\n return sectionedParentChildDataWithChildren\n }\n\n withChildData(childData: Array<ChildData>) {\n this.childData = childData\n return this\n }\n\n override buildTable(data: Array<Dict<string>>): DataTable {\n return {\n head: null,\n rows: this.mapParentChildData(data, this.mapHeader(true, 'govuk-table__header')),\n rowCount: data.length,\n colCount: this.columns.length,\n }\n }\n}\n\nexport { ParentChildDataTableBuilder }\nexport default ParentChildDataTableBuilder\n"],
5
+ "mappings": "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",
6
6
  "names": ["ParentChildDataTableBuilder_exports", "__export", "ParentChildDataTableBuilder", "ParentChildDataTableBuilder_default", "__toCommonJS", "import_DataTableBuilder", "import_arrayUtils", "import_SectionedDataTableBuilder", "SectionedDataTableBuilder", "variant", "specification", "sections", "template", "parentData", "header", "sectionedParentChildData", "joinFields", "c", "parentChildKeys", "parentKey", "childDataTableBuilders", "key", "sectionData", "parentSectionData", "r", "childVariant", "builder", "section", "dataTable", "dataTableHtml", "sectionedData", "sectionedParentChildSectionedRows", "sectionDescription", "data", "index", "previousValue", "fields", "fieldNamesToDisplay", "f", "dataTableBuilder", "DataTableBuilder", "rowData", "sortKey", "v", "previousParentValue", "parentKeys", "sectionedParentChildDataWithChildren", "childFields", "matchingChildData", "d", "parent", "p", "parentSortKey", "parentSection", "existingChildData", "childData"]
7
7
  }
@@ -1,3 +1,4 @@
1
+ import { expect } from '@jest/globals'
1
2
  import Dict = NodeJS.Dict
2
3
  import { components } from '../../types/api'
3
4
  import ParentChildDataTableBuilder from './ParentChildDataTableBuilder'
@@ -58,6 +59,7 @@ const childData: Array<Dict<string>> = [
58
59
 
59
60
  const parentFields: Array<components['schemas']['FieldDefinition']> = [
60
61
  {
62
+ header: false,
61
63
  name: 'sectionOne',
62
64
  display: 'Section One',
63
65
  sortable: true,
@@ -68,6 +70,7 @@ const parentFields: Array<components['schemas']['FieldDefinition']> = [
68
70
  calculated: false,
69
71
  },
70
72
  {
73
+ header: false,
71
74
  name: 'sectionTwo',
72
75
  display: 'Section Two',
73
76
  sortable: true,
@@ -78,6 +81,7 @@ const parentFields: Array<components['schemas']['FieldDefinition']> = [
78
81
  calculated: false,
79
82
  },
80
83
  {
84
+ header: false,
81
85
  name: 'oranges',
82
86
  display: 'Oranges!',
83
87
  sortable: true,
@@ -88,6 +92,7 @@ const parentFields: Array<components['schemas']['FieldDefinition']> = [
88
92
  calculated: false,
89
93
  },
90
94
  {
95
+ header: false,
91
96
  name: 'lemons',
92
97
  display: 'Lemons?!',
93
98
  sortable: true,
@@ -98,6 +103,7 @@ const parentFields: Array<components['schemas']['FieldDefinition']> = [
98
103
  calculated: false,
99
104
  },
100
105
  {
106
+ header: false,
101
107
  name: 'section',
102
108
  display: 'Section',
103
109
  sortable: true,
@@ -111,6 +117,7 @@ const parentFields: Array<components['schemas']['FieldDefinition']> = [
111
117
 
112
118
  const childFields: Array<components['schemas']['FieldDefinition']> = [
113
119
  {
120
+ header: false,
114
121
  name: 'sectionOne',
115
122
  display: 'Section One',
116
123
  sortable: true,
@@ -121,6 +128,7 @@ const childFields: Array<components['schemas']['FieldDefinition']> = [
121
128
  calculated: false,
122
129
  },
123
130
  {
131
+ header: false,
124
132
  name: 'sectionTwo',
125
133
  display: 'Section Two',
126
134
  sortable: true,
@@ -131,6 +139,7 @@ const childFields: Array<components['schemas']['FieldDefinition']> = [
131
139
  calculated: false,
132
140
  },
133
141
  {
142
+ header: false,
134
143
  name: 'cheese',
135
144
  display: 'Cheese',
136
145
  sortable: true,
@@ -373,8 +382,10 @@ describe('ParentChildDataTableBuilder', () => {
373
382
  })
374
383
 
375
384
  it('sections added correctly', () => {
376
- parentVariant.specification.sections = ['section']
377
- parentVariant.specification.template = 'parent-child-section'
385
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
386
+ parentVariant.specification!.sections = ['section']
387
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
388
+ parentVariant.specification!.template = 'parent-child-section'
378
389
  const mapped = new ParentChildDataTableBuilder(parentVariant)
379
390
  .withNoHeaderOptions(['sectionOne', 'sectionTwo', 'oranges', 'lemons'])
380
391
  .withChildData([
@@ -47,7 +47,7 @@ class ParentChildDataTableBuilder extends SectionedDataTableBuilder {
47
47
 
48
48
  let parentSectionData: Dict<string>[] = []
49
49
  if (sectionData) {
50
- parentSectionData = sectionData.parent ? sectionData.parent : []
50
+ parentSectionData = sectionData['parent'] ? sectionData['parent'] : []
51
51
  }
52
52
 
53
53
  return [header].concat(parentSectionData.map((r) => this.mapRow(r, 'dpr-parent-cell'))).concat(
@@ -161,7 +161,7 @@ class ParentChildDataTableBuilder extends SectionedDataTableBuilder {
161
161
  ) {
162
162
  return parentData.reduce((previousValue, rowData) => {
163
163
  const parentKey: string = this.getSortKey(rowData, joinFields)
164
- const previousParentValue = previousValue[parentKey] ? previousValue[parentKey].parent : []
164
+ const previousParentValue = previousValue[parentKey] ? previousValue[parentKey]['parent'] : []
165
165
 
166
166
  return {
167
167
  ...previousValue,
@@ -210,7 +210,7 @@ class ParentChildDataTableBuilder extends SectionedDataTableBuilder {
210
210
  return this
211
211
  }
212
212
 
213
- buildTable(data: Array<Dict<string>>): DataTable {
213
+ override buildTable(data: Array<Dict<string>>): DataTable {
214
214
  return {
215
215
  head: null,
216
216
  rows: this.mapParentChildData(data, this.mapHeader(true, 'govuk-table__header')),
@@ -1,2 +1,2 @@
1
- var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var s=(r,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of d(t))!c.call(r,e)&&e!==o&&a(r,e,{get:()=>t[e],enumerable:!(i=n(t,e))||i.enumerable});return r};var y=r=>s(a({},"__esModule",{value:!0}),r);var K={};module.exports=y(K);
1
+ "use strict";var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var s=(r,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of d(t))!c.call(r,e)&&e!==o&&a(r,e,{get:()=>t[e],enumerable:!(i=n(t,e))||i.enumerable});return r};var y=r=>s(a({},"__esModule",{value:!0}),r);var K={};module.exports=y(K);
2
2
  //# sourceMappingURL=types.d.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/ParentChildDataTableBuilder/types.d.ts"],
4
4
  "sourcesContent": ["import { SortKey } from '../DataTableBuilder/types'\n\nexport interface ParentChildSortKey extends SortKey {\n childSortKeys: Dict<string>\n}\n\nexport interface ChildData {\n id: string\n data: Array<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 k=Object.create;var v=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var l in t)v(e,l,{get:t[l],enumerable:!0})},C=(e,t,l,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of A(t))!M.call(e,n)&&n!==l&&v(e,n,{get:()=>t[n],enumerable:!(s=O(t,n))||s.enumerable});return e};var m=(e,t,l)=>(l=e!=null?k(G(e)):{},C(t||!e||!e.__esModule?v(l,"default",{value:e,enumerable:!0}):l,e)),j=e=>C(v({},"__esModule",{value:!0}),e);var B={};P(B,{default:()=>W,removeDefaults:()=>T,saveDefaults:()=>x,setFilterValuesFromSavedDefaults:()=>I,setUserContextDefaults:()=>U});module.exports=j(B);var V=m(require("../localsHelper")),b=require("../../types/UserReports"),f=require("../../components/_filters/filter-input/enum"),R=m(require("../../components/_inputs/date-range/utils")),y=m(require("../../components/_inputs/granular-date-range/utils")),h=m(require("../../components/_inputs/multi-select/utils")),S=m(require("../../components/_inputs/date-input/utils"));const x=async(e,t,l,s)=>{const n=await E(l,t,s,e),{dprUser:u}=V.default.getValues(t),{reportId:i,id:a}=l.params,{defaultFilterValuesService:r}=s;return r?r.save(u.id,i,a,n):void 0},T=async(e,t,l,s)=>{const{dprUser:n}=V.default.getValues(t),{reportId:u,id:i}=l.params,{defaultFilterValuesService:a}=s;return a?a.delete(n.id,u,i,e):void 0},E=async(e,t,l,s)=>{const{token:n,definitionsPath:u}=V.default.getValues(t),{reportId:i,id:a,type:r}=e.params;let p,c=[];r===b.ReportType.REPORT?(p=await l.reportingService.getDefinition(n,i,a,u),c=p.variant.specification?.fields||[]):(p=await l.dashboardService.getDefinition(n,i,a,u),c=p.filterFields||[]);const g=Object.keys(e.body).filter(o=>o.includes("filters.")||o.includes("sortColumn")||o.includes("sortedAsc")).map(o=>({name:o.replace("filters.",""),value:e.body[o]})).map(o=>{const D=o.name.split(".")[0],L=c.find(w=>w.name===D);let{value:F,name:d}=o;if(L)switch(L.filter?.type.toLocaleLowerCase()){case f.FilterType.multiselect.toLocaleLowerCase():F=Array.isArray(o.value)?o.value.join(","):o.value;break;case f.FilterType.dateRange.toLocaleLowerCase():({value:F,name:d}=R.default.setDefaultValue(e,d));break;case f.FilterType.granularDateRange.toLocaleLowerCase():({name:d,value:F}=y.default.setDefaultValue(e,d));break;default:break}return{name:d,value:F,type:s}});return Array.from(new Set(g.map(o=>o.name))).map(o=>g.find(D=>D.name===o)).filter(o=>o!==void 0).filter(o=>o?o.value!=="":!1)},I=(e,t,l)=>{const s=e.some(i=>l.findIndex(r=>r.name===i.name)!==-1),n=e.map(i=>{const a=l.find(c=>c.name===i.name);let r={...i};switch(i.type.toLocaleLowerCase()){case f.FilterType.multiselect.toLocaleLowerCase():r=h.default.setFilterValuesFromSavedDefault(r,s,a);break;case f.FilterType.date.toLocaleLowerCase():s&&(r.value=""),a&&(r=S.default.setFilterValueFromDefault(a,r));break;case f.FilterType.dateRange.toLocaleLowerCase():s&&(r.value={start:"",end:"",relative:void 0}),a&&(r=R.default.setFilterValueFromDefault(a,r));break;case f.FilterType.granularDateRange.toLocaleLowerCase():s&&(r.value={start:"",end:"",granularity:void 0,quickFilter:void 0}),a&&(r=y.default.setFilterValueFromDefault(a,r));break;default:{let c=s?"":r.value;c=a?a.value:c,r={...i,value:c}}break}return r}),u=t.map(i=>{const a=l.find(r=>r.name===i.name);return{...i,...a&&{value:a.value}}});return{filters:n,sortBy:u}},U=(e,t)=>{const{dprUser:l}=V.default.getValues(e),{activeCaseLoadId:s}=l;return t.forEach(n=>{if(n.type.toLocaleLowerCase()===f.FilterType.autocomplete.toLocaleLowerCase()&&n.text.toLocaleLowerCase().includes("establishment")&&s?.length){const u=n,i=u.options.find(a=>a.value===s);i&&(u.value=i.text,u.staticOptionNameValue=s)}}),t};var W={saveDefaults:x,removeDefaults:T,setFilterValuesFromSavedDefaults:I,setUserContextDefaults:U};0&&(module.exports={removeDefaults,saveDefaults,setFilterValuesFromSavedDefaults,setUserContextDefaults});
1
+ "use strict";var O=Object.create;var v=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var j=(e,t)=>{for(var a in t)v(e,a,{get:t[a],enumerable:!0})},b=(e,t,a,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of P(t))!M.call(e,n)&&n!==a&&v(e,n,{get:()=>t[n],enumerable:!(s=A(t,n))||s.enumerable});return e};var m=(e,t,a)=>(a=e!=null?O(G(e)):{},b(t||!e||!e.__esModule?v(a,"default",{value:e,enumerable:!0}):a,e)),E=e=>b(v({},"__esModule",{value:!0}),e);var H={};j(H,{default:()=>B,removeDefaults:()=>T,saveDefaults:()=>I,setFilterValuesFromSavedDefaults:()=>U,setUserContextDefaults:()=>k});module.exports=E(H);var V=m(require("../localsHelper")),h=require("../../types/UserReports"),f=require("../../components/_filters/filter-input/enum"),D=m(require("../../components/_inputs/date-range/utils")),y=m(require("../../components/_inputs/granular-date-range/utils")),S=m(require("../../components/_inputs/multi-select/utils")),x=m(require("../../components/_inputs/date-input/utils")),g=require("../indexedAccesHelper");const I=async(e,t,a,s)=>{const n=await W(a,t,s,e),{dprUser:u}=V.default.getValues(t),i=(0,g.getRequestParam)({req:a,param:"id"}),r=(0,g.getRequestParam)({req:a,param:"reportId"}),{defaultFilterValuesService:l}=s;return l?l.save(u.id,r,i,n):void 0},T=async(e,t,a,s)=>{const{dprUser:n}=V.default.getValues(t),{reportId:u,id:i}=a.params,{defaultFilterValuesService:r}=s;return r?r.delete(n.id,u,i,e):void 0},W=async(e,t,a,s)=>{const{token:n,definitionsPath:u}=V.default.getValues(t),{reportId:i,id:r,type:l}=e.params;let p,c=[];l===h.ReportType.REPORT?(p=await a.reportingService.getDefinition(n,i,r,u),c=p.variant.specification?.fields||[]):(p=await a.dashboardService.getDefinition(n,i,r,u),c=p.filterFields||[]);const L=Object.keys(e.body).filter(o=>o.includes("filters.")||o.includes("sortColumn")||o.includes("sortedAsc")).map(o=>({name:o.replace("filters.",""),value:e.body[o]})).map(o=>{const R=o.name.split(".")[0],w=c.find(C=>C.name===R);let{value:F,name:d}=o;if(w)switch(w.filter?.type.toLocaleLowerCase()){case f.FilterType.multiselect.toLocaleLowerCase():F=Array.isArray(o.value)?o.value.join(","):o.value;break;case f.FilterType.dateRange.toLocaleLowerCase():({value:F,name:d}=D.default.setDefaultValue(e,d));break;case f.FilterType.granularDateRange.toLocaleLowerCase():({name:d,value:F}=y.default.setDefaultValue(e,d));break;default:break}return{name:d,value:F,type:s}});return Array.from(new Set(L.map(o=>o.name))).map(o=>L.find(R=>R.name===o)).filter(o=>o!==void 0).filter(o=>o?o.value!=="":!1)},U=(e,t,a)=>{const s=e.some(i=>a.findIndex(l=>l.name===i.name)!==-1),n=e.map(i=>{const r=a.find(c=>c.name===i.name);let l={...i};switch(i.type.toLocaleLowerCase()){case f.FilterType.multiselect.toLocaleLowerCase():l=S.default.setFilterValuesFromSavedDefault(l,s,r);break;case f.FilterType.date.toLocaleLowerCase():s&&(l.value=""),r&&(l=x.default.setFilterValueFromDefault(r,l));break;case f.FilterType.dateRange.toLocaleLowerCase():s&&(l.value={start:"",end:"",relative:void 0}),r&&(l=D.default.setFilterValueFromDefault(r,l));break;case f.FilterType.granularDateRange.toLocaleLowerCase():s&&(l.value={start:"",end:"",granularity:void 0,quickFilter:void 0}),r&&(l=y.default.setFilterValueFromDefault(r,l));break;default:{let c=s?"":l.value;c=r?r.value:c,l={...i,value:c}}break}return l}),u=t.map(i=>{const r=a.find(l=>l.name===i.name);return{...i,...r&&{value:r.value}}});return{filters:n,sortBy:u}},k=(e,t)=>{const{dprUser:a}=V.default.getValues(e),{activeCaseLoadId:s}=a;return t.forEach(n=>{if(n.type.toLocaleLowerCase()===f.FilterType.autocomplete.toLocaleLowerCase()&&n.text.toLocaleLowerCase().includes("establishment")&&s?.length){const u=n,i=u.options.find(r=>r.value===s);i&&(u.value=i.text,u.staticOptionNameValue=s)}}),t};var B={saveDefaults:I,removeDefaults:T,setFilterValuesFromSavedDefaults:U,setUserContextDefaults:k};0&&(module.exports={removeDefaults,saveDefaults,setFilterValuesFromSavedDefaults,setUserContextDefaults});
2
2
  //# sourceMappingURL=personalisationUtils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/Personalisation/personalisationUtils.ts"],
4
- "sourcesContent": ["import { Request, Response } from 'express'\nimport { Services } from '../../types/Services'\nimport localsHelper from '../localsHelper'\nimport { ReportType } from '../../types/UserReports'\nimport { components } from '../../types/api'\nimport { FilterType } from '../../components/_filters/filter-input/enum'\nimport DateRangeInputUtils from '../../components/_inputs/date-range/utils'\nimport GranularDateRangeInputUtils from '../../components/_inputs/granular-date-range/utils'\nimport MultiSelectUtils from '../../components/_inputs/multi-select/utils'\nimport DateInputUtils from '../../components/_inputs/date-input/utils'\nimport { RenderFiltersReturnValue } from '../../components/_async/async-filters-form/types'\nimport {\n DateFilterValue,\n DateRangeFilterValue,\n FilterValue,\n FilterValueWithOptions,\n GranularDateRangeFilterValue,\n MultiselectFilterValue,\n} from '../../components/_filters/types'\nimport { defaultFilterValue } from './types'\nimport { FiltersType } from '../../components/_filters/filtersTypeEnum'\n\nexport const saveDefaults = async (type: FiltersType, res: Response, req: Request, services: Services) => {\n const defaultValuesForReport = await getDefaultValues(req, res, services, type)\n const { dprUser } = localsHelper.getValues(res)\n const { reportId, id } = req.params\n const { defaultFilterValuesService } = services\n return defaultFilterValuesService\n ? defaultFilterValuesService.save(dprUser.id, reportId, id, defaultValuesForReport)\n : undefined\n}\n\nexport const removeDefaults = async (type: FiltersType, res: Response, req: Request, services: Services) => {\n const { dprUser } = localsHelper.getValues(res)\n const { reportId, id } = req.params\n const { defaultFilterValuesService } = services\n return defaultFilterValuesService ? defaultFilterValuesService.delete(dprUser.id, reportId, id, type) : undefined\n}\n\nconst getDefaultValues = async (\n req: Request,\n res: Response,\n services: Services,\n filtersType: FiltersType,\n): Promise<defaultFilterValue[]> => {\n const { token, definitionsPath } = localsHelper.getValues(res)\n const { reportId, id, type } = req.params\n\n let definition: components['schemas']['SingleVariantReportDefinition'] | components['schemas']['DashboardDefinition']\n let fields = []\n if (type === ReportType.REPORT) {\n definition = await services.reportingService.getDefinition(token, reportId, id, definitionsPath)\n fields = definition.variant.specification?.fields || []\n } else {\n definition = await services.dashboardService.getDefinition(token, reportId, id, definitionsPath)\n fields = definition.filterFields || []\n }\n\n const bodyFilterValues = Object.keys(req.body)\n .filter((k) => {\n return k.includes('filters.') || k.includes('sortColumn') || k.includes('sortedAsc')\n })\n .map((k) => {\n return { name: k.replace('filters.', ''), value: req.body[k] }\n })\n .map((k) => {\n const n = k.name.split('.')[0]\n const field = fields.find((f) => f.name === n)\n let { value, name } = k\n\n if (field) {\n const filterType = field.filter?.type.toLocaleLowerCase()\n\n switch (filterType) {\n case FilterType.multiselect.toLocaleLowerCase():\n value = Array.isArray(k.value) ? k.value.join(',') : k.value\n break\n\n case FilterType.dateRange.toLocaleLowerCase():\n ;({ value, name } = DateRangeInputUtils.setDefaultValue(req, name))\n break\n\n case FilterType.granularDateRange.toLocaleLowerCase():\n ;({ name, value } = GranularDateRangeInputUtils.setDefaultValue(req, name))\n break\n\n default:\n break\n }\n }\n\n return {\n name,\n value,\n type: filtersType,\n }\n })\n\n const defaultValuesConfig = Array.from(new Set(bodyFilterValues.map((a) => a.name)))\n .map((name) => {\n return bodyFilterValues.find((a) => a.name === name)\n })\n .filter((c) => c !== undefined)\n\n return defaultValuesConfig.filter((defaultValue) => {\n return defaultValue ? defaultValue.value !== '' : false\n })\n}\n\nexport const setFilterValuesFromSavedDefaults = (\n filters: FilterValue[],\n sortBy: FilterValue[],\n defaultValues: defaultFilterValue[],\n): RenderFiltersReturnValue => {\n const hasDefaults = filters.some((f) => {\n const defaultValue = defaultValues.findIndex((v) => v.name === f.name)\n return defaultValue !== -1\n })\n\n const filterValues = filters.map((filter) => {\n const defaultValue = defaultValues.find((v) => v.name === filter.name)\n let updatedFilter = {\n ...filter,\n }\n const type = filter.type.toLocaleLowerCase()\n\n switch (type) {\n case FilterType.multiselect.toLocaleLowerCase():\n updatedFilter = MultiSelectUtils.setFilterValuesFromSavedDefault(\n <MultiselectFilterValue>updatedFilter,\n hasDefaults,\n defaultValue,\n )\n break\n case FilterType.date.toLocaleLowerCase():\n if (hasDefaults) {\n updatedFilter.value = ''\n }\n if (defaultValue) {\n updatedFilter = <DateFilterValue>DateInputUtils.setFilterValueFromDefault(defaultValue, updatedFilter)\n }\n break\n case FilterType.dateRange.toLocaleLowerCase():\n if (hasDefaults) {\n updatedFilter.value = { start: '', end: '', relative: undefined }\n }\n if (defaultValue) {\n updatedFilter = <DateRangeFilterValue>(\n DateRangeInputUtils.setFilterValueFromDefault(defaultValue, updatedFilter)\n )\n }\n break\n case FilterType.granularDateRange.toLocaleLowerCase():\n if (hasDefaults) {\n updatedFilter.value = { start: '', end: '', granularity: undefined, quickFilter: undefined }\n }\n if (defaultValue) {\n updatedFilter = <GranularDateRangeFilterValue>(\n GranularDateRangeInputUtils.setFilterValueFromDefault(defaultValue, updatedFilter)\n )\n }\n break\n default:\n {\n let value = hasDefaults ? '' : updatedFilter.value\n value = defaultValue ? defaultValue.value : value\n updatedFilter = {\n ...filter,\n value,\n }\n }\n\n break\n }\n\n return updatedFilter\n })\n\n const sortValues = sortBy.map((sortFilter) => {\n const defaultValue = defaultValues.find((v) => v.name === sortFilter.name)\n return {\n ...sortFilter,\n ...(defaultValue && { value: defaultValue.value }),\n }\n })\n\n return {\n filters: filterValues,\n sortBy: sortValues,\n }\n}\n\nexport const setUserContextDefaults = (res: Response, filters: FilterValue[]) => {\n const { dprUser } = localsHelper.getValues(res)\n const { activeCaseLoadId } = dprUser\n\n filters.forEach((filter) => {\n if (\n filter.type.toLocaleLowerCase() === FilterType.autocomplete.toLocaleLowerCase() &&\n filter.text.toLocaleLowerCase().includes('establishment') &&\n activeCaseLoadId?.length\n ) {\n const f = <FilterValueWithOptions>filter\n const option = f.options.find((opt) => opt.value === activeCaseLoadId)\n\n if (option) {\n f.value = option.text\n f.staticOptionNameValue = activeCaseLoadId\n }\n }\n })\n\n return filters\n}\n\nexport default { saveDefaults, removeDefaults, setFilterValuesFromSavedDefaults, setUserContextDefaults }\n"],
5
- "mappings": "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",
6
- "names": ["personalisationUtils_exports", "__export", "personalisationUtils_default", "removeDefaults", "saveDefaults", "setFilterValuesFromSavedDefaults", "setUserContextDefaults", "__toCommonJS", "import_localsHelper", "import_UserReports", "import_enum", "import_utils", "type", "res", "req", "services", "defaultValuesForReport", "getDefaultValues", "dprUser", "localsHelper", "reportId", "id", "defaultFilterValuesService", "filtersType", "token", "definitionsPath", "definition", "fields", "bodyFilterValues", "k", "n", "field", "f", "value", "name", "DateRangeInputUtils", "GranularDateRangeInputUtils", "a", "c", "defaultValue", "filters", "sortBy", "defaultValues", "hasDefaults", "v", "filterValues", "filter", "updatedFilter", "MultiSelectUtils", "DateInputUtils", "sortValues", "sortFilter", "activeCaseLoadId", "option", "opt"]
4
+ "sourcesContent": ["import { Request, Response } from 'express'\nimport { Services } from '../../types/Services'\nimport localsHelper from '../localsHelper'\nimport { ReportType } from '../../types/UserReports'\nimport { components } from '../../types/api'\nimport { FilterType } from '../../components/_filters/filter-input/enum'\nimport DateRangeInputUtils from '../../components/_inputs/date-range/utils'\nimport GranularDateRangeInputUtils from '../../components/_inputs/granular-date-range/utils'\nimport MultiSelectUtils from '../../components/_inputs/multi-select/utils'\nimport DateInputUtils from '../../components/_inputs/date-input/utils'\nimport { RenderFiltersReturnValue } from '../../components/_async/async-filters-form/types'\nimport {\n DateFilterValue,\n DateRangeFilterValue,\n FilterValue,\n FilterValueWithOptions,\n GranularDateRangeFilterValue,\n MultiselectFilterValue,\n} from '../../components/_filters/types'\nimport { defaultFilterValue } from './types'\nimport { FiltersType } from '../../components/_filters/filtersTypeEnum'\nimport { getRequestParam } from '../indexedAccesHelper'\n\nexport const saveDefaults = async (type: FiltersType, res: Response, req: Request, services: Services) => {\n const defaultValuesForReport = await getDefaultValues(req, res, services, type)\n const { dprUser } = localsHelper.getValues(res)\n const id = getRequestParam({ req, param: 'id' })\n const reportId = getRequestParam({ req, param: 'reportId' })\n const { defaultFilterValuesService } = services\n return defaultFilterValuesService\n ? defaultFilterValuesService.save(dprUser.id, reportId, id, defaultValuesForReport)\n : undefined\n}\n\nexport const removeDefaults = async (type: FiltersType, res: Response, req: Request, services: Services) => {\n const { dprUser } = localsHelper.getValues(res)\n const { reportId, id } = req.params\n const { defaultFilterValuesService } = services\n return defaultFilterValuesService ? defaultFilterValuesService.delete(dprUser.id, reportId, id, type) : undefined\n}\n\nconst getDefaultValues = async (\n req: Request,\n res: Response,\n services: Services,\n filtersType: FiltersType,\n): Promise<defaultFilterValue[]> => {\n const { token, definitionsPath } = localsHelper.getValues(res)\n const { reportId, id, type } = req.params\n\n let definition: components['schemas']['SingleVariantReportDefinition'] | components['schemas']['DashboardDefinition']\n let fields = []\n if (type === ReportType.REPORT) {\n definition = await services.reportingService.getDefinition(token, reportId, id, definitionsPath)\n fields = definition.variant.specification?.fields || []\n } else {\n definition = await services.dashboardService.getDefinition(token, reportId, id, definitionsPath)\n fields = definition.filterFields || []\n }\n\n const bodyFilterValues = Object.keys(req.body)\n .filter((k) => {\n return k.includes('filters.') || k.includes('sortColumn') || k.includes('sortedAsc')\n })\n .map((k) => {\n return { name: k.replace('filters.', ''), value: req.body[k] }\n })\n .map((k) => {\n const n = k.name.split('.')[0]\n const field = fields.find((f) => f.name === n)\n let { value, name } = k\n\n if (field) {\n const filterType = field.filter?.type.toLocaleLowerCase()\n\n switch (filterType) {\n case FilterType.multiselect.toLocaleLowerCase():\n value = Array.isArray(k.value) ? k.value.join(',') : k.value\n break\n\n case FilterType.dateRange.toLocaleLowerCase():\n ;({ value, name } = DateRangeInputUtils.setDefaultValue(req, name))\n break\n\n case FilterType.granularDateRange.toLocaleLowerCase():\n ;({ name, value } = GranularDateRangeInputUtils.setDefaultValue(req, name))\n break\n\n default:\n break\n }\n }\n\n return {\n name,\n value,\n type: filtersType,\n }\n })\n\n const defaultValuesConfig = Array.from(new Set(bodyFilterValues.map((a) => a.name)))\n .map((name) => {\n return bodyFilterValues.find((a) => a.name === name)\n })\n .filter((c) => c !== undefined)\n\n const result = defaultValuesConfig.filter((defaultValue) => {\n return defaultValue ? defaultValue.value !== '' : false\n })\n\n return result\n}\n\nexport const setFilterValuesFromSavedDefaults = (\n filters: FilterValue[],\n sortBy: FilterValue[],\n defaultValues: defaultFilterValue[],\n): RenderFiltersReturnValue => {\n const hasDefaults = filters.some((f) => {\n const defaultValue = defaultValues.findIndex((v) => v.name === f.name)\n return defaultValue !== -1\n })\n\n const filterValues = filters.map((filter) => {\n const defaultValue = defaultValues.find((v) => v.name === filter.name)\n let updatedFilter = {\n ...filter,\n }\n const type = filter.type.toLocaleLowerCase()\n\n switch (type) {\n case FilterType.multiselect.toLocaleLowerCase():\n updatedFilter = MultiSelectUtils.setFilterValuesFromSavedDefault(\n <MultiselectFilterValue>updatedFilter,\n hasDefaults,\n defaultValue,\n )\n break\n case FilterType.date.toLocaleLowerCase():\n if (hasDefaults) {\n updatedFilter.value = ''\n }\n if (defaultValue) {\n updatedFilter = <DateFilterValue>DateInputUtils.setFilterValueFromDefault(defaultValue, updatedFilter)\n }\n break\n case FilterType.dateRange.toLocaleLowerCase():\n if (hasDefaults) {\n updatedFilter.value = { start: '', end: '', relative: undefined }\n }\n if (defaultValue) {\n updatedFilter = <DateRangeFilterValue>(\n DateRangeInputUtils.setFilterValueFromDefault(defaultValue, updatedFilter)\n )\n }\n break\n case FilterType.granularDateRange.toLocaleLowerCase():\n if (hasDefaults) {\n updatedFilter.value = { start: '', end: '', granularity: undefined, quickFilter: undefined }\n }\n if (defaultValue) {\n updatedFilter = <GranularDateRangeFilterValue>(\n GranularDateRangeInputUtils.setFilterValueFromDefault(defaultValue, updatedFilter)\n )\n }\n break\n default:\n {\n let value = hasDefaults ? '' : updatedFilter.value\n value = defaultValue ? defaultValue.value : value\n updatedFilter = {\n ...filter,\n value,\n }\n }\n\n break\n }\n\n return updatedFilter\n })\n\n const sortValues = sortBy.map((sortFilter) => {\n const defaultValue = defaultValues.find((v) => v.name === sortFilter.name)\n return {\n ...sortFilter,\n ...(defaultValue && { value: defaultValue.value }),\n }\n })\n\n return {\n filters: filterValues,\n sortBy: sortValues,\n }\n}\n\nexport const setUserContextDefaults = (res: Response, filters: FilterValue[]) => {\n const { dprUser } = localsHelper.getValues(res)\n const { activeCaseLoadId } = dprUser\n\n filters.forEach((filter) => {\n if (\n filter.type.toLocaleLowerCase() === FilterType.autocomplete.toLocaleLowerCase() &&\n filter.text.toLocaleLowerCase().includes('establishment') &&\n activeCaseLoadId?.length\n ) {\n const f = <FilterValueWithOptions>filter\n const option = f.options.find((opt) => opt.value === activeCaseLoadId)\n\n if (option) {\n f.value = option.text\n f.staticOptionNameValue = activeCaseLoadId\n }\n }\n })\n\n return filters\n}\n\nexport default { saveDefaults, removeDefaults, setFilterValuesFromSavedDefaults, setUserContextDefaults }\n"],
5
+ "mappings": "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",
6
+ "names": ["personalisationUtils_exports", "__export", "personalisationUtils_default", "removeDefaults", "saveDefaults", "setFilterValuesFromSavedDefaults", "setUserContextDefaults", "__toCommonJS", "import_localsHelper", "import_UserReports", "import_enum", "import_utils", "import_indexedAccesHelper", "type", "res", "req", "services", "defaultValuesForReport", "getDefaultValues", "dprUser", "localsHelper", "id", "reportId", "defaultFilterValuesService", "filtersType", "token", "definitionsPath", "definition", "fields", "bodyFilterValues", "k", "n", "field", "f", "value", "name", "DateRangeInputUtils", "GranularDateRangeInputUtils", "a", "c", "defaultValue", "filters", "sortBy", "defaultValues", "hasDefaults", "v", "filterValues", "filter", "updatedFilter", "MultiSelectUtils", "DateInputUtils", "sortValues", "sortFilter", "activeCaseLoadId", "option", "opt"]
7
7
  }