@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.20.1 → 4.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dpr/components/_async/async-filters-form/types.d.js +1 -1
  2. package/dpr/components/_async/async-filters-form/types.d.js.map +1 -1
  3. package/dpr/components/_async/async-filters-form/types.d.ts +7 -4
  4. package/dpr/components/_async/async-filters-form/utils.js +1 -1
  5. package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
  6. package/dpr/components/_async/async-filters-form/utils.ts +18 -17
  7. package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -1
  8. package/dpr/components/_charts/chart/Chart.js +2 -0
  9. package/dpr/components/_charts/chart/Chart.js.map +7 -0
  10. package/dpr/components/_charts/chart/Chart.ts +89 -0
  11. package/dpr/components/_charts/chart/ChartColours.js +2 -0
  12. package/dpr/components/_charts/chart/ChartColours.js.map +7 -0
  13. package/dpr/components/_charts/chart/ChartColours.ts +36 -0
  14. package/dpr/components/_charts/chart/ChartTimeseries.js +2 -0
  15. package/dpr/components/_charts/chart/ChartTimeseries.js.map +7 -0
  16. package/dpr/components/_charts/chart/ChartTimeseries.ts +95 -0
  17. package/dpr/components/_charts/chart/bar/BarChart.js +2 -0
  18. package/dpr/components/_charts/chart/bar/BarChart.js.map +7 -0
  19. package/dpr/components/_charts/chart/bar/BarChart.ts +204 -0
  20. package/dpr/components/_charts/chart/bar/clientClass.mjs +0 -58
  21. package/dpr/components/_charts/chart/bar/types.js +2 -0
  22. package/dpr/components/_charts/chart/bar/types.js.map +7 -0
  23. package/dpr/components/_charts/chart/bar/types.ts +6 -0
  24. package/dpr/components/_charts/chart/bar/validate.js +2 -0
  25. package/dpr/components/_charts/chart/bar/validate.js.map +7 -0
  26. package/dpr/components/_charts/chart/bar/validate.ts +59 -0
  27. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js +2 -0
  28. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +7 -0
  29. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.ts +57 -0
  30. package/dpr/components/_charts/chart/bar-timeseries/types.js +2 -0
  31. package/dpr/components/_charts/chart/bar-timeseries/types.js.map +7 -0
  32. package/dpr/components/_charts/chart/bar-timeseries/types.ts +5 -0
  33. package/dpr/components/_charts/chart/bar-timeseries/validate.js +2 -0
  34. package/dpr/components/_charts/chart/bar-timeseries/validate.js.map +7 -0
  35. package/dpr/components/_charts/chart/bar-timeseries/validate.ts +30 -0
  36. package/dpr/components/_charts/chart/buckets/Buckets.js +2 -0
  37. package/dpr/components/_charts/chart/buckets/Buckets.js.map +7 -0
  38. package/dpr/components/_charts/chart/{Buckets.ts → buckets/Buckets.ts} +18 -14
  39. package/dpr/components/_charts/chart/buckets/types.js +2 -0
  40. package/dpr/components/_charts/chart/buckets/types.js.map +7 -0
  41. package/dpr/components/_charts/chart/buckets/types.ts +4 -0
  42. package/dpr/components/_charts/chart/buckets/validate.js +2 -0
  43. package/dpr/components/_charts/chart/buckets/validate.js.map +7 -0
  44. package/dpr/components/_charts/chart/buckets/validate.ts +15 -0
  45. package/dpr/components/_charts/chart/chart-config.js +2 -0
  46. package/dpr/components/_charts/chart/chart-config.js.map +7 -0
  47. package/dpr/components/_charts/chart/chart-config.ts +108 -0
  48. package/dpr/components/_charts/chart/clientClass.mjs +28 -106
  49. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js +2 -0
  50. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +7 -0
  51. package/dpr/components/_charts/chart/doughnut/DoughnutChart.ts +77 -0
  52. package/dpr/components/_charts/chart/doughnut/clientClass.mjs +0 -45
  53. package/dpr/components/_charts/chart/doughnut/types.js +2 -0
  54. package/dpr/components/_charts/chart/doughnut/types.js.map +7 -0
  55. package/dpr/components/_charts/chart/doughnut/types.ts +5 -0
  56. package/dpr/components/_charts/chart/doughnut/validate.js +2 -0
  57. package/dpr/components/_charts/chart/doughnut/validate.js.map +7 -0
  58. package/dpr/components/_charts/chart/doughnut/validate.ts +30 -0
  59. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
  60. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
  61. package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +122 -44
  62. package/dpr/components/_charts/chart/heatmap/clientClass.mjs +7 -89
  63. package/dpr/components/_charts/chart/heatmap/types.js +1 -1
  64. package/dpr/components/_charts/chart/heatmap/types.js.map +1 -1
  65. package/dpr/components/_charts/chart/heatmap/types.ts +5 -0
  66. package/dpr/components/_charts/chart/heatmap/validate.js +2 -0
  67. package/dpr/components/_charts/chart/heatmap/validate.js.map +7 -0
  68. package/dpr/components/_charts/chart/heatmap/validate.ts +25 -0
  69. package/dpr/components/_charts/chart/line/LineChart.js +2 -0
  70. package/dpr/components/_charts/chart/line/LineChart.js.map +7 -0
  71. package/dpr/components/_charts/chart/line/LineChart.ts +89 -0
  72. package/dpr/components/_charts/chart/line/clientClass.mjs +5 -36
  73. package/dpr/components/_charts/chart/line/types.js +2 -0
  74. package/dpr/components/_charts/chart/line/types.js.map +7 -0
  75. package/dpr/components/_charts/chart/line/types.ts +5 -0
  76. package/dpr/components/_charts/chart/line/validate.js +2 -0
  77. package/dpr/components/_charts/chart/line/validate.js.map +7 -0
  78. package/dpr/components/_charts/chart/line/validate.ts +30 -0
  79. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js +2 -0
  80. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +7 -0
  81. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.ts +57 -0
  82. package/dpr/components/_charts/chart/line-timeseries/types.js +2 -0
  83. package/dpr/components/_charts/chart/line-timeseries/types.js.map +7 -0
  84. package/dpr/components/_charts/chart/line-timeseries/types.ts +5 -0
  85. package/dpr/components/_charts/chart/line-timeseries/validate.js +2 -0
  86. package/dpr/components/_charts/chart/line-timeseries/validate.js.map +7 -0
  87. package/dpr/components/_charts/chart/line-timeseries/validate.ts +30 -0
  88. package/dpr/components/_charts/chart/view.njk +8 -1
  89. package/dpr/components/_charts/chart-tabs/view.njk +15 -14
  90. package/dpr/components/_charts/utils.js +1 -1
  91. package/dpr/components/_charts/utils.js.map +3 -3
  92. package/dpr/components/_charts/utils.test.ts +9 -3
  93. package/dpr/components/_charts/utils.ts +59 -193
  94. package/dpr/components/_dashboards/dashboard-list/types.js +2 -0
  95. package/dpr/components/_dashboards/dashboard-list/types.js.map +7 -0
  96. package/dpr/components/_dashboards/dashboard-list/types.ts +4 -0
  97. package/dpr/components/_dashboards/dashboard-list/validate.js +2 -0
  98. package/dpr/components/_dashboards/dashboard-list/validate.js.map +7 -0
  99. package/dpr/components/_dashboards/dashboard-list/validate.ts +28 -0
  100. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js +2 -0
  101. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js.map +7 -0
  102. package/dpr/components/_dashboards/dashboard-visualisation/Validate.ts +71 -0
  103. package/dpr/components/_dashboards/dashboard-visualisation/types.js +1 -1
  104. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
  105. package/dpr/components/_dashboards/dashboard-visualisation/types.ts +32 -2
  106. package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
  107. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +3 -3
  108. package/dpr/components/_dashboards/scorecard/Scorecard.ts +82 -213
  109. package/dpr/components/_dashboards/scorecard/types.js +1 -1
  110. package/dpr/components/_dashboards/scorecard/types.js.map +1 -1
  111. package/dpr/components/_dashboards/scorecard/types.ts +11 -1
  112. package/dpr/components/_dashboards/scorecard/validate.js +2 -0
  113. package/dpr/components/_dashboards/scorecard/validate.js.map +7 -0
  114. package/dpr/components/_dashboards/scorecard/validate.ts +36 -0
  115. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js +2 -0
  116. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +7 -0
  117. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.ts +228 -0
  118. package/dpr/components/_dashboards/scorecard-group/types.js +2 -0
  119. package/dpr/components/_dashboards/scorecard-group/types.js.map +7 -0
  120. package/dpr/components/_dashboards/scorecard-group/types.ts +5 -0
  121. package/dpr/components/_dashboards/scorecard-group/validate.js +2 -0
  122. package/dpr/components/_dashboards/scorecard-group/validate.js.map +7 -0
  123. package/dpr/components/_dashboards/scorecard-group/validate.ts +37 -0
  124. package/dpr/components/_filters/filter-input/types.d.js.map +1 -1
  125. package/dpr/components/_filters/filter-input/types.d.ts +1 -1
  126. package/dpr/components/_filters/types.d.js.map +1 -1
  127. package/dpr/components/_filters/types.d.ts +6 -4
  128. package/dpr/components/_reports/report-actions/types.d.js.map +1 -1
  129. package/dpr/components/_reports/report-actions/types.d.ts +1 -1
  130. package/dpr/components/report-list/types.d.js.map +1 -1
  131. package/dpr/components/report-list/types.d.ts +1 -1
  132. package/dpr/data/types.d.js +1 -1
  133. package/dpr/data/types.d.js.map +1 -1
  134. package/dpr/data/types.d.ts +2 -1
  135. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  136. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
  137. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +22 -10
  138. package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
  139. package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
  140. package/dpr/routes/journeys/view-report/async/report/utils.ts +1 -1
  141. package/dpr/routes/journeys/view-report/controller.js +1 -1
  142. package/dpr/routes/journeys/view-report/controller.js.map +3 -3
  143. package/dpr/routes/journeys/view-report/controller.ts +3 -1
  144. package/dpr/types/Services.d.js +1 -1
  145. package/dpr/types/Services.d.js.map +1 -1
  146. package/dpr/types/Services.d.ts +0 -2
  147. package/dpr/utils/DataTableBuilder/types.d.js +1 -1
  148. package/dpr/utils/DataTableBuilder/types.d.js.map +1 -1
  149. package/dpr/utils/DataTableBuilder/types.d.ts +2 -2
  150. package/dpr/utils/ErrorHandler.js +1 -1
  151. package/dpr/utils/ErrorHandler.js.map +3 -3
  152. package/dpr/utils/ErrorHandler.ts +16 -0
  153. package/dpr/utils/ParentChildDataTableBuilder/types.d.js +1 -1
  154. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +1 -1
  155. package/dpr/utils/ParentChildDataTableBuilder/types.d.ts +1 -0
  156. package/dpr/utils/Personalisation/types.d.js +1 -1
  157. package/dpr/utils/Personalisation/types.d.js.map +1 -1
  158. package/dpr/utils/Personalisation/types.d.ts +1 -0
  159. package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
  160. package/dpr/utils/UserStoreItemBuilder.ts +1 -1
  161. package/package.json +1 -1
  162. package/dpr/components/_charts/chart/Buckets.js +0 -2
  163. package/dpr/components/_charts/chart/Buckets.js.map +0 -7
  164. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +0 -2
  165. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +0 -7
  166. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +0 -40
@@ -20,11 +20,13 @@ import DashboardListUtils from '../../../../../components/_dashboards/dashboard-
20
20
  import FilterUtils from '../../../../../components/_filters/utils'
21
21
  import ScorecardsUtils from '../../../../../components/_dashboards/scorecard/utils'
22
22
  import ScorecardVisualisation from '../../../../../components/_dashboards/scorecard/Scorecard'
23
+ import ScorecardGroupVisualisation from '../../../../../components/_dashboards/scorecard-group/ScorecardGroup'
23
24
  import ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'
24
25
  import ReportQuery from '../../../../../types/ReportQuery'
25
26
  import LocalsHelper from '../../../../../utils/localsHelper'
26
- import { FilterValue } from '../../../../../components/_filters/types'
27
+ import { FilterValue, GranularDateRangeFilterValue, PartialDate } from '../../../../../components/_filters/types'
27
28
  import { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'
29
+ import { FilterType } from '../../../../../components/_filters/filter-input/enum'
28
30
 
29
31
  const setDashboardActions = (
30
32
  dashboardDefinition: components['schemas']['DashboardDefinition'],
@@ -123,6 +125,7 @@ const getSections = (
123
125
  dashboardDefinition: components['schemas']['DashboardDefinition'],
124
126
  dashboardData: DashboardDataResponse[],
125
127
  query: Record<string, string | string[]>,
128
+ partialDate?: PartialDate,
126
129
  ): DashboardSection[] => {
127
130
  return dashboardDefinition.sections.map((section: components['schemas']['DashboardSectionDefinition']) => {
128
131
  const { id, display: title, description } = section
@@ -141,26 +144,23 @@ const getSections = (
141
144
 
142
145
  case DashboardVisualisationType.SCORECARD:
143
146
  hasScorecard = true
144
- data = new ScorecardVisualisation(dashboardData, visDefinition).build()
147
+ data = new ScorecardVisualisation().withDefinition(visDefinition).withData(dashboardData).build()
145
148
  break
146
149
 
147
150
  case DashboardVisualisationType.SCORECARD_GROUP:
148
- data = new ScorecardVisualisation(dashboardData, visDefinition, true).build()
151
+ data = new ScorecardGroupVisualisation().withDefinition(visDefinition).withData(dashboardData).build()
149
152
  break
150
153
 
151
154
  case DashboardVisualisationType.BAR:
152
155
  case DashboardVisualisationType.LINE:
153
156
  case DashboardVisualisationType.DONUT: {
154
- data = ChartUtils.createChart(visDefinition, dashboardData)
155
- break
156
- }
157
- case DashboardVisualisationType.MATRIX_TIMESERIES: {
158
- data = ChartUtils.createMatrixChart(visDefinition, dashboardData, query)
157
+ data = ChartUtils.createChart(visDefinition, dashboardData, type)
159
158
  break
160
159
  }
160
+ case DashboardVisualisationType.MATRIX_TIMESERIES:
161
161
  case DashboardVisualisationType.BAR_TIMESERIES:
162
162
  case DashboardVisualisationType.LINE_TIMESERIES: {
163
- data = ChartUtils.createTimeseriesCharts(visDefinition, dashboardData)
163
+ data = ChartUtils.createTimeseriesCharts(visDefinition, dashboardData, type, query, partialDate)
164
164
  break
165
165
  }
166
166
  default:
@@ -208,6 +208,17 @@ const updateStore = async (
208
208
  return dashboardRequestData
209
209
  }
210
210
 
211
+ const getPartialDate = (filters: FilterValue[]) => {
212
+ let partialDate: PartialDate | undefined
213
+ const granularDateRangeFilter = <GranularDateRangeFilterValue | undefined>(
214
+ filters.find((f) => f.type === FilterType.granularDateRange.toLowerCase())
215
+ )
216
+ if (granularDateRangeFilter) {
217
+ partialDate = granularDateRangeFilter.value.partialDate
218
+ }
219
+ return partialDate
220
+ }
221
+
211
222
  export const renderAsyncDashboard = async ({ req, res, services }: AsyncReportUtilsParams) => {
212
223
  const { token, csrfToken, dprUser, nestedBaseUrl } = LocalsHelper.getValues(res)
213
224
  const { reportId, id, tableId } = req.params
@@ -235,9 +246,10 @@ export const renderAsyncDashboard = async ({ req, res, services }: AsyncReportUt
235
246
  )
236
247
 
237
248
  const flattenedData: DashboardDataResponse[] = dashboardData.flat()
249
+ const partialDate = getPartialDate(filters.filters)
238
250
 
239
251
  // Get the dashboard parts
240
- const sections: DashboardSection[] = getSections(dashboardDefinition, flattenedData, query)
252
+ const sections: DashboardSection[] = getSections(dashboardDefinition, flattenedData, query, partialDate)
241
253
 
242
254
  // Update the store
243
255
  if (requestedReportService) {
@@ -1,2 +1,2 @@
1
- "use strict";var M=Object.create;var v=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Z=(t,e)=>{for(var o in e)v(t,o,{get:e[o],enumerable:!0})},E=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of J(e))!X.call(t,n)&&n!==o&&v(t,n,{get:()=>e[n],enumerable:!(r=G(e,n))||r.enumerable});return t};var R=(t,e,o)=>(o=t!=null?M(K(t)):{},E(e||!t||!t.__esModule?v(o,"default",{value:t,enumerable:!0}):o,t)),$=t=>E(v({},"__esModule",{value:!0}),t);var ut={};Z(ut,{default:()=>pt,getChildData:()=>Y,getData:()=>O,getSummariesData:()=>W,renderReport:()=>_});module.exports=$(ut);var V=R(require("parseurl")),C=require("../../../../../types/UserReports"),T=R(require("../../../../../types/ReportQuery")),x=require("../../../../../components/_filters/filtersTypeEnum"),A=R(require("../../../../../utils/definitionUtils")),k=R(require("../../../../../components/_reports/report-pagination/utils")),F=R(require("../../../../../components/_reports/report-totals/utils")),q=R(require("../../../../../components/_filters/utils")),Q=R(require("../../../../../components/_reports/report-columns-form/utils")),N=R(require("../../../../../components/_reports/report-actions/utils")),B=R(require("../../../../../components/user-reports/utils")),D=R(require("../../../../../utils/localsHelper")),L=R(require("../../../../../components/_reports/report-data-table/utils")),z=R(require("../../../../../utils/CollatedSummaryBuilder/CollatedSummaryBuilder"));const O=async({res:t,req:e,services:o,token:r,userId:n})=>{const{definitionsPath:i}=D.default.getValues(t),{reportId:a,variantId:l,id:c,tableId:d}=e.params,p=l||c,s=await o.requestedReportService.getReportByTableId(d,n),f=s?.query?.data,m=await o.reportingService.getDefinition(r,a,p,i,f),{variant:y}=m,{specification:g}=y;if(!g)throw new Error("No specification found in variant definition");const S=Q.default.getColumns(g,e),w=await tt(m,S,t,e,o,s),U=await et({definition:m,services:o,token:r,req:e,res:t,reportQuery:w}),{summaries:h}=m.variant,I=h?await W(h,o,r,e,t):[],{childVariants:P}=m.variant,b=P?await Y(P,o,r,e,t,s):[];return{definition:m,requestData:s,reportData:U,summariesData:I,childData:b,reportQuery:w,columns:S}},tt=async(t,e,o,r,n,i)=>{const{definitionsPath:a}=D.default.getValues(o),l=A.default.getFields(t),c=A.default.getTemplate(t),d=await q.default.getFilters({fields:l,req:r,filtersType:x.FiltersType.INTERACTIVE,res:o,services:n}),p=r.query?.sortColumn||i?.query?.data?.sortColumn,u=r.query?.sortedAsc||i?.query?.data?.sortedAsc,s=r.query?.selectedPage,f=r.query?.pageSize,m=q.default.setRequestQueryFromFilterValues(d.filters),y={...p&&{sortColumn:p},...u&&{sortedAsc:u},...m,...f&&{pageSize:f},...s&&{selectedPage:s},...e&&{columns:e.value}};return new T.default({fields:l,template:c,queryParams:y,definitionsPath:a})},et=async t=>{const{services:e,token:o,req:r,reportQuery:n}=t,{reportId:i,variantId:a,id:l,tableId:c}=r.params,d=a||l;return e.reportingService.getAsyncReport(o,i,d,c,n.toRecordWithFilterPrefix(!0))},W=async(t,e,o,r,n)=>{const{reportId:i,variantId:a,id:l,tableId:c}=r.params,{definitionsPath:d}=D.default.getValues(n),p=a||l;return Promise.all(t.map(async u=>{const s=await e.reportingService.getAsyncSummaryReport(o,i,p,c,u.id,{dataProductDefinitionsPath:d});return{...u,data:s}}))},Y=async(t,e,o,r,n,i)=>{const{definitionsPath:a}=D.default.getValues(n),{reportId:l}=r.params,c=i?.childExecutionData;if(!c)throw new Error("getChildData: No execution data found for child variants");return Promise.all(t.map(async d=>{const{specification:p}=d;if(!p)throw new Error("getChildData: No specification found in child variant definition");const u=new T.default({fields:p?.fields||[],template:p.template,queryParams:r.query,definitionsPath:a}).toRecordWithFilterPrefix(!0),s=c.find(y=>y.variantId===d.id);if(!s||!s.tableId)throw new Error("getChildData: No matching child execution data found");const{tableId:f}=s,m=await e.reportingService.getAsyncReport(o,l,d.id,f,u);return{id:d.id,data:m}}))},_=async({req:t,res:e,services:o})=>{const{token:r,dprUser:n}=D.default.getValues(e),{definition:i,requestData:a,reportData:l,childData:c,summariesData:d,reportQuery:p,columns:u}=await O({req:t,res:e,services:o,token:r,userId:n.id}),s=L.default.createDataTable(i,u,l,c,d,p),f=await ot(t,e,o,i,d,s,u,p,a),m={...f,dataTable:s};return a&&Object.keys(a).length&&B.default.updateLastViewed({req:t,services:o,reportStateData:a,userId:n.id,filters:f.filterData.filters}),{renderData:m}},ot=async(t,e,o,r,n,i,a,l,c)=>{const{nestedBaseUrl:d}=D.default.getValues(e),p=(0,V.default)(t);if(!p)throw new Error("Unable to set url data from request");const u=p?nt(p,t):void 0,s=ct(r),{fields:f,specification:m}=s,y=c?lt(c):void 0,g=await st(r,o,e,t,l),S=await q.default.getFilters({fields:f,req:t,res:e,services:o,filtersType:x.FiltersType.INTERACTIVE}),w=await it(o,e,t,a,s,y,u),U=at(e,t);let h;n.length&&(h=new z.default(m,n).collatePageSummaries());let I,P;if(s.template==="list"){I=k.default.getPaginationData(p,g,t);const{pageSize:b,currentPage:j,totalRows:H}=I;P=F.default.getTotals(b,j,H,i[0].rowCount)}return{...rt(m)&&{columns:a},filterData:S,count:g,nestedBaseUrl:d,...U,...w,...s,...y,...u,...I&&{pagination:I},...P&&{totals:P},...h&&{reportSummaries:h}}},rt=t=>{const{template:e}=t;return!["row-section","row-section-child","summary","summary-section"].includes(e)},at=(t,e)=>{const{csrfToken:o}=D.default.getValues(t),{tableId:r,reportId:n,id:i}=e.params;return{csrfToken:o,loadType:C.LoadType.ASYNC,type:C.ReportType.REPORT,tableId:r,reportId:n,id:i}},nt=(t,e)=>{const{search:o}=t,r=o?encodeURIComponent(o):void 0,n=o?e.originalUrl.split(o)[0]:e.originalUrl;return{reportUrl:n.replace("/download-disabled","").replace("/download-disabled?",""),reportSearch:o||void 0,encodedSearch:r,pathname:n}},it=async(t,e,o,r,n,i,a)=>{const{csrfToken:l,dprUser:c,bookmarkingEnabled:d,downloadingEnabled:p}=D.default.getValues(e),{reportId:u,id:s}=o.params,{downloadPermissionService:f,bookmarkService:m}=t;let y=!1;p&&(y=await f.downloadEnabledForReport(c.id,u,s));let g;return d&&(g=await m.isBookmarked(s,u,c.id)),{actions:dt(l,r,y,e,o,n,i,a),canDownload:y,bookmarked:g}},st=async(t,e,o,r,n)=>{const{token:i}=D.default.getValues(o),{tableId:a,reportId:l,id:c}=r.params;return t.variant.interactive?e.reportingService.getAsyncInteractiveCount(i,a,l,c,n):e.reportingService.getAsyncCount(i,a)},ct=t=>{const{variant:e,name:o,description:r}=t,{classification:n,printable:i,specification:a,name:l,description:c}=e;if(!a)throw new Error("No specification found in variant definition");const{template:d,fields:p}=a;return{reportName:o,name:l,description:c||r,classification:n,printable:!!i,specification:a,template:d,fields:p}},lt=t=>{const{query:e,url:o,timestamp:r}=t;return{executionId:t.executionId,requestedTimestamp:r.requested?new Date(r.requested).toLocaleString():void 0,querySummary:e?.summary||[],queryData:e?.data,requestUrl:o?.request,defaultQuery:o?.report?.default,dataProductDefinitionsPath:t.dataProductDefinitionsPath}},dt=(t,e,o,r,n,i,a,l)=>{const{reportName:c,name:d,printable:p}=i,{tableId:u,id:s,reportId:f}=n.params,{nestedBaseUrl:m,definitionsPath:y,downloadingEnabled:g}=D.default.getValues(r);let S;l&&g&&(S={enabled:g,name:d,reportName:c,csrfToken:t,reportId:f,id:s,tableId:u,columns:e.value,definitionPath:y,loadType:C.LoadType.ASYNC,nestedBaseUrl:m,canDownload:o,currentUrl:l.pathname,currentQueryParams:l.reportSearch,...a?.queryData&&{sortColumn:a.queryData.sortColumn,sortedAsc:a.queryData.sortedAsc}});let w,U;a?.requestUrl?.fullUrl&&(w={reportName:c,name:d,url:a.requestUrl.fullUrl},U={url:a.requestUrl.fullUrl});let h;return a?.executionId&&a?.requestUrl?.fullUrl&&(h={url:a.requestUrl.fullUrl,executionId:a.executionId}),N.default.getActions({...S&&{download:S},...w&&{share:w},...h&&{refresh:h},...U&&{copy:U},print:{enabled:p}})};var pt={renderReport:_};0&&(module.exports={getChildData,getData,getSummariesData,renderReport});
1
+ "use strict";var M=Object.create;var v=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Z=(t,e)=>{for(var o in e)v(t,o,{get:e[o],enumerable:!0})},E=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of J(e))!X.call(t,n)&&n!==o&&v(t,n,{get:()=>e[n],enumerable:!(r=G(e,n))||r.enumerable});return t};var R=(t,e,o)=>(o=t!=null?M(K(t)):{},E(e||!t||!t.__esModule?v(o,"default",{value:t,enumerable:!0}):o,t)),$=t=>E(v({},"__esModule",{value:!0}),t);var ut={};Z(ut,{default:()=>pt,getChildData:()=>Y,getData:()=>O,getSummariesData:()=>W,renderReport:()=>_});module.exports=$(ut);var V=R(require("parseurl")),C=require("../../../../../types/UserReports"),T=R(require("../../../../../types/ReportQuery")),x=require("../../../../../components/_filters/filtersTypeEnum"),A=R(require("../../../../../utils/definitionUtils")),k=R(require("../../../../../components/_reports/report-pagination/utils")),F=R(require("../../../../../components/_reports/report-totals/utils")),q=R(require("../../../../../components/_filters/utils")),Q=R(require("../../../../../components/_reports/report-columns-form/utils")),N=R(require("../../../../../components/_reports/report-actions/utils")),B=R(require("../../../../../components/user-reports/utils")),h=R(require("../../../../../utils/localsHelper")),L=R(require("../../../../../components/_reports/report-data-table/utils")),z=R(require("../../../../../utils/CollatedSummaryBuilder/CollatedSummaryBuilder"));const O=async({res:t,req:e,services:o,token:r,userId:n})=>{const{definitionsPath:i}=h.default.getValues(t),{reportId:a,variantId:l,id:c,tableId:d}=e.params,p=l||c,s=await o.requestedReportService.getReportByTableId(d,n),f=s?.query?.data,m=await o.reportingService.getDefinition(r,a,p,i,f),{variant:y}=m,{specification:g}=y;if(!g)throw new Error("No specification found in variant definition");const S=Q.default.getColumns(g,e),w=await tt(m,S,t,e,o,s),U=await et({definition:m,services:o,token:r,req:e,res:t,reportQuery:w}),{summaries:D}=m.variant,I=D?await W(D,o,r,e,t):[],{childVariants:P}=m.variant,b=P?await Y(P,o,r,e,t,s):[];return{definition:m,requestData:s,reportData:U,summariesData:I,childData:b,reportQuery:w,columns:S}},tt=async(t,e,o,r,n,i)=>{const{definitionsPath:a}=h.default.getValues(o),l=A.default.getFields(t),c=A.default.getTemplate(t),d=await q.default.getFilters({fields:l,req:r,filtersType:x.FiltersType.INTERACTIVE,res:o,services:n}),p=r.query?.sortColumn||i?.query?.data?.sortColumn,u=r.query?.sortedAsc||i?.query?.data?.sortedAsc,s=r.query?.selectedPage,f=r.query?.pageSize,m=q.default.setRequestQueryFromFilterValues(d.filters),y={...p&&{sortColumn:p},...u&&{sortedAsc:u},...m,...f&&{pageSize:f},...s&&{selectedPage:s},...e&&{columns:e.value}};return new T.default({fields:l,template:c,queryParams:y,definitionsPath:a})},et=async t=>{const{services:e,token:o,req:r,reportQuery:n}=t,{reportId:i,variantId:a,id:l,tableId:c}=r.params,d=a||l;return e.reportingService.getAsyncReport(o,i,d,c,n.toRecordWithFilterPrefix(!0))},W=async(t,e,o,r,n)=>{const{reportId:i,variantId:a,id:l,tableId:c}=r.params,{definitionsPath:d}=h.default.getValues(n),p=a||l;return Promise.all(t.map(async u=>{const s=await e.reportingService.getAsyncSummaryReport(o,i,p,c,u.id,{dataProductDefinitionsPath:d});return{...u,data:s}}))},Y=async(t,e,o,r,n,i)=>{const{definitionsPath:a}=h.default.getValues(n),{reportId:l}=r.params,c=i?.childExecutionData;if(!c)throw new Error("getChildData: No execution data found for child variants");return Promise.all(t.map(async d=>{const{specification:p}=d;if(!p)throw new Error("getChildData: No specification found in child variant definition");const u=new T.default({fields:p?.fields||[],template:"parent-child",queryParams:r.query,definitionsPath:a}).toRecordWithFilterPrefix(!0),s=c.find(y=>y.variantId===d.id);if(!s||!s.tableId)throw new Error("getChildData: No matching child execution data found");const{tableId:f}=s,m=await e.reportingService.getAsyncReport(o,l,d.id,f,u);return{id:d.id,data:m}}))},_=async({req:t,res:e,services:o})=>{const{token:r,dprUser:n}=h.default.getValues(e),{definition:i,requestData:a,reportData:l,childData:c,summariesData:d,reportQuery:p,columns:u}=await O({req:t,res:e,services:o,token:r,userId:n.id}),s=L.default.createDataTable(i,u,l,c,d,p),f=await ot(t,e,o,i,d,s,u,p,a),m={...f,dataTable:s};return a&&Object.keys(a).length&&B.default.updateLastViewed({req:t,services:o,reportStateData:a,userId:n.id,filters:f.filterData.filters}),{renderData:m}},ot=async(t,e,o,r,n,i,a,l,c)=>{const{nestedBaseUrl:d}=h.default.getValues(e),p=(0,V.default)(t);if(!p)throw new Error("Unable to set url data from request");const u=p?nt(p,t):void 0,s=ct(r),{fields:f,specification:m}=s,y=c?lt(c):void 0,g=await st(r,o,e,t,l),S=await q.default.getFilters({fields:f,req:t,res:e,services:o,filtersType:x.FiltersType.INTERACTIVE}),w=await it(o,e,t,a,s,y,u),U=at(e,t);let D;n.length&&(D=new z.default(m,n).collatePageSummaries());let I,P;if(s.template==="list"){I=k.default.getPaginationData(p,g,t);const{pageSize:b,currentPage:j,totalRows:H}=I;P=F.default.getTotals(b,j,H,i[0].rowCount)}return{...rt(m)&&{columns:a},filterData:S,count:g,nestedBaseUrl:d,...U,...w,...s,...y,...u,...I&&{pagination:I},...P&&{totals:P},...D&&{reportSummaries:D}}},rt=t=>{const{template:e}=t;return!["row-section","row-section-child","summary","summary-section"].includes(e)},at=(t,e)=>{const{csrfToken:o}=h.default.getValues(t),{tableId:r,reportId:n,id:i}=e.params;return{csrfToken:o,loadType:C.LoadType.ASYNC,type:C.ReportType.REPORT,tableId:r,reportId:n,id:i}},nt=(t,e)=>{const{search:o}=t,r=o?encodeURIComponent(o):void 0,n=o?e.originalUrl.split(o)[0]:e.originalUrl;return{reportUrl:n.replace("/download-disabled","").replace("/download-disabled?",""),reportSearch:o||void 0,encodedSearch:r,pathname:n}},it=async(t,e,o,r,n,i,a)=>{const{csrfToken:l,dprUser:c,bookmarkingEnabled:d,downloadingEnabled:p}=h.default.getValues(e),{reportId:u,id:s}=o.params,{downloadPermissionService:f,bookmarkService:m}=t;let y=!1;p&&(y=await f.downloadEnabledForReport(c.id,u,s));let g;return d&&(g=await m.isBookmarked(s,u,c.id)),{actions:dt(l,r,y,e,o,n,i,a),canDownload:y,bookmarked:g}},st=async(t,e,o,r,n)=>{const{token:i}=h.default.getValues(o),{tableId:a,reportId:l,id:c}=r.params;return t.variant.interactive?e.reportingService.getAsyncInteractiveCount(i,a,l,c,n):e.reportingService.getAsyncCount(i,a)},ct=t=>{const{variant:e,name:o,description:r}=t,{classification:n,printable:i,specification:a,name:l,description:c}=e;if(!a)throw new Error("No specification found in variant definition");const{template:d,fields:p}=a;return{reportName:o,name:l,description:c||r,classification:n,printable:!!i,specification:a,template:d,fields:p}},lt=t=>{const{query:e,url:o,timestamp:r}=t;return{executionId:t.executionId,requestedTimestamp:r.requested?new Date(r.requested).toLocaleString():void 0,querySummary:e?.summary||[],queryData:e?.data,requestUrl:o?.request,defaultQuery:o?.report?.default,dataProductDefinitionsPath:t.dataProductDefinitionsPath}},dt=(t,e,o,r,n,i,a,l)=>{const{reportName:c,name:d,printable:p}=i,{tableId:u,id:s,reportId:f}=n.params,{nestedBaseUrl:m,definitionsPath:y,downloadingEnabled:g}=h.default.getValues(r);let S;l&&g&&(S={enabled:g,name:d,reportName:c,csrfToken:t,reportId:f,id:s,tableId:u,columns:e.value,definitionPath:y,loadType:C.LoadType.ASYNC,nestedBaseUrl:m,canDownload:o,currentUrl:l.pathname,currentQueryParams:l.reportSearch,...a?.queryData&&{sortColumn:a.queryData.sortColumn,sortedAsc:a.queryData.sortedAsc}});let w,U;a?.requestUrl?.fullUrl&&(w={reportName:c,name:d,url:a.requestUrl.fullUrl},U={url:a.requestUrl.fullUrl});let D;return a?.executionId&&a?.requestUrl?.fullUrl&&(D={url:a.requestUrl.fullUrl,executionId:a.executionId}),N.default.getActions({...S&&{download:S},...w&&{share:w},...D&&{refresh:D},...U&&{copy:U},print:{enabled:p}})};var pt={renderReport:_};0&&(module.exports={getChildData,getData,getSummariesData,renderReport});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/dpr/routes/journeys/view-report/async/report/utils.ts"],
4
- "sourcesContent": ["import parseUrl from 'parseurl'\nimport { Url } from 'url'\nimport { Request, Response } from 'express'\n\n// Types\nimport type { Columns } from '../../../../../components/_reports/report-columns-form/types'\nimport type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils'\nimport type { DataTable } from '../../../../../utils/DataTableBuilder/types'\nimport type { components } from '../../../../../types/api'\nimport type { AsyncSummary, RequestedReport } from '../../../../../types/UserReports'\nimport { LoadType, ReportType } from '../../../../../types/UserReports'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport type { ChildData } from '../../../../../utils/ParentChildDataTableBuilder/types'\nimport type { ExtractedDefinitionData, ExtractedRequestData, ReportUrls } from './types'\nimport type { DownloadActionParams } from '../../../../../components/_reports/report-actions/types'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\nimport type { Services } from '../../../../../types/Services'\n\n// Utils\nimport definitionUtils from '../../../../../utils/definitionUtils'\nimport PaginationUtils from '../../../../../components/_reports/report-pagination/utils'\nimport TotalsUtils from '../../../../../components/_reports/report-totals/utils'\nimport ReportFiltersUtils from '../../../../../components/_filters/utils'\nimport ColumnUtils from '../../../../../components/_reports/report-columns-form/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport UserReportsUtils from '../../../../../components/user-reports/utils'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport DataTableUtils from '../../../../../components/_reports/report-data-table/utils'\nimport RequestedReportService from '../../../my-reports/requested-reports/service'\n\nimport CollatedSummaryBuilder from '../../../../../utils/CollatedSummaryBuilder/CollatedSummaryBuilder'\n\nexport const getData = async ({\n res,\n req,\n services,\n token,\n userId,\n}: AsyncReportUtilsParams & { token: string; userId: string }) => {\n const { definitionsPath: definitionPath } = LocalsHelper.getValues(res)\n const { reportId, variantId, id, tableId } = req.params\n const reportVariantId = variantId || id\n\n // Get the request data\n const requestedReportService = <RequestedReportService>services.requestedReportService\n const requestData: RequestedReport | undefined = await requestedReportService.getReportByTableId(tableId, userId)\n const queryData = requestData?.query?.data\n\n // Get the definition\n const definition: components['schemas']['SingleVariantReportDefinition'] =\n await services.reportingService.getDefinition(token, reportId, reportVariantId, definitionPath, queryData)\n const { variant } = definition\n const { specification } = variant\n\n if (!specification) {\n throw new Error('No specification found in variant definition')\n }\n\n // Get the columns\n const columns = ColumnUtils.getColumns(specification, req)\n\n // initialise report query\n const reportQuery = await initReportQuery(definition, columns, res, req, services, requestData)\n\n // Get the reportData\n const reportData = await getReportData({ definition, services, token, req, res, reportQuery })\n\n // Get the summary data, if applicable\n const { summaries } = definition.variant\n const summariesData = !summaries ? [] : await getSummariesData(summaries, services, token, req, res)\n\n // Get the child data, if applicable\n const { childVariants } = definition.variant\n const childData: ChildData[] = !childVariants\n ? []\n : await getChildData(childVariants, services, token, req, res, requestData)\n\n return {\n definition,\n requestData,\n reportData,\n summariesData,\n childData,\n reportQuery,\n columns,\n }\n}\n\nconst initReportQuery = async (\n definition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n res: Response,\n req: Request,\n services: Services,\n requestData?: RequestedReport,\n) => {\n const { definitionsPath } = LocalsHelper.getValues(res)\n const fields = definitionUtils.getFields(definition)\n const template = definitionUtils.getTemplate(definition)\n\n const filtersData = await ReportFiltersUtils.getFilters({\n fields,\n req,\n filtersType: FiltersType.INTERACTIVE,\n res,\n services,\n })\n\n // Sort\n const sortColumn = req.query?.['sortColumn'] || requestData?.query?.data?.['sortColumn']\n const sortedAsc = req.query?.['sortedAsc'] || requestData?.query?.data?.['sortedAsc']\n\n // Pagination\n const selectedPage = req.query?.['selectedPage']\n const pageSize = req.query?.['pageSize']\n\n // Filters\n const filtersQuery = ReportFiltersUtils.setRequestQueryFromFilterValues(filtersData.filters)\n\n const queryParams = {\n ...(sortColumn && { sortColumn }),\n ...(sortedAsc && { sortedAsc }),\n ...filtersQuery,\n ...(pageSize && { pageSize }),\n ...(selectedPage && { selectedPage }),\n ...(columns && { columns: columns.value }),\n }\n\n return new ReportQuery({\n fields,\n template,\n queryParams,\n definitionsPath,\n })\n}\n\nconst getReportData = async (args: {\n definition: components['schemas']['SingleVariantReportDefinition']\n services: Services\n token: string\n req: Request\n res: Response\n reportQuery: ReportQuery\n}) => {\n const { services, token, req, reportQuery } = args\n const { reportId, variantId, id, tableId } = req.params\n const reportVariantId = variantId || id\n\n return services.reportingService.getAsyncReport(\n token,\n reportId,\n reportVariantId,\n tableId,\n reportQuery.toRecordWithFilterPrefix(true),\n )\n}\n\nexport const getSummariesData = async (\n summaries: components['schemas']['ReportSummary'][],\n services: Services,\n token: string,\n req: Request,\n res: Response,\n): Promise<AsyncSummary[]> => {\n const { reportId, variantId, id, tableId } = req.params\n const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)\n const reportVariantId = variantId || id\n\n return Promise.all(\n summaries.map(async (summary) => {\n const summaryReport = await services.reportingService.getAsyncSummaryReport(\n token,\n reportId,\n reportVariantId,\n tableId,\n summary.id,\n {\n dataProductDefinitionsPath,\n },\n )\n\n return {\n ...summary,\n data: summaryReport,\n }\n }),\n )\n}\n\nexport const getChildData = async (\n childVariants: components['schemas']['ChildVariantDefinition'][],\n services: Services,\n token: string,\n req: Request,\n res: Response,\n requestData?: RequestedReport,\n): Promise<ChildData[]> => {\n const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)\n const { reportId } = req.params\n const childExecutionData = requestData?.childExecutionData\n if (!childExecutionData) {\n throw new Error('getChildData: No execution data found for child variants')\n }\n return Promise.all(\n childVariants.map(async (childVariant) => {\n const { specification } = childVariant\n if (!specification) {\n throw new Error('getChildData: No specification found in child variant definition')\n }\n\n const query = new ReportQuery({\n fields: specification?.fields || [],\n template: specification.template,\n queryParams: req.query,\n definitionsPath: dataProductDefinitionsPath,\n }).toRecordWithFilterPrefix(true)\n\n const childData = childExecutionData.find((e) => e.variantId === childVariant.id)\n if (!childData || !childData.tableId) {\n throw new Error('getChildData: No matching child execution data found')\n }\n const { tableId: childTableId } = childData\n\n const childReport = await services.reportingService.getAsyncReport(\n token,\n reportId,\n childVariant.id,\n childTableId,\n query,\n )\n\n return {\n id: childVariant.id,\n data: childReport,\n }\n }),\n )\n}\n\n/**\n * Entry point function to render the report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const renderReport = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser } = LocalsHelper.getValues(res)\n\n // Get the report data\n const { definition, requestData, reportData, childData, summariesData, reportQuery, columns } = await getData({\n req,\n res,\n services,\n token,\n userId: dprUser.id,\n })\n\n // Get the data table\n const dataTable: DataTable[] = DataTableUtils.createDataTable(\n definition,\n columns,\n reportData,\n childData,\n summariesData,\n reportQuery,\n )\n\n // Get the template data\n const templateData = await getTemplateData(\n req,\n res,\n services,\n definition,\n summariesData,\n dataTable,\n columns,\n reportQuery,\n requestData,\n )\n\n const renderData = {\n ...templateData,\n dataTable,\n }\n\n if (requestData && Object.keys(requestData).length) {\n UserReportsUtils.updateLastViewed({\n req,\n services,\n reportStateData: requestData,\n userId: dprUser.id,\n filters: templateData.filterData.filters,\n })\n }\n\n return { renderData }\n}\n\nconst getTemplateData = async (\n req: Request,\n res: Response,\n services: Services,\n definition: components['schemas']['SingleVariantReportDefinition'],\n summariesData: AsyncSummary[],\n dataTable: DataTable[],\n columns: Columns,\n reportQuery: ReportQuery,\n requestData?: RequestedReport,\n) => {\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n\n // get url data\n const url = parseUrl(req)\n if (!url) {\n throw new Error('Unable to set url data from request')\n }\n\n const urls = url ? setUrls(url, req) : undefined\n\n // get from definition\n const definitionData = extractDataFromDefinition(definition)\n const { fields, specification } = definitionData\n\n // get from requestedData\n const requestedData = requestData ? extractDataFromRequest(requestData) : undefined\n\n // Get the count\n const count = await getCount(definition, services, res, req, reportQuery)\n\n // Get the filters\n const filterData = await ReportFiltersUtils.getFilters({\n fields,\n req,\n res,\n services,\n filtersType: FiltersType.INTERACTIVE,\n })\n\n // Set the features\n const features = await setFeatures(services, res, req, columns, definitionData, requestedData, urls)\n\n // Set the extra meta data\n const meta = setMetaData(res, req)\n\n let reportSummaries\n if (summariesData.length) {\n const collatedSummaryBuilder = new CollatedSummaryBuilder(specification, summariesData)\n reportSummaries = collatedSummaryBuilder.collatePageSummaries()\n }\n\n let pagination\n let totals\n if (definitionData.template === 'list') {\n pagination = PaginationUtils.getPaginationData(url, count, req)\n const { pageSize, currentPage, totalRows } = pagination\n totals = TotalsUtils.getTotals(pageSize, currentPage, totalRows, dataTable[0].rowCount)\n }\n\n return {\n ...(showColumns(specification) && { columns }),\n filterData,\n count,\n nestedBaseUrl,\n ...meta,\n ...features,\n ...definitionData,\n ...requestedData,\n ...urls,\n ...(pagination && { pagination }),\n ...(totals && { totals }),\n ...(reportSummaries && { reportSummaries }),\n }\n}\n\nconst showColumns = (specification: components['schemas']['Specification']) => {\n const { template } = specification\n\n return !['row-section', 'row-section-child', 'summary', 'summary-section'].includes(template)\n}\n\nconst setMetaData = (res: Response, req: Request) => {\n const { csrfToken } = LocalsHelper.getValues(res)\n const { tableId, reportId, id } = req.params\n\n return {\n csrfToken,\n loadType: LoadType.ASYNC,\n type: ReportType.REPORT,\n tableId,\n reportId,\n id,\n }\n}\n\nconst setUrls = (url: Url, req: Request): ReportUrls => {\n const { search } = url\n const encodedSearch = search ? encodeURIComponent(search) : undefined\n const pathname = search ? req.originalUrl.split(search)[0] : req.originalUrl\n const reportUrl = pathname.replace('/download-disabled', '').replace('/download-disabled?', '')\n\n return {\n reportUrl,\n reportSearch: search || undefined,\n encodedSearch,\n pathname,\n }\n}\n\nconst setFeatures = async (\n services: Services,\n res: Response,\n req: Request,\n columns: Columns,\n definitionData: ExtractedDefinitionData,\n requestData?: ExtractedRequestData,\n urls?: ReportUrls,\n) => {\n const { csrfToken, dprUser, bookmarkingEnabled, downloadingEnabled } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const { downloadPermissionService, bookmarkService } = services\n\n let canDownload = false\n if (downloadingEnabled) {\n canDownload = await downloadPermissionService.downloadEnabledForReport(dprUser.id, reportId, id)\n }\n\n let bookmarked\n if (bookmarkingEnabled) {\n bookmarked = await bookmarkService.isBookmarked(id, reportId, dprUser.id)\n }\n\n const actions = setActions(csrfToken, columns, canDownload, res, req, definitionData, requestData, urls)\n\n return {\n actions,\n canDownload,\n bookmarked,\n }\n}\n\nconst getCount = async (\n definition: components['schemas']['SingleVariantReportDefinition'],\n services: Services,\n res: Response,\n req: Request,\n reportQuery: ReportQuery,\n) => {\n const { token } = LocalsHelper.getValues(res)\n const { tableId, reportId, id } = req.params\n\n return !definition.variant.interactive\n ? services.reportingService.getAsyncCount(token, tableId)\n : services.reportingService.getAsyncInteractiveCount(token, tableId, reportId, id, reportQuery)\n}\n\nconst extractDataFromDefinition = (\n definition: components['schemas']['SingleVariantReportDefinition'],\n): ExtractedDefinitionData => {\n const { variant, name: reportName, description: reportDescription } = definition\n const { classification, printable, specification, name, description } = variant\n if (!specification) {\n throw new Error('No specification found in variant definition')\n }\n const { template, fields } = specification\n\n return {\n reportName,\n name,\n description: description || reportDescription,\n classification,\n printable: Boolean(printable),\n specification,\n template,\n fields,\n }\n}\n\nconst extractDataFromRequest = (requestData: RequestedReport): ExtractedRequestData => {\n const { query, url, timestamp } = requestData\n\n return {\n executionId: requestData.executionId,\n requestedTimestamp: timestamp.requested ? new Date(timestamp.requested).toLocaleString() : undefined,\n querySummary: query?.summary || [],\n queryData: query?.data,\n requestUrl: url?.request,\n defaultQuery: url?.report?.default,\n dataProductDefinitionsPath: requestData.dataProductDefinitionsPath,\n }\n}\n\nconst setActions = (\n csrfToken: string,\n columns: Columns,\n canDownload: boolean,\n res: Response,\n req: Request,\n definitionData: ExtractedDefinitionData,\n requestData?: ExtractedRequestData,\n urls?: ReportUrls,\n) => {\n const { reportName, name, printable } = definitionData\n const { tableId, id, reportId } = req.params\n const { nestedBaseUrl, definitionsPath, downloadingEnabled } = LocalsHelper.getValues(res)\n\n // DownloadActionParams\n let downloadConfig: DownloadActionParams | undefined\n if (urls && downloadingEnabled) {\n downloadConfig = {\n enabled: downloadingEnabled,\n name,\n reportName,\n csrfToken,\n reportId,\n id,\n tableId,\n columns: columns.value,\n definitionPath: definitionsPath,\n loadType: LoadType.ASYNC,\n nestedBaseUrl,\n canDownload,\n currentUrl: urls.pathname,\n currentQueryParams: urls.reportSearch,\n ...(requestData?.queryData && {\n sortColumn: <string>requestData.queryData['sortColumn'],\n sortedAsc: <string>requestData.queryData['sortedAsc'],\n }),\n }\n }\n\n let shareConfig\n let copyConfig\n if (requestData?.requestUrl?.fullUrl) {\n shareConfig = {\n reportName,\n name,\n url: requestData.requestUrl.fullUrl,\n }\n copyConfig = {\n url: requestData.requestUrl.fullUrl,\n }\n }\n\n let refreshConfig\n if (requestData?.executionId && requestData?.requestUrl?.fullUrl) {\n refreshConfig = {\n url: requestData.requestUrl.fullUrl,\n executionId: requestData.executionId,\n }\n }\n\n return ReportActionsUtils.getActions({\n ...(downloadConfig && { download: downloadConfig }),\n ...(shareConfig && { share: shareConfig }),\n ...(refreshConfig && { refresh: refreshConfig }),\n ...(copyConfig && { copy: copyConfig }),\n print: { enabled: printable },\n })\n}\n\nexport default {\n renderReport,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import parseUrl from 'parseurl'\nimport { Url } from 'url'\nimport { Request, Response } from 'express'\n\n// Types\nimport type { Columns } from '../../../../../components/_reports/report-columns-form/types'\nimport type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils'\nimport type { DataTable } from '../../../../../utils/DataTableBuilder/types'\nimport type { components } from '../../../../../types/api'\nimport type { AsyncSummary, RequestedReport } from '../../../../../types/UserReports'\nimport { LoadType, ReportType } from '../../../../../types/UserReports'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport type { ChildData } from '../../../../../utils/ParentChildDataTableBuilder/types'\nimport type { ExtractedDefinitionData, ExtractedRequestData, ReportUrls } from './types'\nimport type { DownloadActionParams } from '../../../../../components/_reports/report-actions/types'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\nimport type { Services } from '../../../../../types/Services'\n\n// Utils\nimport definitionUtils from '../../../../../utils/definitionUtils'\nimport PaginationUtils from '../../../../../components/_reports/report-pagination/utils'\nimport TotalsUtils from '../../../../../components/_reports/report-totals/utils'\nimport ReportFiltersUtils from '../../../../../components/_filters/utils'\nimport ColumnUtils from '../../../../../components/_reports/report-columns-form/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport UserReportsUtils from '../../../../../components/user-reports/utils'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport DataTableUtils from '../../../../../components/_reports/report-data-table/utils'\nimport RequestedReportService from '../../../my-reports/requested-reports/service'\n\nimport CollatedSummaryBuilder from '../../../../../utils/CollatedSummaryBuilder/CollatedSummaryBuilder'\n\nexport const getData = async ({\n res,\n req,\n services,\n token,\n userId,\n}: AsyncReportUtilsParams & { token: string; userId: string }) => {\n const { definitionsPath: definitionPath } = LocalsHelper.getValues(res)\n const { reportId, variantId, id, tableId } = req.params\n const reportVariantId = variantId || id\n\n // Get the request data\n const requestedReportService = <RequestedReportService>services.requestedReportService\n const requestData: RequestedReport | undefined = await requestedReportService.getReportByTableId(tableId, userId)\n const queryData = requestData?.query?.data\n\n // Get the definition\n const definition: components['schemas']['SingleVariantReportDefinition'] =\n await services.reportingService.getDefinition(token, reportId, reportVariantId, definitionPath, queryData)\n const { variant } = definition\n const { specification } = variant\n\n if (!specification) {\n throw new Error('No specification found in variant definition')\n }\n\n // Get the columns\n const columns = ColumnUtils.getColumns(specification, req)\n\n // initialise report query\n const reportQuery = await initReportQuery(definition, columns, res, req, services, requestData)\n\n // Get the reportData\n const reportData = await getReportData({ definition, services, token, req, res, reportQuery })\n\n // Get the summary data, if applicable\n const { summaries } = definition.variant\n const summariesData = !summaries ? [] : await getSummariesData(summaries, services, token, req, res)\n\n // Get the child data, if applicable\n const { childVariants } = definition.variant\n const childData: ChildData[] = !childVariants\n ? []\n : await getChildData(childVariants, services, token, req, res, requestData)\n\n return {\n definition,\n requestData,\n reportData,\n summariesData,\n childData,\n reportQuery,\n columns,\n }\n}\n\nconst initReportQuery = async (\n definition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n res: Response,\n req: Request,\n services: Services,\n requestData?: RequestedReport,\n) => {\n const { definitionsPath } = LocalsHelper.getValues(res)\n const fields = definitionUtils.getFields(definition)\n const template = definitionUtils.getTemplate(definition)\n\n const filtersData = await ReportFiltersUtils.getFilters({\n fields,\n req,\n filtersType: FiltersType.INTERACTIVE,\n res,\n services,\n })\n\n // Sort\n const sortColumn = req.query?.['sortColumn'] || requestData?.query?.data?.['sortColumn']\n const sortedAsc = req.query?.['sortedAsc'] || requestData?.query?.data?.['sortedAsc']\n\n // Pagination\n const selectedPage = req.query?.['selectedPage']\n const pageSize = req.query?.['pageSize']\n\n // Filters\n const filtersQuery = ReportFiltersUtils.setRequestQueryFromFilterValues(filtersData.filters)\n\n const queryParams = {\n ...(sortColumn && { sortColumn }),\n ...(sortedAsc && { sortedAsc }),\n ...filtersQuery,\n ...(pageSize && { pageSize }),\n ...(selectedPage && { selectedPage }),\n ...(columns && { columns: columns.value }),\n }\n\n return new ReportQuery({\n fields,\n template,\n queryParams,\n definitionsPath,\n })\n}\n\nconst getReportData = async (args: {\n definition: components['schemas']['SingleVariantReportDefinition']\n services: Services\n token: string\n req: Request\n res: Response\n reportQuery: ReportQuery\n}) => {\n const { services, token, req, reportQuery } = args\n const { reportId, variantId, id, tableId } = req.params\n const reportVariantId = variantId || id\n\n return services.reportingService.getAsyncReport(\n token,\n reportId,\n reportVariantId,\n tableId,\n reportQuery.toRecordWithFilterPrefix(true),\n )\n}\n\nexport const getSummariesData = async (\n summaries: components['schemas']['ReportSummary'][],\n services: Services,\n token: string,\n req: Request,\n res: Response,\n): Promise<AsyncSummary[]> => {\n const { reportId, variantId, id, tableId } = req.params\n const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)\n const reportVariantId = variantId || id\n\n return Promise.all(\n summaries.map(async (summary) => {\n const summaryReport = await services.reportingService.getAsyncSummaryReport(\n token,\n reportId,\n reportVariantId,\n tableId,\n summary.id,\n {\n dataProductDefinitionsPath,\n },\n )\n\n return {\n ...summary,\n data: summaryReport,\n }\n }),\n )\n}\n\nexport const getChildData = async (\n childVariants: components['schemas']['ChildVariantDefinition'][],\n services: Services,\n token: string,\n req: Request,\n res: Response,\n requestData?: RequestedReport,\n): Promise<ChildData[]> => {\n const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)\n const { reportId } = req.params\n const childExecutionData = requestData?.childExecutionData\n if (!childExecutionData) {\n throw new Error('getChildData: No execution data found for child variants')\n }\n return Promise.all(\n childVariants.map(async (childVariant) => {\n const { specification } = childVariant\n if (!specification) {\n throw new Error('getChildData: No specification found in child variant definition')\n }\n\n const query = new ReportQuery({\n fields: specification?.fields || [],\n template: 'parent-child',\n queryParams: req.query,\n definitionsPath: dataProductDefinitionsPath,\n }).toRecordWithFilterPrefix(true)\n\n const childData = childExecutionData.find((e) => e.variantId === childVariant.id)\n if (!childData || !childData.tableId) {\n throw new Error('getChildData: No matching child execution data found')\n }\n const { tableId: childTableId } = childData\n\n const childReport = await services.reportingService.getAsyncReport(\n token,\n reportId,\n childVariant.id,\n childTableId,\n query,\n )\n\n return {\n id: childVariant.id,\n data: childReport,\n }\n }),\n )\n}\n\n/**\n * Entry point function to render the report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const renderReport = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser } = LocalsHelper.getValues(res)\n\n // Get the report data\n const { definition, requestData, reportData, childData, summariesData, reportQuery, columns } = await getData({\n req,\n res,\n services,\n token,\n userId: dprUser.id,\n })\n\n // Get the data table\n const dataTable: DataTable[] = DataTableUtils.createDataTable(\n definition,\n columns,\n reportData,\n childData,\n summariesData,\n reportQuery,\n )\n\n // Get the template data\n const templateData = await getTemplateData(\n req,\n res,\n services,\n definition,\n summariesData,\n dataTable,\n columns,\n reportQuery,\n requestData,\n )\n\n const renderData = {\n ...templateData,\n dataTable,\n }\n\n if (requestData && Object.keys(requestData).length) {\n UserReportsUtils.updateLastViewed({\n req,\n services,\n reportStateData: requestData,\n userId: dprUser.id,\n filters: templateData.filterData.filters,\n })\n }\n\n return { renderData }\n}\n\nconst getTemplateData = async (\n req: Request,\n res: Response,\n services: Services,\n definition: components['schemas']['SingleVariantReportDefinition'],\n summariesData: AsyncSummary[],\n dataTable: DataTable[],\n columns: Columns,\n reportQuery: ReportQuery,\n requestData?: RequestedReport,\n) => {\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n\n // get url data\n const url = parseUrl(req)\n if (!url) {\n throw new Error('Unable to set url data from request')\n }\n\n const urls = url ? setUrls(url, req) : undefined\n\n // get from definition\n const definitionData = extractDataFromDefinition(definition)\n const { fields, specification } = definitionData\n\n // get from requestedData\n const requestedData = requestData ? extractDataFromRequest(requestData) : undefined\n\n // Get the count\n const count = await getCount(definition, services, res, req, reportQuery)\n\n // Get the filters\n const filterData = await ReportFiltersUtils.getFilters({\n fields,\n req,\n res,\n services,\n filtersType: FiltersType.INTERACTIVE,\n })\n\n // Set the features\n const features = await setFeatures(services, res, req, columns, definitionData, requestedData, urls)\n\n // Set the extra meta data\n const meta = setMetaData(res, req)\n\n let reportSummaries\n if (summariesData.length) {\n const collatedSummaryBuilder = new CollatedSummaryBuilder(specification, summariesData)\n reportSummaries = collatedSummaryBuilder.collatePageSummaries()\n }\n\n let pagination\n let totals\n if (definitionData.template === 'list') {\n pagination = PaginationUtils.getPaginationData(url, count, req)\n const { pageSize, currentPage, totalRows } = pagination\n totals = TotalsUtils.getTotals(pageSize, currentPage, totalRows, dataTable[0].rowCount)\n }\n\n return {\n ...(showColumns(specification) && { columns }),\n filterData,\n count,\n nestedBaseUrl,\n ...meta,\n ...features,\n ...definitionData,\n ...requestedData,\n ...urls,\n ...(pagination && { pagination }),\n ...(totals && { totals }),\n ...(reportSummaries && { reportSummaries }),\n }\n}\n\nconst showColumns = (specification: components['schemas']['Specification']) => {\n const { template } = specification\n\n return !['row-section', 'row-section-child', 'summary', 'summary-section'].includes(template)\n}\n\nconst setMetaData = (res: Response, req: Request) => {\n const { csrfToken } = LocalsHelper.getValues(res)\n const { tableId, reportId, id } = req.params\n\n return {\n csrfToken,\n loadType: LoadType.ASYNC,\n type: ReportType.REPORT,\n tableId,\n reportId,\n id,\n }\n}\n\nconst setUrls = (url: Url, req: Request): ReportUrls => {\n const { search } = url\n const encodedSearch = search ? encodeURIComponent(search) : undefined\n const pathname = search ? req.originalUrl.split(search)[0] : req.originalUrl\n const reportUrl = pathname.replace('/download-disabled', '').replace('/download-disabled?', '')\n\n return {\n reportUrl,\n reportSearch: search || undefined,\n encodedSearch,\n pathname,\n }\n}\n\nconst setFeatures = async (\n services: Services,\n res: Response,\n req: Request,\n columns: Columns,\n definitionData: ExtractedDefinitionData,\n requestData?: ExtractedRequestData,\n urls?: ReportUrls,\n) => {\n const { csrfToken, dprUser, bookmarkingEnabled, downloadingEnabled } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const { downloadPermissionService, bookmarkService } = services\n\n let canDownload = false\n if (downloadingEnabled) {\n canDownload = await downloadPermissionService.downloadEnabledForReport(dprUser.id, reportId, id)\n }\n\n let bookmarked\n if (bookmarkingEnabled) {\n bookmarked = await bookmarkService.isBookmarked(id, reportId, dprUser.id)\n }\n\n const actions = setActions(csrfToken, columns, canDownload, res, req, definitionData, requestData, urls)\n\n return {\n actions,\n canDownload,\n bookmarked,\n }\n}\n\nconst getCount = async (\n definition: components['schemas']['SingleVariantReportDefinition'],\n services: Services,\n res: Response,\n req: Request,\n reportQuery: ReportQuery,\n) => {\n const { token } = LocalsHelper.getValues(res)\n const { tableId, reportId, id } = req.params\n\n return !definition.variant.interactive\n ? services.reportingService.getAsyncCount(token, tableId)\n : services.reportingService.getAsyncInteractiveCount(token, tableId, reportId, id, reportQuery)\n}\n\nconst extractDataFromDefinition = (\n definition: components['schemas']['SingleVariantReportDefinition'],\n): ExtractedDefinitionData => {\n const { variant, name: reportName, description: reportDescription } = definition\n const { classification, printable, specification, name, description } = variant\n if (!specification) {\n throw new Error('No specification found in variant definition')\n }\n const { template, fields } = specification\n\n return {\n reportName,\n name,\n description: description || reportDescription,\n classification,\n printable: Boolean(printable),\n specification,\n template,\n fields,\n }\n}\n\nconst extractDataFromRequest = (requestData: RequestedReport): ExtractedRequestData => {\n const { query, url, timestamp } = requestData\n\n return {\n executionId: requestData.executionId,\n requestedTimestamp: timestamp.requested ? new Date(timestamp.requested).toLocaleString() : undefined,\n querySummary: query?.summary || [],\n queryData: query?.data,\n requestUrl: url?.request,\n defaultQuery: url?.report?.default,\n dataProductDefinitionsPath: requestData.dataProductDefinitionsPath,\n }\n}\n\nconst setActions = (\n csrfToken: string,\n columns: Columns,\n canDownload: boolean,\n res: Response,\n req: Request,\n definitionData: ExtractedDefinitionData,\n requestData?: ExtractedRequestData,\n urls?: ReportUrls,\n) => {\n const { reportName, name, printable } = definitionData\n const { tableId, id, reportId } = req.params\n const { nestedBaseUrl, definitionsPath, downloadingEnabled } = LocalsHelper.getValues(res)\n\n // DownloadActionParams\n let downloadConfig: DownloadActionParams | undefined\n if (urls && downloadingEnabled) {\n downloadConfig = {\n enabled: downloadingEnabled,\n name,\n reportName,\n csrfToken,\n reportId,\n id,\n tableId,\n columns: columns.value,\n definitionPath: definitionsPath,\n loadType: LoadType.ASYNC,\n nestedBaseUrl,\n canDownload,\n currentUrl: urls.pathname,\n currentQueryParams: urls.reportSearch,\n ...(requestData?.queryData && {\n sortColumn: <string>requestData.queryData['sortColumn'],\n sortedAsc: <string>requestData.queryData['sortedAsc'],\n }),\n }\n }\n\n let shareConfig\n let copyConfig\n if (requestData?.requestUrl?.fullUrl) {\n shareConfig = {\n reportName,\n name,\n url: requestData.requestUrl.fullUrl,\n }\n copyConfig = {\n url: requestData.requestUrl.fullUrl,\n }\n }\n\n let refreshConfig\n if (requestData?.executionId && requestData?.requestUrl?.fullUrl) {\n refreshConfig = {\n url: requestData.requestUrl.fullUrl,\n executionId: requestData.executionId,\n }\n }\n\n return ReportActionsUtils.getActions({\n ...(downloadConfig && { download: downloadConfig }),\n ...(shareConfig && { share: shareConfig }),\n ...(refreshConfig && { refresh: refreshConfig }),\n ...(copyConfig && { copy: copyConfig }),\n print: { enabled: printable },\n })\n}\n\nexport default {\n renderReport,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["utils_exports", "__export", "utils_default", "getChildData", "getData", "getSummariesData", "renderReport", "__toCommonJS", "import_parseurl", "import_UserReports", "import_ReportQuery", "import_filtersTypeEnum", "import_definitionUtils", "import_utils", "import_localsHelper", "import_CollatedSummaryBuilder", "res", "req", "services", "token", "userId", "definitionPath", "LocalsHelper", "reportId", "variantId", "id", "tableId", "reportVariantId", "requestData", "queryData", "definition", "variant", "specification", "columns", "ColumnUtils", "reportQuery", "initReportQuery", "reportData", "getReportData", "summaries", "summariesData", "childVariants", "childData", "definitionsPath", "fields", "definitionUtils", "template", "filtersData", "ReportFiltersUtils", "sortColumn", "sortedAsc", "selectedPage", "pageSize", "filtersQuery", "queryParams", "ReportQuery", "args", "dataProductDefinitionsPath", "summary", "summaryReport", "childExecutionData", "childVariant", "query", "e", "childTableId", "childReport", "dprUser", "dataTable", "DataTableUtils", "templateData", "getTemplateData", "renderData", "UserReportsUtils", "nestedBaseUrl", "url", "parseUrl", "urls", "setUrls", "definitionData", "extractDataFromDefinition", "requestedData", "extractDataFromRequest", "count", "getCount", "filterData", "features", "setFeatures", "meta", "setMetaData", "reportSummaries", "CollatedSummaryBuilder", "pagination", "totals", "PaginationUtils", "currentPage", "totalRows", "TotalsUtils", "showColumns", "csrfToken", "search", "encodedSearch", "pathname", "bookmarkingEnabled", "downloadingEnabled", "downloadPermissionService", "bookmarkService", "canDownload", "bookmarked", "setActions", "reportName", "reportDescription", "classification", "printable", "name", "description", "timestamp", "downloadConfig", "shareConfig", "copyConfig", "refreshConfig", "ReportActionsUtils"]
7
7
  }
@@ -210,7 +210,7 @@ export const getChildData = async (
210
210
 
211
211
  const query = new ReportQuery({
212
212
  fields: specification?.fields || [],
213
- template: specification.template,
213
+ template: 'parent-child',
214
214
  queryParams: req.query,
215
215
  definitionsPath: dataProductDefinitionsPath,
216
216
  }).toRecordWithFilterPrefix(true)
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.create;var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var m=(e,r)=>{for(var o in r)s(e,o,{get:r[o],enumerable:!0})},l=(e,r,o,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of y(r))!d.call(e,t)&&t!==o&&s(e,t,{get:()=>r[t],enumerable:!(a=u(r,t))||a.enumerable});return e};var h=(e,r,o)=>(o=e!=null?p(c(e)):{},l(r||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),v=e=>l(s({},"__esModule",{value:!0}),e);var g={};m(g,{ViewReportController:()=>i,default:()=>f});module.exports=v(g);var n=h(require("../../../utils/logger"));class i{constructor(r,o){this.errorHandler=async(r,o,a)=>{n.default.error(`Error: ${JSON.stringify(r.body)}`),o.render("dpr/routes/journeys/view-report/error",{layoutPath:this.layoutPath,...r.body,...r.params,error:r.body.error,params:r.params})};this.layoutPath=r,this.services=o}}var f=i;0&&(module.exports={ViewReportController});
1
+ "use strict";var c=Object.create;var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var h=(o,r)=>{for(var e in r)s(o,e,{get:r[e],enumerable:!0})},n=(o,r,e,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of u(r))!f.call(o,t)&&t!==e&&s(o,t,{get:()=>r[t],enumerable:!(a=d(r,t))||a.enumerable});return o};var l=(o,r,e)=>(e=o!=null?c(y(o)):{},n(r||!o||!o.__esModule?s(e,"default",{value:o,enumerable:!0}):e,o)),v=o=>n(s({},"__esModule",{value:!0}),o);var H={};h(H,{ViewReportController:()=>i,default:()=>g});module.exports=v(H);var m=l(require("../../../utils/ErrorHandler")),p=l(require("../../../utils/logger"));class i{constructor(r,e){this.errorHandler=async(r,e,a)=>{p.default.error(`Error: ${JSON.stringify(r.body)}`);const t=new m.default(r.body.error).formatError();e.render("dpr/routes/journeys/view-report/error",{layoutPath:this.layoutPath,...r.body,...r.params,error:t,params:r.params})};this.layoutPath=r,this.services=e}}var g=i;0&&(module.exports={ViewReportController});
2
2
  //# sourceMappingURL=controller.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/routes/journeys/view-report/controller.ts"],
4
- "sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../types/Services'\nimport logger from '../../../utils/logger'\n\nclass ViewReportController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n errorHandler: RequestHandler = async (req, res, _next) => {\n logger.error(`Error: ${JSON.stringify(req.body)}`)\n\n res.render(`dpr/routes/journeys/view-report/error`, {\n layoutPath: this.layoutPath,\n ...req.body,\n ...req.params,\n error: req.body.error,\n params: req.params,\n })\n }\n}\n\nexport { ViewReportController }\nexport default ViewReportController\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAmB,oCAEnB,MAAMH,CAAqB,CAKzB,YAAYI,EAAoBC,EAAoB,CAKpD,kBAA+B,MAAOC,EAAKC,EAAKC,IAAU,CACxD,EAAAC,QAAO,MAAM,UAAU,KAAK,UAAUH,EAAI,IAAI,CAAC,EAAE,EAEjDC,EAAI,OAAO,wCAAyC,CAClD,WAAY,KAAK,WACjB,GAAGD,EAAI,KACP,GAAGA,EAAI,OACP,MAAOA,EAAI,KAAK,MAChB,OAAQA,EAAI,MACd,CAAC,CACH,EAdE,KAAK,WAAaF,EAClB,KAAK,SAAWC,CAClB,CAaF,CAGA,IAAOJ,EAAQD",
6
- "names": ["controller_exports", "__export", "ViewReportController", "controller_default", "__toCommonJS", "import_logger", "layoutPath", "services", "req", "res", "_next", "logger"]
4
+ "sourcesContent": ["import { RequestHandler } from 'express'\nimport ErrorHandler from '../../../utils/ErrorHandler'\nimport { Services } from '../../../types/Services'\nimport logger from '../../../utils/logger'\n\nclass ViewReportController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n errorHandler: RequestHandler = async (req, res, _next) => {\n logger.error(`Error: ${JSON.stringify(req.body)}`)\n const error = new ErrorHandler(req.body.error).formatError()\n\n res.render(`dpr/routes/journeys/view-report/error`, {\n layoutPath: this.layoutPath,\n ...req.body,\n ...req.params,\n error,\n params: req.params,\n })\n }\n}\n\nexport { ViewReportController }\nexport default ViewReportController\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAyB,0CAEzBC,EAAmB,oCAEnB,MAAMJ,CAAqB,CAKzB,YAAYK,EAAoBC,EAAoB,CAKpD,kBAA+B,MAAOC,EAAKC,EAAKC,IAAU,CACxD,EAAAC,QAAO,MAAM,UAAU,KAAK,UAAUH,EAAI,IAAI,CAAC,EAAE,EACjD,MAAMI,EAAQ,IAAI,EAAAC,QAAaL,EAAI,KAAK,KAAK,EAAE,YAAY,EAE3DC,EAAI,OAAO,wCAAyC,CAClD,WAAY,KAAK,WACjB,GAAGD,EAAI,KACP,GAAGA,EAAI,OACP,MAAAI,EACA,OAAQJ,EAAI,MACd,CAAC,CACH,EAfE,KAAK,WAAaF,EAClB,KAAK,SAAWC,CAClB,CAcF,CAGA,IAAOL,EAAQD",
6
+ "names": ["controller_exports", "__export", "ViewReportController", "controller_default", "__toCommonJS", "import_ErrorHandler", "import_logger", "layoutPath", "services", "req", "res", "_next", "logger", "error", "ErrorHandler"]
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import { RequestHandler } from 'express'
2
+ import ErrorHandler from '../../../utils/ErrorHandler'
2
3
  import { Services } from '../../../types/Services'
3
4
  import logger from '../../../utils/logger'
4
5
 
@@ -14,12 +15,13 @@ class ViewReportController {
14
15
 
15
16
  errorHandler: RequestHandler = async (req, res, _next) => {
16
17
  logger.error(`Error: ${JSON.stringify(req.body)}`)
18
+ const error = new ErrorHandler(req.body.error).formatError()
17
19
 
18
20
  res.render(`dpr/routes/journeys/view-report/error`, {
19
21
  layoutPath: this.layoutPath,
20
22
  ...req.body,
21
23
  ...req.params,
22
- error: req.body.error,
24
+ error,
23
25
  params: req.params,
24
26
  })
25
27
  }
@@ -1,2 +1,2 @@
1
- "use strict";var c=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var s=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of v(e))!l.call(r,i)&&i!==t&&c(r,i,{get:()=>e[i],enumerable:!(o=S(e,i))||o.enumerable});return r};var n=r=>s(c({},"__esModule",{value:!0}),r);var d={};module.exports=n(d);
1
+ "use strict";var t=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var s=(r,e,c,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of v(e))!l.call(r,i)&&i!==c&&t(r,i,{get:()=>e[i],enumerable:!(o=S(e,i))||o.enumerable});return r};var n=r=>s(t({},"__esModule",{value:!0}),r);var d={};module.exports=n(d);
2
2
  //# sourceMappingURL=Services.d.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/types/Services.d.ts"],
4
- "sourcesContent": ["import {\n BookmarkService,\n DashboardService,\n DefaultFilterValuesService,\n DownloadPermissionService,\n RecentlyViewedStoreService,\n ReportingService,\n RequestedReportService,\n} from '../services'\nimport { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'\nimport MissingReportService from '../services/missingReport/missingReportService'\nimport ReportingService from '../services/reportingService'\nimport DashboardService from '../services/dashboardService'\nimport { ProductCollectionService } from '../services/productCollection/productCollectionService'\n\nexport type Services = UserStoreServices & {\n reportingService: ReportingService\n dashboardService: DashboardService\n missingReportService: MissingReportService\n productCollectionService: ProductCollectionService\n}\n\nexport interface UserStoreServices {\n downloadPermissionService: DownloadPermissionService\n requestedReportService: RequestedReportService\n recentlyViewedService: RecentlyViewedStoreService\n bookmarkService: BookmarkService\n defaultFilterValuesService: DefaultFilterValuesService\n productCollectionStoreService: ProductCollectionStoreService\n}\n"],
4
+ "sourcesContent": ["import {\n BookmarkService,\n DefaultFilterValuesService,\n DownloadPermissionService,\n RecentlyViewedStoreService,\n RequestedReportService,\n} from '../services'\nimport { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'\nimport MissingReportService from '../services/missingReport/missingReportService'\nimport ReportingService from '../services/reportingService'\nimport DashboardService from '../services/dashboardService'\nimport { ProductCollectionService } from '../services/productCollection/productCollectionService'\n\nexport type Services = UserStoreServices & {\n reportingService: ReportingService\n dashboardService: DashboardService\n missingReportService: MissingReportService\n productCollectionService: ProductCollectionService\n}\n\nexport interface UserStoreServices {\n downloadPermissionService: DownloadPermissionService\n requestedReportService: RequestedReportService\n recentlyViewedService: RecentlyViewedStoreService\n bookmarkService: BookmarkService\n defaultFilterValuesService: DefaultFilterValuesService\n productCollectionStoreService: ProductCollectionStoreService\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["Services_d_exports", "__toCommonJS"]
7
7
  }
@@ -1,10 +1,8 @@
1
1
  import {
2
2
  BookmarkService,
3
- DashboardService,
4
3
  DefaultFilterValuesService,
5
4
  DownloadPermissionService,
6
5
  RecentlyViewedStoreService,
7
- ReportingService,
8
6
  RequestedReportService,
9
7
  } from '../services'
10
8
  import { ProductCollectionStoreService } from '../services/productCollection/productCollectionStoreService'
@@ -1,2 +1,2 @@
1
- "use strict";var o=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var d=(r,e,a,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!s.call(r,n)&&n!==a&&o(r,n,{get:()=>e[n],enumerable:!(t=l(e,n))||t.enumerable});return r};var b=r=>d(o({},"__esModule",{value:!0}),r);var m={};module.exports=b(m);
1
+ "use strict";var t=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var d=(r,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of i(e))!s.call(r,n)&&n!==a&&t(r,n,{get:()=>e[n],enumerable:!(o=l(e,n))||o.enumerable});return r};var b=r=>d(t({},"__esModule",{value:!0}),r);var m={};module.exports=b(m);
2
2
  //# sourceMappingURL=types.d.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/DataTableBuilder/types.d.ts"],
4
- "sourcesContent": ["export type CellFormat = 'numeric' | 'string'\n\nexport interface Cell {\n fieldName?: string\n text?: string | undefined\n html?: string | undefined\n format?: CellFormat\n classes?: string\n colspan?: number\n rowspan?: number | undefined\n}\n\nexport interface DataTable {\n head: Array<Header> | null\n rows: Array<Array<Cell>>\n rowCount: number\n colCount: number\n}\n\nexport interface FieldDefinition {\n name: string\n display?: string\n type?: 'boolean' | 'date' | 'double' | 'HTML' | 'long' | 'string' | 'time'\n wordWrap?: 'none' | 'normal' | 'break-words'\n calculated?: boolean\n sortable?: boolean\n header?: boolean\n mergeRows?: boolean\n visible?: boolean\n}\n\nexport interface SortKey extends Dict<string> {\n sortKey: string\n}\n"],
4
+ "sourcesContent": ["export type CellFormat = 'numeric' | 'string'\n\nexport interface Cell {\n fieldName?: string\n text?: string | undefined\n html?: string | undefined\n format?: CellFormat\n classes?: string\n colspan?: number\n rowspan?: number | undefined\n}\n\nexport interface DataTable {\n head: Array<Cell> | null\n rows: Array<Array<Cell>>\n rowCount: number\n colCount: number\n}\n\nexport interface FieldDefinition {\n name: string\n display?: string\n type?: 'boolean' | 'date' | 'double' | 'HTML' | 'long' | 'string' | 'time'\n wordWrap?: 'none' | 'normal' | 'break-words'\n calculated?: boolean\n sortable?: boolean\n header?: boolean\n mergeRows?: boolean\n visible?: boolean\n}\n\nexport interface SortKey {\n sortKey: string\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_d_exports", "__toCommonJS"]
7
7
  }
@@ -11,7 +11,7 @@ export interface Cell {
11
11
  }
12
12
 
13
13
  export interface DataTable {
14
- head: Array<Header> | null
14
+ head: Array<Cell> | null
15
15
  rows: Array<Array<Cell>>
16
16
  rowCount: number
17
17
  colCount: number
@@ -29,6 +29,6 @@ export interface FieldDefinition {
29
29
  visible?: boolean
30
30
  }
31
31
 
32
- export interface SortKey extends Dict<string> {
32
+ export interface SortKey {
33
33
  sortKey: string
34
34
  }
@@ -1,2 +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});
1
+ "use strict";var h=Object.create;var a=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var f=(s,e)=>{for(var r in e)a(s,r,{get:e[r],enumerable:!0})},g=(s,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of u(e))!d.call(s,t)&&t!==r&&a(s,t,{get:()=>e[t],enumerable:!(o=p(e,t))||o.enumerable});return s};var l=(s,e,r)=>(r=s!=null?h(c(s)):{},g(e||!s||!s.__esModule?a(r,"default",{value:s,enumerable:!0}):r,s)),m=s=>g(a({},"__esModule",{value:!0}),s);var E={};f(E,{ErrorHandler:()=>i,default:()=>M});module.exports=m(E);var n=l(require("./logger"));class i{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}else if(Object.prototype.hasOwnProperty.call(this.error,"userMessage")){const r=this.error;if(r.stack&&r.stack.includes("ZodError")){const o=JSON.parse(r.userMessage);this.userMessage=o.map(t=>t.message).join(", "),this.status=500,this.stack=r.stack}}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 n.default.error(JSON.stringify(e,null,2)),e};this.error=e,n.default.error(`Error: ${JSON.stringify(e)}`)}}var M=i;0&&(module.exports={ErrorHandler});
2
2
  //# sourceMappingURL=ErrorHandler.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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"]
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\ninterface ZodValidationError {\n userMessage: string\n stack: string\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 // Zod error\n else if (Object.prototype.hasOwnProperty.call(this.error, 'userMessage')) {\n const error = <ZodValidationError>this.error\n if (error.stack && error.stack.includes('ZodError')) {\n const errorArr: { message: string }[] = JSON.parse(error.userMessage)\n this.userMessage = errorArr.map((m) => m.message).join(', ')\n this.status = 500\n this.stack = error.stack\n }\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,uBAmBnB,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,SAGS,OAAO,UAAU,eAAe,KAAK,KAAK,MAAO,aAAa,EAAG,CACxE,MAAMA,EAA4B,KAAK,MACvC,GAAIA,EAAM,OAASA,EAAM,MAAM,SAAS,UAAU,EAAG,CACnD,MAAMC,EAAkC,KAAK,MAAMD,EAAM,WAAW,EACpE,KAAK,YAAcC,EAAS,IAAKC,GAAMA,EAAE,OAAO,EAAE,KAAK,IAAI,EAC3D,KAAK,OAAS,IACd,KAAK,MAAQF,EAAM,KACrB,CACF,CAEA,MAAMG,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,EA9DE,KAAK,MAAQH,EACb,EAAAI,QAAO,MAAM,UAAU,KAAK,UAAUJ,CAAK,CAAC,EAAE,CAChD,CA6DF,CAGA,IAAOH,EAAQD",
6
+ "names": ["ErrorHandler_exports", "__export", "ErrorHandler", "ErrorHandler_default", "__toCommonJS", "import_logger", "error", "errorArr", "m", "formattedError", "logger"]
7
7
  }
@@ -13,6 +13,11 @@ interface DprErrorData {
13
13
  data: components['schemas']['ErrorResponse']
14
14
  }
15
15
 
16
+ interface ZodValidationError {
17
+ userMessage: string
18
+ stack: string
19
+ }
20
+
16
21
  class ErrorHandler {
17
22
  error: Error | components['schemas']['ErrorResponse'] | string | undefined | unknown | DprErrorData
18
23
 
@@ -67,6 +72,17 @@ class ErrorHandler {
67
72
  this.status = error.status
68
73
  }
69
74
 
75
+ // Zod error
76
+ else if (Object.prototype.hasOwnProperty.call(this.error, 'userMessage')) {
77
+ const error = <ZodValidationError>this.error
78
+ if (error.stack && error.stack.includes('ZodError')) {
79
+ const errorArr: { message: string }[] = JSON.parse(error.userMessage)
80
+ this.userMessage = errorArr.map((m) => m.message).join(', ')
81
+ this.status = 500
82
+ this.stack = error.stack
83
+ }
84
+ }
85
+
70
86
  const formattedError = {
71
87
  ...(this.developerMessage && { developerMessage: this.developerMessage }),
72
88
  ...(this.userMessage && { userMessage: this.userMessage }),
@@ -1,2 +1,2 @@
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);
1
+ "use strict";var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var s=(r,t,a,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of d(t))!n.call(r,i)&&i!==a&&o(r,i,{get:()=>t[i],enumerable:!(e=c(t,i))||e.enumerable});return r};var y=r=>s(o({},"__esModule",{value:!0}),r);var D={};module.exports=y(D);
2
2
  //# sourceMappingURL=types.d.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/ParentChildDataTableBuilder/types.d.ts"],
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"],
4
+ "sourcesContent": ["import { SortKey } from '../DataTableBuilder/types'\nimport Dict = NodeJS.Dict\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
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_d_exports", "__toCommonJS"]
7
7
  }
@@ -1,4 +1,5 @@
1
1
  import { SortKey } from '../DataTableBuilder/types'
2
+ import Dict = NodeJS.Dict
2
3
 
3
4
  export interface ParentChildSortKey extends SortKey {
4
5
  childSortKeys: Dict<string>
@@ -1,2 +1,2 @@
1
- "use strict";var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var f=(t,e,l,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of n(e))!s.call(t,r)&&r!==l&&i(t,r,{get:()=>e[r],enumerable:!(a=u(e,r))||a.enumerable});return t};var F=t=>f(i({},"__esModule",{value:!0}),t);var g={};module.exports=F(g);
1
+ "use strict";var i=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var s=(t,e,l,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of u(e))!f.call(t,r)&&r!==l&&i(t,r,{get:()=>e[r],enumerable:!(a=n(e,r))||a.enumerable});return t};var g=t=>s(i({},"__esModule",{value:!0}),t);var o={};module.exports=g(o);
2
2
  //# sourceMappingURL=types.d.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/utils/Personalisation/types.d.ts"],
4
- "sourcesContent": ["import { Granularity, QuickFilters } from '../../components/_inputs/granular-date-range/types'\nimport { FiltersType } from '../../components/_filters/filtersTypeEnum'\n\nexport interface defaultFilterValue {\n name: string\n value: string | DefaultDateFilterValue | DefaultGranularDateFilterValue\n type?: FiltersType\n}\n\nexport interface DefaultDateFilterValue {\n start: string\n end: string\n relative?: RelativeDateRange\n}\n\nexport interface DefaultGranularDateFilterValue {\n start: string\n end: string\n granularity: Granularity\n quickFilter: QuickFilters\n}\n\nexport interface defaultFilterConfig {\n reportId: string\n id: string\n values: defaultFilterValue[]\n}\n"],
4
+ "sourcesContent": ["import { Granularity, QuickFilters } from '../../components/_inputs/granular-date-range/types'\nimport { FiltersType } from '../../components/_filters/filtersTypeEnum'\nimport RelativeDateRange from '../../components/_inputs/date-range/types'\n\nexport interface defaultFilterValue {\n name: string\n value: string | DefaultDateFilterValue | DefaultGranularDateFilterValue\n type?: FiltersType\n}\n\nexport interface DefaultDateFilterValue {\n start: string\n end: string\n relative?: RelativeDateRange\n}\n\nexport interface DefaultGranularDateFilterValue {\n start: string\n end: string\n granularity: Granularity\n quickFilter: QuickFilters\n}\n\nexport interface defaultFilterConfig {\n reportId: string\n id: string\n values: defaultFilterValue[]\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["types_d_exports", "__toCommonJS"]
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import { Granularity, QuickFilters } from '../../components/_inputs/granular-date-range/types'
2
2
  import { FiltersType } from '../../components/_filters/filtersTypeEnum'
3
+ import RelativeDateRange from '../../components/_inputs/date-range/types'
3
4
 
4
5
  export interface defaultFilterValue {
5
6
  name: string
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/utils/UserStoreItemBuilder.ts"],
4
- "sourcesContent": ["import type { Request } from 'express'\nimport parseUrl from 'parseurl'\nimport {\n AsyncReportUrlData,\n LoadType,\n ReportType,\n RequestedReport,\n RequestFormData,\n RequestStatus,\n UserReportData,\n} from '../types/UserReports'\nimport Dict = NodeJS.Dict\nimport { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'\nimport { components } from '../types/api'\n\ninterface ReportData {\n type: ReportType\n reportId: string\n reportName: string\n description: string\n id: string\n name: string\n}\n\nclass UserStoreItemBuilder {\n userStoreItem: UserReportData\n\n requestFormData: RequestFormData | Record<string, never>\n\n constructor(reportData: ReportData, requestFormData?: RequestFormData) {\n this.requestFormData = requestFormData || {}\n this.userStoreItem = this.addReportData(reportData)\n }\n\n build = () => {\n return this.userStoreItem as RequestedReport\n }\n\n addReportData = ({ type, reportId, reportName, description, id, name }: ReportData) => {\n return {\n type: type as ReportType,\n reportId,\n reportName,\n description,\n id,\n name,\n timestamp: {},\n }\n }\n\n addExecutionData = (executionData: ExecutionData) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n ...executionData,\n }\n return this\n }\n\n addChildExecutionData = (childExecutionData: Array<ChildReportExecutionData>) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n childExecutionData,\n }\n return this\n }\n\n addFilters = (filterData?: Record<string, string>) => {\n const filtersQueryString = new URLSearchParams(filterData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n filters: {\n data: filterData,\n queryString: filtersQueryString,\n },\n },\n }\n return this\n }\n\n addSortData = (sortData: Record<string, string>) => {\n const sortByQueryString = new URLSearchParams(sortData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n sortBy: {\n data: sortData,\n queryString: sortByQueryString,\n },\n },\n }\n return this\n }\n\n addRequestUrls = (req: Request) => {\n const { origin, pathname, search, href } = this.requestFormData\n const { executionId, dataProductDefinitionsPath, dpdPathFromQuery } = this.userStoreItem\n\n // Polling path\n let pollingPath = req.baseUrl.replace('/filters', `/${executionId}/status`)\n if (dpdPathFromQuery) {\n pollingPath = `${pollingPath}?dataProductDefinitionsPath=${dataProductDefinitionsPath}`\n }\n const pollingFullUrl = `${origin}${pollingPath}`\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin,\n request: {\n fullUrl: href,\n pathname,\n search,\n },\n polling: {\n fullUrl: pollingFullUrl,\n pathname: pollingPath,\n },\n },\n },\n }\n\n return this\n }\n\n addAsyncUrls = (url?: AsyncReportUrlData) => {\n if (url) {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url,\n },\n }\n }\n\n return this\n }\n\n addReportUrls = (req: Request) => {\n const origin = req.get('host')\n const fullUrl = `${req.protocol}://${req.get('host')}${req.originalUrl}`\n const urlData = parseUrl(req)\n\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin: origin || this.userStoreItem.url?.origin || '',\n ...(this.userStoreItem.url?.request && { request: this.userStoreItem.url.request }),\n ...(this.userStoreItem.url?.polling && { polling: this.userStoreItem.url.polling }),\n report: {\n ...(this.userStoreItem.url?.report && this.userStoreItem.url.report),\n fullUrl,\n ...(urlData && urlData.search && { search: urlData.search }),\n },\n },\n },\n }\n\n return this\n }\n\n addLoadType = (loadType: LoadType) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n loadType,\n }\n\n return this\n }\n\n addQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...(queryData && {\n query: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n }),\n }\n return this\n }\n\n addInteractiveQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n if (queryData) {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n interactiveQuery: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n },\n }\n }\n return this\n }\n\n addStatus = (status: RequestStatus) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n status,\n }\n return this\n }\n\n addMetrics = (metrics: components['schemas']['DashboardSectionDefinition'][]) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n metrics: metrics.filter((metric) => metric.display).map((metric) => ({ name: metric.display || '' })),\n }\n return this\n }\n\n addTimestamp = () => {\n const { status } = this.userStoreItem\n const ts = new Date()\n switch (status) {\n case RequestStatus.FAILED:\n this.userStoreItem.timestamp.failed = ts\n break\n case RequestStatus.EXPIRED:\n this.userStoreItem.timestamp.expired = ts\n break\n case RequestStatus.ABORTED:\n this.userStoreItem.timestamp.aborted = ts\n break\n case RequestStatus.FINISHED:\n this.userStoreItem.timestamp.completed = ts\n break\n case RequestStatus.SUBMITTED:\n this.userStoreItem.timestamp.requested = ts\n break\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n break\n default:\n this.userStoreItem.timestamp.lastViewed = ts\n break\n }\n return this\n }\n\n addDefinitionsPath = (definitionsPath: string, dpdPathFromQuery: boolean) => {\n if (definitionsPath) {\n this.userStoreItem = {\n ...this.userStoreItem,\n dataProductDefinitionsPath: definitionsPath,\n dpdPathFromQuery,\n }\n }\n return this\n }\n}\n\nexport { UserStoreItemBuilder }\nexport default UserStoreItemBuilder\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { Request } from 'express'\nimport parseUrl from 'parseurl'\nimport {\n AsyncReportUrlData,\n LoadType,\n ReportType,\n RequestedReport,\n RequestFormData,\n RequestStatus,\n UserReportData,\n} from '../types/UserReports'\nimport Dict = NodeJS.Dict\nimport { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'\nimport { components } from '../types/api'\n\ninterface ReportData {\n type: ReportType\n reportId: string\n reportName: string\n description: string\n id: string\n name: string\n}\n\nclass UserStoreItemBuilder {\n userStoreItem: UserReportData\n\n requestFormData: RequestFormData | Record<string, never>\n\n constructor(reportData: ReportData, requestFormData?: RequestFormData) {\n this.requestFormData = requestFormData || {}\n this.userStoreItem = this.addReportData(reportData)\n }\n\n build = () => {\n return this.userStoreItem as RequestedReport\n }\n\n addReportData = ({ type, reportId, reportName, description, id, name }: ReportData) => {\n return {\n type: type as ReportType,\n reportId,\n reportName,\n description,\n id,\n name,\n timestamp: {},\n }\n }\n\n addExecutionData = (executionData: ExecutionData) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n ...executionData,\n }\n return this\n }\n\n addChildExecutionData = (childExecutionData: Array<ChildReportExecutionData>) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n childExecutionData,\n }\n return this\n }\n\n addFilters = (filterData?: Record<string, string>) => {\n const filtersQueryString = new URLSearchParams(filterData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n filters: {\n data: filterData,\n queryString: filtersQueryString,\n },\n },\n }\n return this\n }\n\n addSortData = (sortData?: Record<string, string>) => {\n const sortByQueryString = new URLSearchParams(sortData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n sortBy: {\n data: sortData,\n queryString: sortByQueryString,\n },\n },\n }\n return this\n }\n\n addRequestUrls = (req: Request) => {\n const { origin, pathname, search, href } = this.requestFormData\n const { executionId, dataProductDefinitionsPath, dpdPathFromQuery } = this.userStoreItem\n\n // Polling path\n let pollingPath = req.baseUrl.replace('/filters', `/${executionId}/status`)\n if (dpdPathFromQuery) {\n pollingPath = `${pollingPath}?dataProductDefinitionsPath=${dataProductDefinitionsPath}`\n }\n const pollingFullUrl = `${origin}${pollingPath}`\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin,\n request: {\n fullUrl: href,\n pathname,\n search,\n },\n polling: {\n fullUrl: pollingFullUrl,\n pathname: pollingPath,\n },\n },\n },\n }\n\n return this\n }\n\n addAsyncUrls = (url?: AsyncReportUrlData) => {\n if (url) {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url,\n },\n }\n }\n\n return this\n }\n\n addReportUrls = (req: Request) => {\n const origin = req.get('host')\n const fullUrl = `${req.protocol}://${req.get('host')}${req.originalUrl}`\n const urlData = parseUrl(req)\n\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin: origin || this.userStoreItem.url?.origin || '',\n ...(this.userStoreItem.url?.request && { request: this.userStoreItem.url.request }),\n ...(this.userStoreItem.url?.polling && { polling: this.userStoreItem.url.polling }),\n report: {\n ...(this.userStoreItem.url?.report && this.userStoreItem.url.report),\n fullUrl,\n ...(urlData && urlData.search && { search: urlData.search }),\n },\n },\n },\n }\n\n return this\n }\n\n addLoadType = (loadType: LoadType) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n loadType,\n }\n\n return this\n }\n\n addQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...(queryData && {\n query: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n }),\n }\n return this\n }\n\n addInteractiveQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n if (queryData) {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n interactiveQuery: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n },\n }\n }\n return this\n }\n\n addStatus = (status: RequestStatus) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n status,\n }\n return this\n }\n\n addMetrics = (metrics: components['schemas']['DashboardSectionDefinition'][]) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n metrics: metrics.filter((metric) => metric.display).map((metric) => ({ name: metric.display || '' })),\n }\n return this\n }\n\n addTimestamp = () => {\n const { status } = this.userStoreItem\n const ts = new Date()\n switch (status) {\n case RequestStatus.FAILED:\n this.userStoreItem.timestamp.failed = ts\n break\n case RequestStatus.EXPIRED:\n this.userStoreItem.timestamp.expired = ts\n break\n case RequestStatus.ABORTED:\n this.userStoreItem.timestamp.aborted = ts\n break\n case RequestStatus.FINISHED:\n this.userStoreItem.timestamp.completed = ts\n break\n case RequestStatus.SUBMITTED:\n this.userStoreItem.timestamp.requested = ts\n break\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n break\n default:\n this.userStoreItem.timestamp.lastViewed = ts\n break\n }\n return this\n }\n\n addDefinitionsPath = (definitionsPath: string, dpdPathFromQuery: boolean) => {\n if (definitionsPath) {\n this.userStoreItem = {\n ...this.userStoreItem,\n dataProductDefinitionsPath: definitionsPath,\n dpdPathFromQuery,\n }\n }\n return this\n }\n}\n\nexport { UserStoreItemBuilder }\nexport default UserStoreItemBuilder\n"],
5
+ "mappings": "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",
6
6
  "names": ["UserStoreItemBuilder_exports", "__export", "UserStoreItemBuilder", "UserStoreItemBuilder_default", "__toCommonJS", "import_parseurl", "import_UserReports", "reportData", "requestFormData", "type", "reportId", "reportName", "description", "id", "name", "executionData", "childExecutionData", "filterData", "filtersQueryString", "sortData", "sortByQueryString", "req", "origin", "pathname", "search", "href", "executionId", "dataProductDefinitionsPath", "dpdPathFromQuery", "pollingPath", "pollingFullUrl", "url", "fullUrl", "urlData", "parseUrl", "loadType", "queryData", "status", "metrics", "metric", "ts", "definitionsPath"]
7
7
  }