@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.25.1 → 4.26.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 (141) hide show
  1. package/dpr/all.scss +17 -35
  2. package/dpr/components/_async/async-filters-form/style.scss +2 -2
  3. package/dpr/components/_async/request-details/style.scss +1 -1
  4. package/dpr/components/_charts/chart/Chart.js +1 -1
  5. package/dpr/components/_charts/chart/Chart.js.map +1 -1
  6. package/dpr/components/_charts/chart/ChartColours.js +1 -1
  7. package/dpr/components/_charts/chart/ChartColours.js.map +1 -1
  8. package/dpr/components/_charts/chart/ChartTimeseries.js +1 -1
  9. package/dpr/components/_charts/chart/ChartTimeseries.js.map +1 -1
  10. package/dpr/components/_charts/chart/bar/BarChart.js +1 -1
  11. package/dpr/components/_charts/chart/bar/BarChart.js.map +2 -2
  12. package/dpr/components/_charts/chart/bar/BarChart.ts +1 -1
  13. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js +1 -1
  14. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +1 -1
  15. package/dpr/components/_charts/chart/buckets/Buckets.js +1 -1
  16. package/dpr/components/_charts/chart/buckets/Buckets.js.map +1 -1
  17. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js +1 -1
  18. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +2 -2
  19. package/dpr/components/_charts/chart/doughnut/DoughnutChart.ts +1 -1
  20. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
  21. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
  22. package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +1 -1
  23. package/dpr/components/_charts/chart/line/LineChart.js +1 -1
  24. package/dpr/components/_charts/chart/line/LineChart.js.map +1 -1
  25. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js +1 -1
  26. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +1 -1
  27. package/dpr/components/_charts/chart/styles.scss +6 -0
  28. package/dpr/components/_charts/chart/view.njk +2 -4
  29. package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
  30. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
  31. package/dpr/components/_dashboards/scorecard/Scorecard.ts +0 -3
  32. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js +1 -1
  33. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +3 -3
  34. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.ts +0 -3
  35. package/dpr/components/_filters/filters-interactive/style.scss +4 -3
  36. package/dpr/components/_filters/fitlers-save-defaults/styles.scss +0 -29
  37. package/dpr/components/_filters/fitlers-save-defaults/view.njk +2 -2
  38. package/dpr/components/_reports/report-heading/styles.scss +4 -0
  39. package/dpr/data/agentConfig.js +1 -1
  40. package/dpr/data/agentConfig.js.map +1 -1
  41. package/dpr/data/dashboardClient.js +1 -1
  42. package/dpr/data/dashboardClient.js.map +1 -1
  43. package/dpr/data/missingReportClient.js +1 -1
  44. package/dpr/data/missingReportClient.js.map +1 -1
  45. package/dpr/data/productCollectionClient.js +1 -1
  46. package/dpr/data/productCollectionClient.js.map +1 -1
  47. package/dpr/data/reportDataStore.js +1 -1
  48. package/dpr/data/reportDataStore.js.map +1 -1
  49. package/dpr/data/reportingClient.js +1 -1
  50. package/dpr/data/reportingClient.js.map +1 -1
  51. package/dpr/data/restClient.js +1 -1
  52. package/dpr/data/restClient.js.map +1 -1
  53. package/dpr/routes/journeys/download-report/controller.js +1 -1
  54. package/dpr/routes/journeys/download-report/controller.js.map +1 -1
  55. package/dpr/routes/journeys/download-report/request-download/form/controller.js +1 -1
  56. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +1 -1
  57. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +1 -1
  58. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +1 -1
  59. package/dpr/routes/journeys/download-report/request-download/service.js +1 -1
  60. package/dpr/routes/journeys/download-report/request-download/service.js.map +1 -1
  61. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
  62. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
  63. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +1 -1
  64. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +1 -1
  65. package/dpr/routes/journeys/my-reports/bookmarks/service.js +4 -4
  66. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +2 -2
  67. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
  68. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +1 -1
  69. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +1 -1
  70. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +1 -1
  71. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +1 -1
  72. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +1 -1
  73. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +1 -1
  74. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +1 -1
  75. package/dpr/routes/journeys/product-collection/selected/controller.js +1 -1
  76. package/dpr/routes/journeys/product-collection/selected/controller.js.map +1 -1
  77. package/dpr/routes/journeys/request-missing-report/form/controller.js +1 -1
  78. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +1 -1
  79. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +1 -1
  80. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +1 -1
  81. package/dpr/routes/journeys/request-report/controller.js +1 -1
  82. package/dpr/routes/journeys/request-report/controller.js.map +1 -1
  83. package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
  84. package/dpr/routes/journeys/request-report/filters/controller.js.map +1 -1
  85. package/dpr/routes/journeys/request-report/status/controller.js +1 -1
  86. package/dpr/routes/journeys/request-report/status/controller.js.map +1 -1
  87. package/dpr/routes/journeys/view-report/async/controller.js +1 -1
  88. package/dpr/routes/journeys/view-report/async/controller.js.map +1 -1
  89. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +1 -1
  90. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +1 -1
  91. package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
  92. package/dpr/routes/journeys/view-report/async/report/controller.js.map +1 -1
  93. package/dpr/routes/journeys/view-report/controller.js +1 -1
  94. package/dpr/routes/journeys/view-report/controller.js.map +1 -1
  95. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js +1 -1
  96. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +1 -1
  97. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
  98. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +1 -1
  99. package/dpr/routes/journeys/view-report/sync/report/controller.js +1 -1
  100. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +1 -1
  101. package/dpr/services/defaultFilterValuesService.js +1 -1
  102. package/dpr/services/defaultFilterValuesService.js.map +1 -1
  103. package/dpr/services/featureFlagService.js +1 -1
  104. package/dpr/services/featureFlagService.js.map +1 -1
  105. package/dpr/services/missingReport/missingReportService.js +1 -1
  106. package/dpr/services/missingReport/missingReportService.js.map +1 -1
  107. package/dpr/services/productCollection/productCollectionService.js +1 -1
  108. package/dpr/services/productCollection/productCollectionService.js.map +1 -1
  109. package/dpr/services/productCollection/productCollectionStoreService.js +1 -1
  110. package/dpr/services/productCollection/productCollectionStoreService.js.map +1 -1
  111. package/dpr/services/reportStoreService.js +1 -1
  112. package/dpr/services/reportStoreService.js.map +1 -1
  113. package/dpr/types/DprUser.js +1 -1
  114. package/dpr/types/DprUser.js.map +1 -1
  115. package/dpr/types/ReportQuery.js +1 -1
  116. package/dpr/types/ReportQuery.js.map +1 -1
  117. package/dpr/types/express.d.js +1 -1
  118. package/dpr/types/express.d.js.map +4 -4
  119. package/dpr/types/express.d.ts +1 -1
  120. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +1 -1
  121. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
  122. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
  123. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +3 -3
  124. package/dpr/utils/DataTableBuilder/DataTableBuilder.test.ts +1 -0
  125. package/dpr/utils/DataTableBuilder/DataTableBuilder.ts +1 -1
  126. package/dpr/utils/DateMapper/DateMapper.js +1 -1
  127. package/dpr/utils/DateMapper/DateMapper.js.map +1 -1
  128. package/dpr/utils/ErrorHandler.js +1 -1
  129. package/dpr/utils/ErrorHandler.js.map +2 -2
  130. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
  131. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  132. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +1 -1
  133. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +1 -1
  134. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +1 -1
  135. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
  136. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +2 -2
  137. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
  138. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
  139. package/dpr/utils/UserStoreItemBuilder.js +1 -1
  140. package/dpr/utils/UserStoreItemBuilder.js.map +1 -1
  141. package/package.json +5 -4
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.ts"],
4
4
  "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport {\n DashboardVisualisationType,\n DashboardVisualisationData,\n} from '../../../_dashboards/dashboard-visualisation/types'\nimport { components } from '../../../../types/api'\nimport { LineTimeseriesDefinitionType } from './types'\nimport LineTimeseriesChartSchemas from './validate'\nimport TimeseriesChart from '../ChartTimeseries'\nimport LineChart from '../line/LineChart'\n\nclass LineTimeseriesChart extends TimeseriesChart {\n private definition!: LineTimeseriesDefinitionType\n\n private lineChartBuilder: LineChart = new LineChart()\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = LineTimeseriesChartSchemas.LineTimeseriesSchema.parse(definition)\n this.initFromDefinition(this.definition)\n return this\n }\n\n build = (): DashboardVisualisationData => {\n this.buildDatasets()\n this.datasets = this.lineChartBuilder.augmentDataset(this.datasets)\n this.setStyles()\n this.config = this.lineChartBuilder.setBespokeOptions()\n\n return {\n type: DashboardVisualisationType.LINE,\n options: {\n unit: this.unit,\n timeseries: true,\n },\n data: {\n labels: this.labels,\n datasets: this.datasets,\n config: this.config,\n partialDate: this.partialDate,\n },\n }\n }\n\n private setStyles = () => {\n this.datasets = this.datasets.map((set, datasetIndex) => {\n const colour = this.hexColours[datasetIndex]\n return {\n ...set,\n backgroundColor: colour,\n borderColor: colour,\n }\n })\n }\n}\n\nexport { LineTimeseriesChart }\nexport default LineTimeseriesChart\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAGO,8DAGPC,EAAuC,yBACvCC,EAA4B,iCAC5BC,EAAsB,gCAEtB,MAAMN,UAA4B,EAAAO,OAAgB,CAAlD,kCAGE,KAAQ,iBAA8B,IAAI,EAAAC,QAE1C,oBAAkBC,IAChB,KAAK,WAAa,EAAAC,QAA2B,qBAAqB,MAAMD,CAAU,EAClF,KAAK,mBAAmB,KAAK,UAAU,EAChC,MAGT,WAAQ,KACN,KAAK,cAAc,EACnB,KAAK,SAAW,KAAK,iBAAiB,eAAe,KAAK,QAAQ,EAClE,KAAK,UAAU,EACf,KAAK,OAAS,KAAK,iBAAiB,kBAAkB,EAE/C,CACL,KAAM,6BAA2B,KACjC,QAAS,CACP,KAAM,KAAK,KACX,WAAY,EACd,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,OACb,YAAa,KAAK,WACpB,CACF,GAGF,KAAQ,UAAY,IAAM,CACxB,KAAK,SAAW,KAAK,SAAS,IAAI,CAACE,EAAKC,IAAiB,CACvD,MAAMC,EAAS,KAAK,WAAWD,CAAY,EAC3C,MAAO,CACL,GAAGD,EACH,gBAAiBE,EACjB,YAAaA,CACf,CACF,CAAC,CACH,EACF,CAGA,IAAOZ,EAAQD",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAGO,8DAGPC,EAAuC,yBACvCC,EAA4B,iCAC5BC,EAAsB,gCAEtB,MAAMN,UAA4B,EAAAO,OAAgB,CACxC,WAEA,iBAA8B,IAAI,EAAAC,QAE1C,eAAkBC,IAChB,KAAK,WAAa,EAAAC,QAA2B,qBAAqB,MAAMD,CAAU,EAClF,KAAK,mBAAmB,KAAK,UAAU,EAChC,MAGT,MAAQ,KACN,KAAK,cAAc,EACnB,KAAK,SAAW,KAAK,iBAAiB,eAAe,KAAK,QAAQ,EAClE,KAAK,UAAU,EACf,KAAK,OAAS,KAAK,iBAAiB,kBAAkB,EAE/C,CACL,KAAM,6BAA2B,KACjC,QAAS,CACP,KAAM,KAAK,KACX,WAAY,EACd,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,OACb,YAAa,KAAK,WACpB,CACF,GAGM,UAAY,IAAM,CACxB,KAAK,SAAW,KAAK,SAAS,IAAI,CAACE,EAAKC,IAAiB,CACvD,MAAMC,EAAS,KAAK,WAAWD,CAAY,EAC3C,MAAO,CACL,GAAGD,EACH,gBAAiBE,EACjB,YAAaA,CACf,CACF,CAAC,CACH,CACF,CAGA,IAAOZ,EAAQD",
6
6
  "names": ["LineTimeseriesChart_exports", "__export", "LineTimeseriesChart", "LineTimeseriesChart_default", "__toCommonJS", "import_types", "import_validate", "import_ChartTimeseries", "import_LineChart", "TimeseriesChart", "LineChart", "definition", "LineTimeseriesChartSchemas", "set", "datasetIndex", "colour"]
7
7
  }
@@ -22,6 +22,12 @@
22
22
  background-color: govuk-colour("dark-blue")
23
23
  }
24
24
 
25
+ @for $i from 1 through 50 {
26
+ .dpr-chart-height-#{$i} {
27
+ height: $i * 80px !important;
28
+ }
29
+ }
30
+
25
31
  .dpr-chart {
26
32
  height: 400px;
27
33
  }
@@ -4,15 +4,13 @@
4
4
  {% set height = options.height %}
5
5
 
6
6
  <div id="{{ id }}-chart-wrapper"
7
- class="dpr-chart dpr-{{ type }}-chart"
7
+ class="dpr-chart dpr-{{ type }}-chart dpr-chart-height-{{ height }}"
8
8
  data-dpr-module="{{ type }}-chart"
9
9
  data-dpr-chart-data="{{ chartData | json }}"
10
10
  data-dpr-chart-type="{{ type }}"
11
11
  data-dpr-chart-unit="{{ unit }}"
12
12
  data-dpr-chart-timeseries="{{ timeseries }}"
13
- {% if options.height %}
14
- style="height: {{ height }}px"
15
- {% endif %}
13
+ data-dpr-chart-height="{{ height }}"
16
14
  >
17
15
  <div class="dpr-canvas-wrapper"><canvas id="{{ id }}" class="chart-canvas"></canvas></div>
18
16
  <div id="js-legend-{{ id }}" class="dpr-chart-legend"></div>
@@ -1,2 +1,2 @@
1
- "use strict";var y=Object.create;var d=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var w=(i,e)=>{for(var t in e)d(i,t,{get:e[t],enumerable:!0})},D=(i,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of R(e))!B.call(i,s)&&s!==t&&d(i,s,{get:()=>e[s],enumerable:!(a=k(e,s))||a.enumerable});return i};var h=(i,e,t)=>(t=i!=null?y(T(i)):{},D(e||!i||!i.__esModule?d(t,"default",{value:i,enumerable:!0}):t,i)),C=i=>D(d({},"__esModule",{value:!0}),i);var N={};w(N,{ScorecardVisualisation:()=>p,default:()=>V});module.exports=C(N);var f=h(require("../../_charts/chart/buckets/Buckets")),c=h(require("../../../utils/datasetHelper")),b=h(require("./validate"));class p{constructor(){this.buckets=[];this.responseData=[];this.ragColours=["#cce2d8","#fff7bf","#f4cdc6"];this.withDefinition=e=>(this.definition=b.default.ScorecardSchema.parse(e),this.init(),this);this.withData=e=>(this.responseData=e,this.dataset=this.getDataset(this.definition,this.responseData),this.initBuckets(this.responseData,this.valueKey),this);this.init=()=>{this.id=this.definition.id,this.measures=this.definition.columns.measures,this.options=this.definition.options,this.titleColumn={display:this.definition.display,id:this.valueKey},this.initFromMeasures()};this.initFromMeasures=()=>{this.measures[0]!==void 0&&(this.valueKey=this.measures[0].id,this.unit=this.measures[0].unit?this.measures[0].unit:void 0)};this.initBuckets=(e,t)=>{(this.options?.buckets||this.options?.useRagColour)&&(this.bucketsHelper=new f.default(e,this.definition,t,!1,this.ragColours),this.buckets=this.bucketsHelper.getBuckets())};this.getDataset=(e,t)=>{const a=c.default.getLastestDataset(t),s=c.default.getDatasetRows(e,a),r=s[0]?.ts?.raw,o=c.default.filterRowsByDisplayColumns(e,s,!0),u=c.default.getEarliestDataset(t),n=c.default.getDatasetRows(e,u),l=n[0]?.ts?.raw;return{earliest:c.default.filterRowsByDisplayColumns(e,n,!0),earliestTs:l,latest:o,latestTs:r}};this.createScorecardData=({id:e,title:t,value:a,rag:s,valueFor:r,valueFrom:o,prevVal:u,groupTitle:n})=>({id:e,title:t,value:a,...s&&{rag:s},valueFor:r,trend:this.createTrend(r,o,a,u),...n&&{group:n}});this.createTrend=(e,t,a,s)=>{let r;if(t!==e){const o=s?Number(a)-Number(s):0;r={direction:Math.sign(o),value:Math.abs(o),from:t}}return r};this.setRagScore=(e,t,a,s)=>{let r;return!Number.isNaN(e)&&a?.length&&s&&(r=s.getBucketForValue(e,t)),r};this.build=()=>{const{latest:e,earliest:t,latestTs:a,earliestTs:s}=this.dataset;return e.map((o,u)=>{const{raw:n,rag:l}=o[this.valueKey],m=t[u][this.valueKey].raw,S=`${a}`,g=`${s}`,v=this.titleColumn?.display;return this.createScorecardData({id:this.id,title:v||"",value:n||"",rag:this.setRagScore(n,l,this.buckets,this.bucketsHelper),prevVal:m,valueFor:S,valueFrom:g})})[0]}}}var V=p;0&&(module.exports={ScorecardVisualisation});
1
+ "use strict";var y=Object.create;var u=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var B=(i,e)=>{for(var t in e)u(i,t,{get:e[t],enumerable:!0})},m=(i,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of R(e))!w.call(i,s)&&s!==t&&u(i,s,{get:()=>e[s],enumerable:!(a=k(e,s))||a.enumerable});return i};var h=(i,e,t)=>(t=i!=null?y(T(i)):{},m(e||!i||!i.__esModule?u(t,"default",{value:i,enumerable:!0}):t,i)),C=i=>m(u({},"__esModule",{value:!0}),i);var K={};B(K,{ScorecardVisualisation:()=>p,default:()=>V});module.exports=C(K);var f=h(require("../../_charts/chart/buckets/Buckets")),c=h(require("../../../utils/datasetHelper")),b=h(require("./validate"));class p{definition;id;measures;options;dataset;bucketsHelper;buckets=[];valueKey;titleColumn;responseData=[];ragColours=["#cce2d8","#fff7bf","#f4cdc6"];withDefinition=e=>(this.definition=b.default.ScorecardSchema.parse(e),this.init(),this);withData=e=>(this.responseData=e,this.dataset=this.getDataset(this.definition,this.responseData),this.initBuckets(this.responseData,this.valueKey),this);init=()=>{this.id=this.definition.id,this.measures=this.definition.columns.measures,this.options=this.definition.options,this.titleColumn={display:this.definition.display,id:this.valueKey},this.initFromMeasures()};initFromMeasures=()=>{this.measures[0]!==void 0&&(this.valueKey=this.measures[0].id)};initBuckets=(e,t)=>{(this.options?.buckets||this.options?.useRagColour)&&(this.bucketsHelper=new f.default(e,this.definition,t,!1,this.ragColours),this.buckets=this.bucketsHelper.getBuckets())};getDataset=(e,t)=>{const a=c.default.getLastestDataset(t),s=c.default.getDatasetRows(e,a),r=s[0]?.ts?.raw,o=c.default.filterRowsByDisplayColumns(e,s,!0),d=c.default.getEarliestDataset(t),n=c.default.getDatasetRows(e,d),l=n[0]?.ts?.raw;return{earliest:c.default.filterRowsByDisplayColumns(e,n,!0),earliestTs:l,latest:o,latestTs:r}};createScorecardData=({id:e,title:t,value:a,rag:s,valueFor:r,valueFrom:o,prevVal:d,groupTitle:n})=>({id:e,title:t,value:a,...s&&{rag:s},valueFor:r,trend:this.createTrend(r,o,a,d),...n&&{group:n}});createTrend=(e,t,a,s)=>{let r;if(t!==e){const o=s?Number(a)-Number(s):0;r={direction:Math.sign(o),value:Math.abs(o),from:t}}return r};setRagScore=(e,t,a,s)=>{let r;return!Number.isNaN(e)&&a?.length&&s&&(r=s.getBucketForValue(e,t)),r};build=()=>{const{latest:e,earliest:t,latestTs:a,earliestTs:s}=this.dataset;return e.map((o,d)=>{const{raw:n,rag:l}=o[this.valueKey],D=t[d][this.valueKey].raw,S=`${a}`,g=`${s}`,v=this.titleColumn?.display;return this.createScorecardData({id:this.id,title:v||"",value:n||"",rag:this.setRagScore(n,l,this.buckets,this.bucketsHelper),prevVal:D,valueFor:S,valueFrom:g})})[0]}}var V=p;0&&(module.exports={ScorecardVisualisation});
2
2
  //# sourceMappingURL=Scorecard.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_dashboards/scorecard/Scorecard.ts"],
4
- "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport { DashboardVisualisationBucket } from '../dashboard-visualisation/types'\nimport { CreateScorecardDataArgs, Scorecard, ScorecardDataset, ScorecardDefinitionType, ScorecardTrend } from './types'\nimport Buckets from '../../_charts/chart/buckets/Buckets'\nimport { components } from '../../../types/api'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport ScorecardSchemas from './validate'\nimport { ScorecardGroupDefinitionType } from '../scorecard-group/types'\n\nclass ScorecardVisualisation {\n private definition!: ScorecardDefinitionType\n\n private id!: string\n\n private measures!: ScorecardDefinitionType['columns']['measures']\n\n private options!: ScorecardDefinitionType['options']\n\n private dataset!: ScorecardDataset\n\n private bucketsHelper: Buckets | undefined\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private valueKey!: string\n\n private titleColumn: components['schemas']['DashboardVisualisationColumnDefinition'] | undefined\n\n private unit: 'NUMBER' | 'PERCENTAGE' | undefined\n\n responseData: DashboardDataResponse[] = []\n\n ragColours: string[] = ['#cce2d8', '#fff7bf', '#f4cdc6']\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = ScorecardSchemas.ScorecardSchema.parse(definition)\n this.init()\n\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.dataset = this.getDataset(this.definition, this.responseData)\n this.initBuckets(this.responseData, this.valueKey)\n\n return this\n }\n\n private init = () => {\n this.id = this.definition.id\n this.measures = this.definition.columns.measures\n this.options = this.definition.options\n this.titleColumn = { display: this.definition.display, id: this.valueKey }\n this.initFromMeasures()\n }\n\n private initFromMeasures = () => {\n // Zod should throw an error on line 40 so should always pass\n if (this.measures[0] !== undefined) {\n this.valueKey = this.measures[0].id\n this.unit = this.measures[0].unit ? this.measures[0].unit : undefined\n }\n }\n\n private initBuckets = (responseData: DashboardDataResponse[], valueKey: string) => {\n if (this.options?.buckets || this.options?.useRagColour) {\n this.bucketsHelper = new Buckets(responseData, this.definition, valueKey, false, this.ragColours)\n this.buckets = this.bucketsHelper.getBuckets()\n }\n }\n\n getDataset = (\n definition: ScorecardDefinitionType | ScorecardGroupDefinitionType,\n rawData: DashboardDataResponse[],\n ): ScorecardDataset => {\n const latestData = DatasetHelper.getLastestDataset(rawData)\n const latestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestData,\n )\n const latestTs = latestDataSetRows[0]?.['ts']?.raw\n const latestFiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestDataSetRows,\n true,\n )\n\n const earliestData = DatasetHelper.getEarliestDataset(rawData)\n const earliestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestData,\n )\n const earliestTs = earliestDataSetRows[0]?.['ts']?.raw\n const earliestfiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestDataSetRows,\n true,\n )\n\n return {\n earliest: earliestfiltered,\n earliestTs,\n latest: latestFiltered,\n latestTs,\n }\n }\n\n createScorecardData = ({\n id,\n title,\n value,\n rag,\n valueFor,\n valueFrom,\n prevVal,\n groupTitle,\n }: CreateScorecardDataArgs): Scorecard => {\n return {\n id,\n title,\n value,\n ...(rag && { rag }),\n valueFor,\n trend: this.createTrend(valueFor, valueFrom, value, prevVal),\n ...(groupTitle && {\n group: groupTitle,\n }),\n }\n }\n\n createTrend = (\n valueFor: string,\n valueFrom: string,\n latestValue: string | number,\n earliestValue: string | number | null | undefined,\n ): ScorecardTrend | undefined => {\n let trendData\n\n if (valueFrom !== valueFor) {\n const value = earliestValue ? Number(latestValue) - Number(earliestValue) : 0\n const direction = Math.sign(value)\n trendData = {\n direction,\n value: Math.abs(value),\n from: valueFrom,\n }\n }\n\n return trendData\n }\n\n setRagScore = (\n value: string | number | undefined | null,\n rag: number | undefined,\n buckets: DashboardVisualisationBucket[] | undefined,\n bucketsHelper: Buckets | undefined,\n ) => {\n let ragScore\n if (!Number.isNaN(value) && buckets?.length && bucketsHelper) {\n ragScore = bucketsHelper.getBucketForValue(<number>value, rag)\n }\n return ragScore\n }\n\n build = () => {\n const { latest, earliest, latestTs, earliestTs } = this.dataset\n const scorecordArr: Scorecard[] = latest.map((datasetRow: DashboardDataResponse, index: number) => {\n const { raw: value, rag } = datasetRow[this.valueKey]\n const prevVal = earliest[index][this.valueKey].raw\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n const title = this.titleColumn?.display\n\n return this.createScorecardData({\n id: this.id,\n title: title || '',\n value: value || '',\n rag: this.setRagScore(value, rag, this.buckets, this.bucketsHelper),\n prevVal,\n valueFor,\n valueFrom,\n })\n })\n\n return scorecordArr[0]\n }\n}\n\nexport { ScorecardVisualisation }\nexport default ScorecardVisualisation\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport { DashboardVisualisationBucket } from '../dashboard-visualisation/types'\nimport { CreateScorecardDataArgs, Scorecard, ScorecardDataset, ScorecardDefinitionType, ScorecardTrend } from './types'\nimport Buckets from '../../_charts/chart/buckets/Buckets'\nimport { components } from '../../../types/api'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport ScorecardSchemas from './validate'\nimport { ScorecardGroupDefinitionType } from '../scorecard-group/types'\n\nclass ScorecardVisualisation {\n private definition!: ScorecardDefinitionType\n\n private id!: string\n\n private measures!: ScorecardDefinitionType['columns']['measures']\n\n private options!: ScorecardDefinitionType['options']\n\n private dataset!: ScorecardDataset\n\n private bucketsHelper: Buckets | undefined\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private valueKey!: string\n\n private titleColumn: components['schemas']['DashboardVisualisationColumnDefinition'] | undefined\n\n responseData: DashboardDataResponse[] = []\n\n ragColours: string[] = ['#cce2d8', '#fff7bf', '#f4cdc6']\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = ScorecardSchemas.ScorecardSchema.parse(definition)\n this.init()\n\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.dataset = this.getDataset(this.definition, this.responseData)\n this.initBuckets(this.responseData, this.valueKey)\n\n return this\n }\n\n private init = () => {\n this.id = this.definition.id\n this.measures = this.definition.columns.measures\n this.options = this.definition.options\n this.titleColumn = { display: this.definition.display, id: this.valueKey }\n this.initFromMeasures()\n }\n\n private initFromMeasures = () => {\n // Zod should throw an error on line 40 so should always pass\n if (this.measures[0] !== undefined) {\n this.valueKey = this.measures[0].id\n }\n }\n\n private initBuckets = (responseData: DashboardDataResponse[], valueKey: string) => {\n if (this.options?.buckets || this.options?.useRagColour) {\n this.bucketsHelper = new Buckets(responseData, this.definition, valueKey, false, this.ragColours)\n this.buckets = this.bucketsHelper.getBuckets()\n }\n }\n\n getDataset = (\n definition: ScorecardDefinitionType | ScorecardGroupDefinitionType,\n rawData: DashboardDataResponse[],\n ): ScorecardDataset => {\n const latestData = DatasetHelper.getLastestDataset(rawData)\n const latestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestData,\n )\n const latestTs = latestDataSetRows[0]?.['ts']?.raw\n const latestFiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestDataSetRows,\n true,\n )\n\n const earliestData = DatasetHelper.getEarliestDataset(rawData)\n const earliestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestData,\n )\n const earliestTs = earliestDataSetRows[0]?.['ts']?.raw\n const earliestfiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestDataSetRows,\n true,\n )\n\n return {\n earliest: earliestfiltered,\n earliestTs,\n latest: latestFiltered,\n latestTs,\n }\n }\n\n createScorecardData = ({\n id,\n title,\n value,\n rag,\n valueFor,\n valueFrom,\n prevVal,\n groupTitle,\n }: CreateScorecardDataArgs): Scorecard => {\n return {\n id,\n title,\n value,\n ...(rag && { rag }),\n valueFor,\n trend: this.createTrend(valueFor, valueFrom, value, prevVal),\n ...(groupTitle && {\n group: groupTitle,\n }),\n }\n }\n\n createTrend = (\n valueFor: string,\n valueFrom: string,\n latestValue: string | number,\n earliestValue: string | number | null | undefined,\n ): ScorecardTrend | undefined => {\n let trendData\n\n if (valueFrom !== valueFor) {\n const value = earliestValue ? Number(latestValue) - Number(earliestValue) : 0\n const direction = Math.sign(value)\n trendData = {\n direction,\n value: Math.abs(value),\n from: valueFrom,\n }\n }\n\n return trendData\n }\n\n setRagScore = (\n value: string | number | undefined | null,\n rag: number | undefined,\n buckets: DashboardVisualisationBucket[] | undefined,\n bucketsHelper: Buckets | undefined,\n ) => {\n let ragScore\n if (!Number.isNaN(value) && buckets?.length && bucketsHelper) {\n ragScore = bucketsHelper.getBucketForValue(<number>value, rag)\n }\n return ragScore\n }\n\n build = () => {\n const { latest, earliest, latestTs, earliestTs } = this.dataset\n const scorecordArr: Scorecard[] = latest.map((datasetRow: DashboardDataResponse, index: number) => {\n const { raw: value, rag } = datasetRow[this.valueKey]\n const prevVal = earliest[index][this.valueKey].raw\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n const title = this.titleColumn?.display\n\n return this.createScorecardData({\n id: this.id,\n title: title || '',\n value: value || '',\n rag: this.setRagScore(value, rag, this.buckets, this.bucketsHelper),\n prevVal,\n valueFor,\n valueFrom,\n })\n })\n\n return scorecordArr[0]\n }\n}\n\nexport { ScorecardVisualisation }\nexport default ScorecardVisualisation\n"],
5
+ "mappings": "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",
6
6
  "names": ["Scorecard_exports", "__export", "ScorecardVisualisation", "Scorecard_default", "__toCommonJS", "import_Buckets", "import_datasetHelper", "import_validate", "definition", "ScorecardSchemas", "responseData", "valueKey", "Buckets", "rawData", "latestData", "DatasetHelper", "latestDataSetRows", "latestTs", "latestFiltered", "earliestData", "earliestDataSetRows", "earliestTs", "id", "title", "value", "rag", "valueFor", "valueFrom", "prevVal", "groupTitle", "latestValue", "earliestValue", "trendData", "buckets", "bucketsHelper", "ragScore", "latest", "earliest", "datasetRow", "index"]
7
7
  }
@@ -27,8 +27,6 @@ class ScorecardVisualisation {
27
27
 
28
28
  private titleColumn: components['schemas']['DashboardVisualisationColumnDefinition'] | undefined
29
29
 
30
- private unit: 'NUMBER' | 'PERCENTAGE' | undefined
31
-
32
30
  responseData: DashboardDataResponse[] = []
33
31
 
34
32
  ragColours: string[] = ['#cce2d8', '#fff7bf', '#f4cdc6']
@@ -60,7 +58,6 @@ class ScorecardVisualisation {
60
58
  // Zod should throw an error on line 40 so should always pass
61
59
  if (this.measures[0] !== undefined) {
62
60
  this.valueKey = this.measures[0].id
63
- this.unit = this.measures[0].unit ? this.measures[0].unit : undefined
64
61
  }
65
62
  }
66
63
 
@@ -1,2 +1,2 @@
1
- "use strict";var V=Object.create;var h=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var H=(i,e)=>{for(var t in e)h(i,t,{get:e[t],enumerable:!0})},D=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of T(e))!$.call(i,s)&&s!==t&&h(i,s,{get:()=>e[s],enumerable:!(r=w(e,s))||r.enumerable});return i};var m=(i,e,t)=>(t=i!=null?V(F(i)):{},D(e||!i||!i.__esModule?h(t,"default",{value:i,enumerable:!0}):t,i)),N=i=>D(h({},"__esModule",{value:!0}),i);var E={};H(E,{ScorecardGroupVisualisation:()=>f,default:()=>M});module.exports=N(E);var y=m(require("../../../utils/datasetHelper")),g=m(require("../../_charts/chart/buckets/Buckets")),K=m(require("../scorecard/Scorecard")),S=m(require("./validate"));class f{constructor(){this.buckets=[];this.valueKey="";this.titleKey="";this.responseData=[];this.withDefinition=e=>(this.definition=S.default.ScorecardGroupSchema.parse(e),this.init(),this);this.withData=e=>(this.responseData=e,this.dataset=this.scoreCardBuilder.getDataset(this.definition,this.responseData),this.initBuckets(this.responseData,this.valueKey),this.initGroupVars(),this);this.init=()=>{this.id=this.definition.id,this.measures=this.definition.columns.measures,this.keys=this.definition.columns.keys,this.options=this.definition.options,this.valueKey=this.measures[0].id,this.titleColumn={display:this.definition.display||"",id:this.valueKey},this.unit=this.definition.columns.measures[0].unit?this.definition.columns.measures[0].unit:void 0};this.initBuckets=(e,t)=>{(this.options?.buckets||this.options?.useRagColour)&&(this.bucketsHelper=new g.default(e,this.definition,t,!1,this.scoreCardBuilder.ragColours),this.buckets=this.bucketsHelper.getBuckets())};this.initGroupVars=()=>{this.groupKey=y.default.getGroupKey(this.dataset.latest,this.keys||[]),this.groupKeyId=this.groupKey?.id,this.groupKeyDisplay=this.groupKey?.display,this.valueColumn=this.measures.find(e=>e.displayValue),this.valueColumn&&(this.valueKey=this.valueColumn?.id,this.titleColumn=this.measures.find(e=>e.display||e.display===""),this.titleKey=this.titleColumn?.id||"")};this.createScorecardGroupFromColumns=()=>{const{latest:e,earliest:t,latestTs:r,earliestTs:s}=this.dataset;return e.map((o,u)=>({title:this.createGroupTitle(o),scorecards:Object.keys(o).filter(a=>a!==this.groupKeyId).map(a=>{const c=this.measures.find(R=>R.id===a)?.display||a,p=o[a],{raw:d,rag:l}=p,v=Number(d),G=l!==void 0?Number(l):void 0;this.initBuckets([o],a);const b=`${r}`,C=`${s}`,k=t[u][a]?.raw,B=this.scoreCardBuilder.setRagScore(v,G,this.buckets,this.bucketsHelper);return this.scoreCardBuilder.createScorecardData({id:this.id,title:c,value:v,rag:B,prevVal:k,valueFor:b,valueFrom:C})})}))};this.createScorecardGroupFromList=()=>{const{latest:e,earliest:t}=this.dataset;return[{title:"",scorecards:e.map((r,s)=>{const o=this.getScorecardValues(r),u=t[s][this.valueKey].raw;return this.scoreCardBuilder.createScorecardData({...o,prevVal:u})})}]};this.createScorecardGroupFromListWithGroups=()=>{const{latest:e,earliest:t}=this.dataset;let r=y.default.groupRowsByKey(t,this.groupKeyId),s=y.default.groupRowsByKey(e,this.groupKeyId);return this.groupKeyId===this.titleKey&&(s=[s.flat()],r=[r.flat()]),s.map((u,a)=>({title:this.groupKeyDisplay?`By ${this.groupKeyDisplay}`:"",scorecards:u.map((n,c)=>{const p=this.getScorecardValues(n),l=r[a][c][this.valueKey]?.raw;return this.scoreCardBuilder.createScorecardData({...p,prevVal:l})})}))};this.getScorecardValues=e=>{const{latestTs:t,earliestTs:r}=this.dataset,s=`${this.titleColumn?.display} ${e[this.titleKey].raw}`,o=e[this.valueKey],{raw:u,rag:a}=o,n=Number(u),c=a!==void 0?Number(a):void 0;this.initBuckets([e],this.valueKey);const p=`${t}`,d=`${r}`;return{id:this.id,title:s,value:n,rag:this.scoreCardBuilder.setRagScore(n,c,this.buckets,this.bucketsHelper),valueFor:p,valueFrom:d}};this.createGroupTitle=e=>{const t=this.groupKeyId?`${e[this.groupKeyId]?.raw}`:"";return this.groupKeyDisplay&&this.groupKeyDisplay.length?`${this.groupKeyDisplay}: ${t}`:t};this.build=()=>{let e;return this.valueColumn?this.groupKey?e=this.createScorecardGroupFromListWithGroups():e=this.createScorecardGroupFromList():e=this.createScorecardGroupFromColumns(),e};this.scoreCardBuilder=new K.default}}var M=f;0&&(module.exports={ScorecardGroupVisualisation});
1
+ "use strict";var R=Object.create;var h=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var H=(r,e)=>{for(var t in e)h(r,t,{get:e[t],enumerable:!0})},v=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of T(e))!$.call(r,s)&&s!==t&&h(r,s,{get:()=>e[s],enumerable:!(i=w(e,s))||i.enumerable});return r};var m=(r,e,t)=>(t=r!=null?R(F(r)):{},v(e||!r||!r.__esModule?h(t,"default",{value:r,enumerable:!0}):t,r)),I=r=>v(h({},"__esModule",{value:!0}),r);var M={};H(M,{ScorecardGroupVisualisation:()=>f,default:()=>L});module.exports=I(M);var y=m(require("../../../utils/datasetHelper")),g=m(require("../../_charts/chart/buckets/Buckets")),K=m(require("../scorecard/Scorecard")),S=m(require("./validate"));class f{definition;id;measures;keys;options;dataset;groupKey;groupKeyId;groupKeyDisplay;bucketsHelper;buckets=[];valueColumn;valueKey="";titleColumn;titleKey="";responseData=[];scoreCardBuilder;constructor(){this.scoreCardBuilder=new K.default}withDefinition=e=>(this.definition=S.default.ScorecardGroupSchema.parse(e),this.init(),this);withData=e=>(this.responseData=e,this.dataset=this.scoreCardBuilder.getDataset(this.definition,this.responseData),this.initBuckets(this.responseData,this.valueKey),this.initGroupVars(),this);init=()=>{this.id=this.definition.id,this.measures=this.definition.columns.measures,this.keys=this.definition.columns.keys,this.options=this.definition.options,this.valueKey=this.measures[0].id,this.titleColumn={display:this.definition.display||"",id:this.valueKey}};initBuckets=(e,t)=>{(this.options?.buckets||this.options?.useRagColour)&&(this.bucketsHelper=new g.default(e,this.definition,t,!1,this.scoreCardBuilder.ragColours),this.buckets=this.bucketsHelper.getBuckets())};initGroupVars=()=>{this.groupKey=y.default.getGroupKey(this.dataset.latest,this.keys||[]),this.groupKeyId=this.groupKey?.id,this.groupKeyDisplay=this.groupKey?.display,this.valueColumn=this.measures.find(e=>e.displayValue),this.valueColumn&&(this.valueKey=this.valueColumn?.id,this.titleColumn=this.measures.find(e=>e.display||e.display===""),this.titleKey=this.titleColumn?.id||"")};createScorecardGroupFromColumns=()=>{const{latest:e,earliest:t,latestTs:i,earliestTs:s}=this.dataset;return e.map((o,u)=>({title:this.createGroupTitle(o),scorecards:Object.keys(o).filter(a=>a!==this.groupKeyId).map(a=>{const c=this.measures.find(V=>V.id===a)?.display||a,p=o[a],{raw:d,rag:l}=p,D=Number(d),G=l!==void 0?Number(l):void 0;this.initBuckets([o],a);const b=`${i}`,C=`${s}`,k=t[u][a]?.raw,B=this.scoreCardBuilder.setRagScore(D,G,this.buckets,this.bucketsHelper);return this.scoreCardBuilder.createScorecardData({id:this.id,title:c,value:D,rag:B,prevVal:k,valueFor:b,valueFrom:C})})}))};createScorecardGroupFromList=()=>{const{latest:e,earliest:t}=this.dataset;return[{title:"",scorecards:e.map((i,s)=>{const o=this.getScorecardValues(i),u=t[s][this.valueKey].raw;return this.scoreCardBuilder.createScorecardData({...o,prevVal:u})})}]};createScorecardGroupFromListWithGroups=()=>{const{latest:e,earliest:t}=this.dataset;let i=y.default.groupRowsByKey(t,this.groupKeyId),s=y.default.groupRowsByKey(e,this.groupKeyId);return this.groupKeyId===this.titleKey&&(s=[s.flat()],i=[i.flat()]),s.map((u,a)=>({title:this.groupKeyDisplay?`By ${this.groupKeyDisplay}`:"",scorecards:u.map((n,c)=>{const p=this.getScorecardValues(n),l=i[a][c][this.valueKey]?.raw;return this.scoreCardBuilder.createScorecardData({...p,prevVal:l})})}))};getScorecardValues=e=>{const{latestTs:t,earliestTs:i}=this.dataset,s=`${this.titleColumn?.display} ${e[this.titleKey].raw}`,o=e[this.valueKey],{raw:u,rag:a}=o,n=Number(u),c=a!==void 0?Number(a):void 0;this.initBuckets([e],this.valueKey);const p=`${t}`,d=`${i}`;return{id:this.id,title:s,value:n,rag:this.scoreCardBuilder.setRagScore(n,c,this.buckets,this.bucketsHelper),valueFor:p,valueFrom:d}};createGroupTitle=e=>{const t=this.groupKeyId?`${e[this.groupKeyId]?.raw}`:"";return this.groupKeyDisplay&&this.groupKeyDisplay.length?`${this.groupKeyDisplay}: ${t}`:t};build=()=>{let e;return this.valueColumn?this.groupKey?e=this.createScorecardGroupFromListWithGroups():e=this.createScorecardGroupFromList():e=this.createScorecardGroupFromColumns(),e}}var L=f;0&&(module.exports={ScorecardGroupVisualisation});
2
2
  //# sourceMappingURL=ScorecardGroup.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_dashboards/scorecard-group/ScorecardGroup.ts"],
4
- "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport { ScorecardDataset, ScorecardGroup } from '../scorecard/types'\nimport Buckets from '../../_charts/chart/buckets/Buckets'\nimport { components } from '../../../types/api'\nimport ScorecardVisualisation from '../scorecard/Scorecard'\nimport { ScorecardGroupDefinitionType, ScorecardGroupDefinitionMeasure } from './types'\nimport { DashboardVisualisationBucket } from '../dashboard-visualisation/types'\nimport ScorecardGroupSchemas from './validate'\n\nclass ScorecardGroupVisualisation {\n private definition!: ScorecardGroupDefinitionType\n\n private id!: string\n\n private measures!: ScorecardGroupDefinitionType['columns']['measures']\n\n private keys!: ScorecardGroupDefinitionType['columns']['keys']\n\n private options!: ScorecardGroupDefinitionType['options']\n\n private dataset!: ScorecardDataset\n\n private groupKey: ScorecardGroupDefinitionMeasure | undefined\n\n private groupKeyId: string | undefined\n\n private groupKeyDisplay: string | undefined\n\n private bucketsHelper: Buckets | undefined\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private valueColumn: ScorecardGroupDefinitionMeasure | undefined\n\n private valueKey = ''\n\n private titleColumn: ScorecardGroupDefinitionMeasure | undefined\n\n private titleKey = ''\n\n private unit: 'NUMBER' | 'PERCENTAGE' | undefined\n\n responseData: DashboardDataResponse[] = []\n\n scoreCardBuilder: ScorecardVisualisation\n\n constructor() {\n this.scoreCardBuilder = new ScorecardVisualisation()\n }\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = ScorecardGroupSchemas.ScorecardGroupSchema.parse(definition)\n this.init()\n\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.dataset = this.scoreCardBuilder.getDataset(this.definition, this.responseData)\n this.initBuckets(this.responseData, this.valueKey)\n this.initGroupVars()\n return this\n }\n\n private init = () => {\n this.id = this.definition.id\n this.measures = this.definition.columns.measures\n this.keys = this.definition.columns.keys\n this.options = this.definition.options\n this.valueKey = this.measures[0].id\n this.titleColumn = { display: this.definition.display || '', id: this.valueKey }\n this.unit = this.definition.columns.measures[0].unit ? this.definition.columns.measures[0].unit : undefined\n }\n\n private initBuckets = (responseData: DashboardDataResponse[], valueKey: string) => {\n if (this.options?.buckets || this.options?.useRagColour) {\n this.bucketsHelper = new Buckets(responseData, this.definition, valueKey, false, this.scoreCardBuilder.ragColours)\n this.buckets = this.bucketsHelper.getBuckets()\n }\n }\n\n private initGroupVars = () => {\n this.groupKey = DatasetHelper.getGroupKey(\n this.dataset.latest,\n <Array<components['schemas']['DashboardVisualisationColumnDefinition']>>this.keys || [],\n )\n this.groupKeyId = this.groupKey?.id\n this.groupKeyDisplay = this.groupKey?.display\n\n this.valueColumn = this.measures.find((col) => col.displayValue)\n if (this.valueColumn) {\n this.valueKey = this.valueColumn?.id\n this.titleColumn = this.measures.find((col) => {\n return col.display || col.display === ''\n })\n this.titleKey = this.titleColumn?.id || ''\n }\n }\n\n private createScorecardGroupFromColumns = () => {\n const { latest, earliest, latestTs, earliestTs } = this.dataset\n\n return latest.map((row, rowIndex) => {\n return {\n title: this.createGroupTitle(row),\n scorecards: Object.keys(row)\n .filter((colId) => colId !== this.groupKeyId)\n .map((colId) => {\n const measure = this.measures.find((m) => m.id === colId)\n const title = measure?.display || colId\n const rowCol = row[colId]\n const { raw, rag } = rowCol\n const value = Number(raw)\n\n const ragValue = rag !== undefined ? Number(rag) : undefined\n this.initBuckets([row], colId)\n\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n\n const comparisonRow = earliest[rowIndex]\n const prevVal = comparisonRow[colId]?.raw\n const ragScore = this.scoreCardBuilder.setRagScore(value, ragValue, this.buckets, this.bucketsHelper)\n\n return this.scoreCardBuilder.createScorecardData({\n id: this.id,\n title,\n value,\n rag: ragScore,\n prevVal,\n valueFor,\n valueFrom,\n })\n }),\n }\n })\n }\n\n private createScorecardGroupFromList = (): ScorecardGroup[] => {\n const { latest, earliest } = this.dataset\n return [\n {\n title: '',\n scorecards: latest.map((row: DashboardDataResponse, index: number) => {\n const values = this.getScorecardValues(row)\n const prevVal = earliest[index][this.valueKey].raw\n return this.scoreCardBuilder.createScorecardData({\n ...values,\n prevVal,\n })\n }),\n },\n ]\n }\n\n private createScorecardGroupFromListWithGroups = () => {\n const { latest, earliest } = this.dataset\n\n let earliestGroupedByKey = DatasetHelper.groupRowsByKey(earliest, <string>this.groupKeyId)\n let latestGroupedByKey = DatasetHelper.groupRowsByKey(latest, <string>this.groupKeyId)\n if (this.groupKeyId === this.titleKey) {\n latestGroupedByKey = [latestGroupedByKey.flat()]\n earliestGroupedByKey = [earliestGroupedByKey.flat()]\n }\n\n const scorecardGroup = latestGroupedByKey.map((group, groupIndex) => {\n return {\n title: this.groupKeyDisplay ? `By ${this.groupKeyDisplay}` : '',\n scorecards: group.map((row, rowIndex) => {\n const values = this.getScorecardValues(row)\n const comparisonRow = earliestGroupedByKey[groupIndex][rowIndex]\n const prevVal = comparisonRow[this.valueKey]?.raw\n\n return this.scoreCardBuilder.createScorecardData({\n ...values,\n prevVal,\n })\n }),\n }\n })\n\n return scorecardGroup\n }\n\n private getScorecardValues = (row: DashboardDataResponse) => {\n const { latestTs, earliestTs } = this.dataset\n const title = `${this.titleColumn?.display} ${row[this.titleKey].raw}`\n const rowCol = row[this.valueKey]\n const { raw, rag: ragScore } = rowCol\n const value = Number(raw)\n const rag = ragScore !== undefined ? Number(ragScore) : undefined\n this.initBuckets([row], this.valueKey)\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n\n return {\n id: this.id,\n title,\n value,\n rag: this.scoreCardBuilder.setRagScore(value, rag, this.buckets, this.bucketsHelper),\n valueFor,\n valueFrom,\n }\n }\n\n private createGroupTitle = (row: DashboardDataResponse) => {\n const title = this.groupKeyId ? `${row[this.groupKeyId]?.raw}` : ''\n return this.groupKeyDisplay && this.groupKeyDisplay.length ? `${this.groupKeyDisplay}: ${title}` : title\n }\n\n build = () => {\n let scorecardGroup: ScorecardGroup[]\n if (!this.valueColumn) {\n scorecardGroup = this.createScorecardGroupFromColumns()\n } else if (this.groupKey) {\n scorecardGroup = this.createScorecardGroupFromListWithGroups()\n } else {\n scorecardGroup = this.createScorecardGroupFromList()\n }\n return scorecardGroup\n }\n}\n\nexport { ScorecardGroupVisualisation }\nexport default ScorecardGroupVisualisation\n"],
5
- "mappings": "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",
6
- "names": ["ScorecardGroup_exports", "__export", "ScorecardGroupVisualisation", "ScorecardGroup_default", "__toCommonJS", "import_datasetHelper", "import_Buckets", "import_Scorecard", "import_validate", "definition", "ScorecardGroupSchemas", "responseData", "valueKey", "Buckets", "DatasetHelper", "col", "latest", "earliest", "latestTs", "earliestTs", "row", "rowIndex", "colId", "title", "m", "rowCol", "raw", "rag", "value", "ragValue", "valueFor", "valueFrom", "prevVal", "ragScore", "index", "values", "earliestGroupedByKey", "latestGroupedByKey", "group", "groupIndex", "scorecardGroup", "ScorecardVisualisation"]
4
+ "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport { ScorecardDataset, ScorecardGroup } from '../scorecard/types'\nimport Buckets from '../../_charts/chart/buckets/Buckets'\nimport { components } from '../../../types/api'\nimport ScorecardVisualisation from '../scorecard/Scorecard'\nimport { ScorecardGroupDefinitionType, ScorecardGroupDefinitionMeasure } from './types'\nimport { DashboardVisualisationBucket } from '../dashboard-visualisation/types'\nimport ScorecardGroupSchemas from './validate'\n\nclass ScorecardGroupVisualisation {\n private definition!: ScorecardGroupDefinitionType\n\n private id!: string\n\n private measures!: ScorecardGroupDefinitionType['columns']['measures']\n\n private keys!: ScorecardGroupDefinitionType['columns']['keys']\n\n private options!: ScorecardGroupDefinitionType['options']\n\n private dataset!: ScorecardDataset\n\n private groupKey: ScorecardGroupDefinitionMeasure | undefined\n\n private groupKeyId: string | undefined\n\n private groupKeyDisplay: string | undefined\n\n private bucketsHelper: Buckets | undefined\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private valueColumn: ScorecardGroupDefinitionMeasure | undefined\n\n private valueKey = ''\n\n private titleColumn: ScorecardGroupDefinitionMeasure | undefined\n\n private titleKey = ''\n\n responseData: DashboardDataResponse[] = []\n\n scoreCardBuilder: ScorecardVisualisation\n\n constructor() {\n this.scoreCardBuilder = new ScorecardVisualisation()\n }\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = ScorecardGroupSchemas.ScorecardGroupSchema.parse(definition)\n this.init()\n\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.dataset = this.scoreCardBuilder.getDataset(this.definition, this.responseData)\n this.initBuckets(this.responseData, this.valueKey)\n this.initGroupVars()\n return this\n }\n\n private init = () => {\n this.id = this.definition.id\n this.measures = this.definition.columns.measures\n this.keys = this.definition.columns.keys\n this.options = this.definition.options\n this.valueKey = this.measures[0].id\n this.titleColumn = { display: this.definition.display || '', id: this.valueKey }\n }\n\n private initBuckets = (responseData: DashboardDataResponse[], valueKey: string) => {\n if (this.options?.buckets || this.options?.useRagColour) {\n this.bucketsHelper = new Buckets(responseData, this.definition, valueKey, false, this.scoreCardBuilder.ragColours)\n this.buckets = this.bucketsHelper.getBuckets()\n }\n }\n\n private initGroupVars = () => {\n this.groupKey = DatasetHelper.getGroupKey(\n this.dataset.latest,\n <Array<components['schemas']['DashboardVisualisationColumnDefinition']>>this.keys || [],\n )\n this.groupKeyId = this.groupKey?.id\n this.groupKeyDisplay = this.groupKey?.display\n\n this.valueColumn = this.measures.find((col) => col.displayValue)\n if (this.valueColumn) {\n this.valueKey = this.valueColumn?.id\n this.titleColumn = this.measures.find((col) => {\n return col.display || col.display === ''\n })\n this.titleKey = this.titleColumn?.id || ''\n }\n }\n\n private createScorecardGroupFromColumns = () => {\n const { latest, earliest, latestTs, earliestTs } = this.dataset\n\n return latest.map((row, rowIndex) => {\n return {\n title: this.createGroupTitle(row),\n scorecards: Object.keys(row)\n .filter((colId) => colId !== this.groupKeyId)\n .map((colId) => {\n const measure = this.measures.find((m) => m.id === colId)\n const title = measure?.display || colId\n const rowCol = row[colId]\n const { raw, rag } = rowCol\n const value = Number(raw)\n\n const ragValue = rag !== undefined ? Number(rag) : undefined\n this.initBuckets([row], colId)\n\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n\n const comparisonRow = earliest[rowIndex]\n const prevVal = comparisonRow[colId]?.raw\n const ragScore = this.scoreCardBuilder.setRagScore(value, ragValue, this.buckets, this.bucketsHelper)\n\n return this.scoreCardBuilder.createScorecardData({\n id: this.id,\n title,\n value,\n rag: ragScore,\n prevVal,\n valueFor,\n valueFrom,\n })\n }),\n }\n })\n }\n\n private createScorecardGroupFromList = (): ScorecardGroup[] => {\n const { latest, earliest } = this.dataset\n return [\n {\n title: '',\n scorecards: latest.map((row: DashboardDataResponse, index: number) => {\n const values = this.getScorecardValues(row)\n const prevVal = earliest[index][this.valueKey].raw\n return this.scoreCardBuilder.createScorecardData({\n ...values,\n prevVal,\n })\n }),\n },\n ]\n }\n\n private createScorecardGroupFromListWithGroups = () => {\n const { latest, earliest } = this.dataset\n\n let earliestGroupedByKey = DatasetHelper.groupRowsByKey(earliest, <string>this.groupKeyId)\n let latestGroupedByKey = DatasetHelper.groupRowsByKey(latest, <string>this.groupKeyId)\n if (this.groupKeyId === this.titleKey) {\n latestGroupedByKey = [latestGroupedByKey.flat()]\n earliestGroupedByKey = [earliestGroupedByKey.flat()]\n }\n\n const scorecardGroup = latestGroupedByKey.map((group, groupIndex) => {\n return {\n title: this.groupKeyDisplay ? `By ${this.groupKeyDisplay}` : '',\n scorecards: group.map((row, rowIndex) => {\n const values = this.getScorecardValues(row)\n const comparisonRow = earliestGroupedByKey[groupIndex][rowIndex]\n const prevVal = comparisonRow[this.valueKey]?.raw\n\n return this.scoreCardBuilder.createScorecardData({\n ...values,\n prevVal,\n })\n }),\n }\n })\n\n return scorecardGroup\n }\n\n private getScorecardValues = (row: DashboardDataResponse) => {\n const { latestTs, earliestTs } = this.dataset\n const title = `${this.titleColumn?.display} ${row[this.titleKey].raw}`\n const rowCol = row[this.valueKey]\n const { raw, rag: ragScore } = rowCol\n const value = Number(raw)\n const rag = ragScore !== undefined ? Number(ragScore) : undefined\n this.initBuckets([row], this.valueKey)\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n\n return {\n id: this.id,\n title,\n value,\n rag: this.scoreCardBuilder.setRagScore(value, rag, this.buckets, this.bucketsHelper),\n valueFor,\n valueFrom,\n }\n }\n\n private createGroupTitle = (row: DashboardDataResponse) => {\n const title = this.groupKeyId ? `${row[this.groupKeyId]?.raw}` : ''\n return this.groupKeyDisplay && this.groupKeyDisplay.length ? `${this.groupKeyDisplay}: ${title}` : title\n }\n\n build = () => {\n let scorecardGroup: ScorecardGroup[]\n if (!this.valueColumn) {\n scorecardGroup = this.createScorecardGroupFromColumns()\n } else if (this.groupKey) {\n scorecardGroup = this.createScorecardGroupFromListWithGroups()\n } else {\n scorecardGroup = this.createScorecardGroupFromList()\n }\n return scorecardGroup\n }\n}\n\nexport { ScorecardGroupVisualisation }\nexport default ScorecardGroupVisualisation\n"],
5
+ "mappings": "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",
6
+ "names": ["ScorecardGroup_exports", "__export", "ScorecardGroupVisualisation", "ScorecardGroup_default", "__toCommonJS", "import_datasetHelper", "import_Buckets", "import_Scorecard", "import_validate", "ScorecardVisualisation", "definition", "ScorecardGroupSchemas", "responseData", "valueKey", "Buckets", "DatasetHelper", "col", "latest", "earliest", "latestTs", "earliestTs", "row", "rowIndex", "colId", "title", "m", "rowCol", "raw", "rag", "value", "ragValue", "valueFor", "valueFrom", "prevVal", "ragScore", "index", "values", "earliestGroupedByKey", "latestGroupedByKey", "group", "groupIndex", "scorecardGroup"]
7
7
  }
@@ -40,8 +40,6 @@ class ScorecardGroupVisualisation {
40
40
 
41
41
  private titleKey = ''
42
42
 
43
- private unit: 'NUMBER' | 'PERCENTAGE' | undefined
44
-
45
43
  responseData: DashboardDataResponse[] = []
46
44
 
47
45
  scoreCardBuilder: ScorecardVisualisation
@@ -72,7 +70,6 @@ class ScorecardGroupVisualisation {
72
70
  this.options = this.definition.options
73
71
  this.valueKey = this.measures[0].id
74
72
  this.titleColumn = { display: this.definition.display || '', id: this.valueKey }
75
- this.unit = this.definition.columns.measures[0].unit ? this.definition.columns.measures[0].unit : undefined
76
73
  }
77
74
 
78
75
  private initBuckets = (responseData: DashboardDataResponse[], valueKey: string) => {
@@ -14,13 +14,14 @@
14
14
  }
15
15
 
16
16
  .dpr-selected-filters {
17
- padding-bottom: govuk-spacing(0);
17
+ padding-bottom: govuk-spacing(2);
18
18
  }
19
19
 
20
20
  .dpr-interactive-save-defaults-actions {
21
21
  padding: govuk-spacing(4);
22
- padding-top: govuk-spacing(0);
23
- background-color: govuk-colour('light-grey');
22
+ background-color: white;
23
+ border-top: solid 1px govuk-colour('mid-grey');
24
+ border-bottom: solid 1px govuk-colour('mid-grey');
24
25
  }
25
26
 
26
27
  .dpr-interactive-filters-accordion {
@@ -1,33 +1,4 @@
1
1
  .dpr-save-defaults-action {
2
- .dpr-button-link {
3
- all: unset;
4
- display: inline-block;
5
- font-family: "GDS Transport", arial, sans-serif;
6
- position: relative;
7
- text-decoration: underline;
8
- text-decoration-thickness: max(1px, .0625rem);
9
- text-underline-offset: .1578em;
10
- color: govuk-colour("blue");
11
- font-size: 16px;
12
- margin-right: govuk-spacing(2);
13
- margin-bottom: 0px !important;
14
-
15
- &:hover {
16
- all: unset;
17
- display: inline-block;
18
- font-family: "GDS Transport", arial, sans-serif;
19
- position: relative;
20
- cursor: pointer;
21
- background-color: none;
22
- color: govuk-colour("dark-blue");
23
- text-decoration: underline;
24
- text-decoration-thickness: max(3px, .1875rem);
25
- text-underline-offset: .1578em;
26
- font-size: 16px;
27
- margin-right: govuk-spacing(2);
28
- margin-bottom: 0px !important;
29
- }
30
- }
31
2
 
32
3
  .dpr-default-saved {
33
4
  color: govuk-colour("green");
@@ -12,7 +12,7 @@
12
12
 
13
13
  {{ govukButton({
14
14
  text: text,
15
- classes: "govuk-body-s dpr-button-link",
15
+ classes: "govuk-button--secondary",
16
16
  attributes: {
17
17
  id: 'dpr-save-user-defaults',
18
18
  form: formId,
@@ -23,7 +23,7 @@
23
23
  {% if hasDefaults %}
24
24
  {{ govukButton({
25
25
  text: 'Delete defaults',
26
- classes: "govuk-button--secondary dpr-button-link",
26
+ classes: "govuk-button--secondary",
27
27
  attributes: {
28
28
  id: 'dpr-remove-user-defaults',
29
29
  form: formId,
@@ -9,6 +9,10 @@
9
9
  .dpr-report-heading__title {
10
10
  flex: 1;
11
11
 
12
+ #dpr-report-name {
13
+ margin-bottom: govuk-spacing(2);
14
+ }
15
+
12
16
  .govuk-heading-l {
13
17
  margin-bottom: govuk-spacing(4);
14
18
  }
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var a=(e,t)=>{for(var r in t)u(e,r,{get:t[r],enumerable:!0})},f=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of c(t))!m.call(e,o)&&o!==r&&u(e,o,{get:()=>t[o],enumerable:!(n=s(t,o))||n.enumerable});return e};var g=e=>f(u({},"__esModule",{value:!0}),e);var p={};a(p,{AgentConfig:()=>i,default:()=>l});module.exports=g(p);class i{constructor(t=8e3){this.timeout=t}}var l=i;0&&(module.exports={AgentConfig});
1
+ "use strict";var u=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var a=(e,t)=>{for(var r in t)u(e,r,{get:t[r],enumerable:!0})},f=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of c(t))!m.call(e,o)&&o!==r&&u(e,o,{get:()=>t[o],enumerable:!(n=s(t,o))||n.enumerable});return e};var g=e=>f(u({},"__esModule",{value:!0}),e);var p={};a(p,{AgentConfig:()=>i,default:()=>l});module.exports=g(p);class i{timeout;constructor(t=8e3){this.timeout=t}}var l=i;0&&(module.exports={AgentConfig});
2
2
  //# sourceMappingURL=agentConfig.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/data/agentConfig.ts"],
4
4
  "sourcesContent": ["class AgentConfig {\n timeout: number\n\n constructor(timeout = 8000) {\n this.timeout = timeout\n }\n}\n\nexport { AgentConfig }\nexport default AgentConfig\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,MAAME,CAAY,CAGhB,YAAYG,EAAU,IAAM,CAC1B,KAAK,QAAUA,CACjB,CACF,CAGA,IAAOF,EAAQD",
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,MAAME,CAAY,CAChB,QAEA,YAAYG,EAAU,IAAM,CAC1B,KAAK,QAAUA,CACjB,CACF,CAGA,IAAOF,EAAQD",
6
6
  "names": ["agentConfig_exports", "__export", "AgentConfig", "agentConfig_default", "__toCommonJS", "timeout"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var f=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var C=(i,s)=>{for(var t in s)a(i,t,{get:s[t],enumerable:!0})},m=(i,s,t,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of p(s))!$.call(i,e)&&e!==t&&a(i,e,{get:()=>s[e],enumerable:!(n=u(s,e))||n.enumerable});return i};var l=(i,s,t)=>(t=i!=null?f(b(i)):{},m(s||!i||!i.__esModule?a(t,"default",{value:i,enumerable:!0}):t,i)),d=i=>m(a({},"__esModule",{value:!0}),i);var y={};C(y,{DashboardClient:()=>c,default:()=>R});module.exports=d(y);var h=l(require("../utils/logger")),D=l(require("./restClient"));class c{constructor(s){this.restClient=new D.default("Dashboard API Client",s)}getDefinition(s,t,n,e,r){const o={...r,dataProductDefinitionsPath:e};return this.logInfo("Get definition:",{dpdId:n,dashboardId:t,...o}),this.restClient.get({path:`/definitions/${n}/dashboards/${t}`,query:o,token:s}).then(g=>g)}requestAsyncDashboard(s,t,n,e){return this.logInfo("Request dashboard:",{reportId:t,dashboardId:n}),this.restClient.get({path:`/async/dashboards/${t}/${n}`,token:s,query:e}).then(r=>r)}getAsyncDashboard(s,t,n,e,r){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:n,tableId:e}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/tables/${e}/result`,token:s,query:r}).then(o=>o)}getAsyncStatus(s,t,n,e,r,o){return this.logInfo("Get status:",{reportId:t,dashboardId:n,executionId:e,tableId:r}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/statements/${e}/status`,token:s,query:{dataProductDefinitionsPath:o,tableId:r}}).then(g=>g)}cancelAsyncRequest(s,t,n,e,r){return this.logInfo("Cancel request:",{reportId:t,dashboardId:n,executionId:e}),this.restClient.delete({path:`/reports/${t}/dashboards/${n}/statements/${e}`,token:s,query:{dataProductDefinitionsPath:r}}).then(o=>o)}getSyncDashboard(s,t,n,e){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:n}),this.restClient.get({path:`/reports/${t}/dashboards/${n}`,token:s,query:e}).then(r=>r)}logInfo(s,t){h.default.info(`Dashboard client: ${s}:`),t&&Object.keys(t).length&&h.default.info(JSON.stringify(t,null,2))}}var R=c;0&&(module.exports={DashboardClient});
1
+ "use strict";var f=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var C=(i,s)=>{for(var t in s)a(i,t,{get:s[t],enumerable:!0})},m=(i,s,t,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of p(s))!$.call(i,e)&&e!==t&&a(i,e,{get:()=>s[e],enumerable:!(n=u(s,e))||n.enumerable});return i};var l=(i,s,t)=>(t=i!=null?f(b(i)):{},m(s||!i||!i.__esModule?a(t,"default",{value:i,enumerable:!0}):t,i)),d=i=>m(a({},"__esModule",{value:!0}),i);var y={};C(y,{DashboardClient:()=>c,default:()=>R});module.exports=d(y);var h=l(require("../utils/logger")),D=l(require("./restClient"));class c{restClient;constructor(s){this.restClient=new D.default("Dashboard API Client",s)}getDefinition(s,t,n,e,r){const o={...r,dataProductDefinitionsPath:e};return this.logInfo("Get definition:",{dpdId:n,dashboardId:t,...o}),this.restClient.get({path:`/definitions/${n}/dashboards/${t}`,query:o,token:s}).then(g=>g)}requestAsyncDashboard(s,t,n,e){return this.logInfo("Request dashboard:",{reportId:t,dashboardId:n}),this.restClient.get({path:`/async/dashboards/${t}/${n}`,token:s,query:e}).then(r=>r)}getAsyncDashboard(s,t,n,e,r){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:n,tableId:e}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/tables/${e}/result`,token:s,query:r}).then(o=>o)}getAsyncStatus(s,t,n,e,r,o){return this.logInfo("Get status:",{reportId:t,dashboardId:n,executionId:e,tableId:r}),this.restClient.get({path:`/reports/${t}/dashboards/${n}/statements/${e}/status`,token:s,query:{dataProductDefinitionsPath:o,tableId:r}}).then(g=>g)}cancelAsyncRequest(s,t,n,e,r){return this.logInfo("Cancel request:",{reportId:t,dashboardId:n,executionId:e}),this.restClient.delete({path:`/reports/${t}/dashboards/${n}/statements/${e}`,token:s,query:{dataProductDefinitionsPath:r}}).then(o=>o)}getSyncDashboard(s,t,n,e){return this.logInfo("Get dashboard:",{reportId:t,dashboardId:n}),this.restClient.get({path:`/reports/${t}/dashboards/${n}`,token:s,query:e}).then(r=>r)}logInfo(s,t){h.default.info(`Dashboard client: ${s}:`),t&&Object.keys(t).length&&h.default.info(JSON.stringify(t,null,2))}}var R=c;0&&(module.exports={DashboardClient});
2
2
  //# sourceMappingURL=dashboardClient.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/data/dashboardClient.ts"],
4
4
  "sourcesContent": ["import logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { ApiConfig } from './types'\nimport { components } from '../types/api'\nimport { DashboardDataResponse } from '../types/Metrics'\n\nclass DashboardClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Dashboard API Client', config)\n }\n\n getDefinition(\n token: string,\n dashboardId: string,\n dpdId: string,\n definitionsPath?: string,\n queryData?: Dict<string | string[]> | undefined,\n ): Promise<components['schemas']['DashboardDefinition']> {\n const query = {\n ...queryData,\n dataProductDefinitionsPath: definitionsPath,\n }\n this.logInfo('Get definition:', { dpdId, dashboardId, ...query })\n\n return this.restClient\n .get({\n path: `/definitions/${dpdId}/dashboards/${dashboardId}`,\n query,\n token,\n })\n .then((response) => <components['schemas']['DashboardDefinition']>response)\n }\n\n requestAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request dashboard:', { reportId, dashboardId })\n\n return this.restClient\n .get({\n path: `/async/dashboards/${reportId}/${dashboardId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n tableId: string,\n query: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\n this.logInfo('Get dashboard:', { reportId, dashboardId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/tables/${tableId}/result`,\n token,\n query,\n })\n .then((response) => <DashboardDataResponse[][]>response)\n }\n\n getAsyncStatus(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n tableId?: string,\n dataProductDefinitionsPath?: string,\n ): Promise<components['schemas']['StatementExecutionStatus']> {\n this.logInfo('Get status:', { reportId, dashboardId, executionId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}/status`,\n token,\n query: {\n dataProductDefinitionsPath,\n tableId,\n },\n })\n .then((response) => <components['schemas']['StatementExecutionStatus']>response)\n }\n\n cancelAsyncRequest(\n token: string,\n reportId: string,\n dashboardId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Cancel request:', { reportId, dashboardId, executionId })\n\n return this.restClient\n .delete({\n path: `/reports/${reportId}/dashboards/${dashboardId}/statements/${executionId}`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n getSyncDashboard(\n token: string,\n reportId: string,\n dashboardId: string,\n query: Record<string, string | string[]>,\n ): Promise<DashboardDataResponse[][]> {\n this.logInfo('Get dashboard:', { reportId, dashboardId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/dashboards/${dashboardId}`,\n token,\n query,\n })\n .then((response) => <DashboardDataResponse[][]>response)\n }\n\n logInfo(title: string, args?: Dict<string>) {\n logger.info(`Dashboard client: ${title}:`)\n if (args && Object.keys(args).length) logger.info(JSON.stringify(args, null, 2))\n }\n}\n\nexport { DashboardClient }\nexport default DashboardClient\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAmB,8BACnBC,EAAuB,2BAMvB,MAAMJ,CAAgB,CAGpB,YAAYK,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,uBAAwBD,CAAM,CACjE,CAEA,cACEE,EACAC,EACAC,EACAC,EACAC,EACuD,CACvD,MAAMC,EAAQ,CACZ,GAAGD,EACH,2BAA4BD,CAC9B,EACA,YAAK,QAAQ,kBAAmB,CAAE,MAAAD,EAAO,YAAAD,EAAa,GAAGI,CAAM,CAAC,EAEzD,KAAK,WACT,IAAI,CACH,KAAM,gBAAgBH,CAAK,eAAeD,CAAW,GACrD,MAAAI,EACA,MAAAL,CACF,CAAC,EACA,KAAMM,GAA2DA,CAAQ,CAC9E,CAEA,sBACEN,EACAO,EACAN,EACAI,EACuB,CACvB,YAAK,QAAQ,qBAAsB,CAAE,SAAAE,EAAU,YAAAN,CAAY,CAAC,EAErD,KAAK,WACT,IAAI,CACH,KAAM,qBAAqBM,CAAQ,IAAIN,CAAW,GAClD,MAAAD,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAA2BA,CAAQ,CAC9C,CAEA,kBACEN,EACAO,EACAN,EACAO,EACAH,EACoC,CACpC,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAN,EAAa,QAAAO,CAAQ,CAAC,EAE1D,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,WAAWO,CAAO,UACtE,MAAAR,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAAwCA,CAAQ,CAC3D,CAEA,eACEN,EACAO,EACAN,EACAQ,EACAD,EACAE,EAC4D,CAC5D,YAAK,QAAQ,cAAe,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,EAAa,QAAAD,CAAQ,CAAC,EAEpE,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,UAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,EACA,QAAAF,CACF,CACF,CAAC,EACA,KAAMF,GAAgEA,CAAQ,CACnF,CAEA,mBACEN,EACAO,EACAN,EACAQ,EACAC,EACuB,CACvB,YAAK,QAAQ,kBAAmB,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,CAAY,CAAC,EAE/D,KAAK,WACT,OAAO,CACN,KAAM,YAAYF,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,GAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,CACF,CACF,CAAC,EACA,KAAMJ,GAA2BA,CAAQ,CAC9C,CAEA,iBACEN,EACAO,EACAN,EACAI,EACoC,CACpC,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAN,CAAY,CAAC,EAEjD,KAAK,WACT,IAAI,CACH,KAAM,YAAYM,CAAQ,eAAeN,CAAW,GACpD,MAAAD,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAAwCA,CAAQ,CAC3D,CAEA,QAAQK,EAAeC,EAAqB,CAC1C,EAAAC,QAAO,KAAK,qBAAqBF,CAAK,GAAG,EACrCC,GAAQ,OAAO,KAAKA,CAAI,EAAE,QAAQ,EAAAC,QAAO,KAAK,KAAK,UAAUD,EAAM,KAAM,CAAC,CAAC,CACjF,CACF,CAGA,IAAOlB,EAAQD",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAmB,8BACnBC,EAAuB,2BAMvB,MAAMJ,CAAgB,CACpB,WAEA,YAAYK,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,uBAAwBD,CAAM,CACjE,CAEA,cACEE,EACAC,EACAC,EACAC,EACAC,EACuD,CACvD,MAAMC,EAAQ,CACZ,GAAGD,EACH,2BAA4BD,CAC9B,EACA,YAAK,QAAQ,kBAAmB,CAAE,MAAAD,EAAO,YAAAD,EAAa,GAAGI,CAAM,CAAC,EAEzD,KAAK,WACT,IAAI,CACH,KAAM,gBAAgBH,CAAK,eAAeD,CAAW,GACrD,MAAAI,EACA,MAAAL,CACF,CAAC,EACA,KAAMM,GAA2DA,CAAQ,CAC9E,CAEA,sBACEN,EACAO,EACAN,EACAI,EACuB,CACvB,YAAK,QAAQ,qBAAsB,CAAE,SAAAE,EAAU,YAAAN,CAAY,CAAC,EAErD,KAAK,WACT,IAAI,CACH,KAAM,qBAAqBM,CAAQ,IAAIN,CAAW,GAClD,MAAAD,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAA2BA,CAAQ,CAC9C,CAEA,kBACEN,EACAO,EACAN,EACAO,EACAH,EACoC,CACpC,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAN,EAAa,QAAAO,CAAQ,CAAC,EAE1D,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,WAAWO,CAAO,UACtE,MAAAR,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAAwCA,CAAQ,CAC3D,CAEA,eACEN,EACAO,EACAN,EACAQ,EACAD,EACAE,EAC4D,CAC5D,YAAK,QAAQ,cAAe,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,EAAa,QAAAD,CAAQ,CAAC,EAEpE,KAAK,WACT,IAAI,CACH,KAAM,YAAYD,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,UAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,EACA,QAAAF,CACF,CACF,CAAC,EACA,KAAMF,GAAgEA,CAAQ,CACnF,CAEA,mBACEN,EACAO,EACAN,EACAQ,EACAC,EACuB,CACvB,YAAK,QAAQ,kBAAmB,CAAE,SAAAH,EAAU,YAAAN,EAAa,YAAAQ,CAAY,CAAC,EAE/D,KAAK,WACT,OAAO,CACN,KAAM,YAAYF,CAAQ,eAAeN,CAAW,eAAeQ,CAAW,GAC9E,MAAAT,EACA,MAAO,CACL,2BAAAU,CACF,CACF,CAAC,EACA,KAAMJ,GAA2BA,CAAQ,CAC9C,CAEA,iBACEN,EACAO,EACAN,EACAI,EACoC,CACpC,YAAK,QAAQ,iBAAkB,CAAE,SAAAE,EAAU,YAAAN,CAAY,CAAC,EAEjD,KAAK,WACT,IAAI,CACH,KAAM,YAAYM,CAAQ,eAAeN,CAAW,GACpD,MAAAD,EACA,MAAAK,CACF,CAAC,EACA,KAAMC,GAAwCA,CAAQ,CAC3D,CAEA,QAAQK,EAAeC,EAAqB,CAC1C,EAAAC,QAAO,KAAK,qBAAqBF,CAAK,GAAG,EACrCC,GAAQ,OAAO,KAAKA,CAAI,EAAE,QAAQ,EAAAC,QAAO,KAAK,KAAK,UAAUD,EAAM,KAAM,CAAC,CAAC,CACjF,CACF,CAGA,IAAOlB,EAAQD",
6
6
  "names": ["dashboardClient_exports", "__export", "DashboardClient", "dashboardClient_default", "__toCommonJS", "import_logger", "import_restClient", "config", "RestClient", "token", "dashboardId", "dpdId", "definitionsPath", "queryData", "query", "response", "reportId", "tableId", "executionId", "dataProductDefinitionsPath", "title", "args", "logger"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var g=Object.create;var r=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var u=(t,i)=>{for(var s in i)r(t,s,{get:i[s],enumerable:!0})},p=(t,i,s,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let e of C(i))!f.call(t,e)&&e!==s&&r(t,e,{get:()=>i[e],enumerable:!(n=l(i,e))||n.enumerable});return t};var R=(t,i,s)=>(s=t!=null?g(c(t)):{},p(i||!t||!t.__esModule?r(s,"default",{value:t,enumerable:!0}):s,t)),a=t=>p(r({},"__esModule",{value:!0}),t);var M={};u(M,{MissingReportClient:()=>o,default:()=>h});module.exports=a(M);var m=R(require("./restClient"));class o{constructor(i){this.restClient=new m.default("Missing report API Client",i)}submitMissingReportEntry(i,s,n,e){return this.restClient.post({path:`/missingRequest/${s}/${n}`,...e&&{data:e}},i)}}var h=o;0&&(module.exports={MissingReportClient});
1
+ "use strict";var g=Object.create;var r=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var u=(t,i)=>{for(var s in i)r(t,s,{get:i[s],enumerable:!0})},p=(t,i,s,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let e of C(i))!f.call(t,e)&&e!==s&&r(t,e,{get:()=>i[e],enumerable:!(n=l(i,e))||n.enumerable});return t};var R=(t,i,s)=>(s=t!=null?g(c(t)):{},p(i||!t||!t.__esModule?r(s,"default",{value:t,enumerable:!0}):s,t)),a=t=>p(r({},"__esModule",{value:!0}),t);var M={};u(M,{MissingReportClient:()=>o,default:()=>h});module.exports=a(M);var m=R(require("./restClient"));class o{restClient;constructor(i){this.restClient=new m.default("Missing report API Client",i)}submitMissingReportEntry(i,s,n,e){return this.restClient.post({path:`/missingRequest/${s}/${n}`,...e&&{data:e}},i)}}var h=o;0&&(module.exports={MissingReportClient});
2
2
  //# sourceMappingURL=missingReportClient.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/data/missingReportClient.ts"],
4
4
  "sourcesContent": ["import RestClient from './restClient'\nimport { ApiConfig } from './types'\nimport { components } from '../types/api'\n\nclass MissingReportClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Missing report API Client', config)\n }\n\n submitMissingReportEntry(\n token: string,\n reportId: string,\n variantId: string,\n reason?: string,\n ): Promise<components['schemas']['MissingReportSubmission']> {\n return this.restClient.post(\n {\n path: `/missingRequest/${reportId}/${variantId}`,\n ...(reason && { data: reason }),\n },\n token,\n )\n }\n}\n\nexport { MissingReportClient }\nexport default MissingReportClient\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAuB,2BAIvB,MAAMH,CAAoB,CAGxB,YAAYI,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,4BAA6BD,CAAM,CACtE,CAEA,yBACEE,EACAC,EACAC,EACAC,EAC2D,CAC3D,OAAO,KAAK,WAAW,KACrB,CACE,KAAM,mBAAmBF,CAAQ,IAAIC,CAAS,GAC9C,GAAIC,GAAU,CAAE,KAAMA,CAAO,CAC/B,EACAH,CACF,CACF,CACF,CAGA,IAAOL,EAAQD",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAuB,2BAIvB,MAAMH,CAAoB,CACxB,WAEA,YAAYI,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,4BAA6BD,CAAM,CACtE,CAEA,yBACEE,EACAC,EACAC,EACAC,EAC2D,CAC3D,OAAO,KAAK,WAAW,KACrB,CACE,KAAM,mBAAmBF,CAAQ,IAAIC,CAAS,GAC9C,GAAIC,GAAU,CAAE,KAAMA,CAAO,CAC/B,EACAH,CACF,CACF,CACF,CAGA,IAAOL,EAAQD",
6
6
  "names": ["missingReportClient_exports", "__export", "MissingReportClient", "missingReportClient_default", "__toCommonJS", "import_restClient", "config", "RestClient", "token", "reportId", "variantId", "reason"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var C=Object.create;var r=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty;var d=(o,t)=>{for(var e in t)r(o,e,{get:t[e],enumerable:!0})},c=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of p(t))!a.call(o,n)&&n!==e&&r(o,n,{get:()=>t[n],enumerable:!(s=m(t,n))||s.enumerable});return o};var g=(o,t,e)=>(e=o!=null?C(u(o)):{},c(t||!o||!o.__esModule?r(e,"default",{value:o,enumerable:!0}):e,o)),P=o=>c(r({},"__esModule",{value:!0}),o);var f={};d(f,{ProductCollectionClient:()=>i,default:()=>h});module.exports=P(f);var l=g(require("./restClient"));class i{constructor(t){this.restClient=new l.default("ProductCollection API",t)}async getProductCollections(t){return this.restClient.get({path:"/productCollections",token:t})}async getProductCollection(t,e){return this.restClient.get({path:`/productCollections/${e}`,token:t})}}var h=i;0&&(module.exports={ProductCollectionClient});
1
+ "use strict";var C=Object.create;var r=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty;var d=(o,t)=>{for(var e in t)r(o,e,{get:t[e],enumerable:!0})},c=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of p(t))!a.call(o,n)&&n!==e&&r(o,n,{get:()=>t[n],enumerable:!(s=m(t,n))||s.enumerable});return o};var g=(o,t,e)=>(e=o!=null?C(u(o)):{},c(t||!o||!o.__esModule?r(e,"default",{value:o,enumerable:!0}):e,o)),P=o=>c(r({},"__esModule",{value:!0}),o);var f={};d(f,{ProductCollectionClient:()=>i,default:()=>h});module.exports=P(f);var l=g(require("./restClient"));class i{restClient;constructor(t){this.restClient=new l.default("ProductCollection API",t)}async getProductCollections(t){return this.restClient.get({path:"/productCollections",token:t})}async getProductCollection(t,e){return this.restClient.get({path:`/productCollections/${e}`,token:t})}}var h=i;0&&(module.exports={ProductCollectionClient});
2
2
  //# sourceMappingURL=productCollectionClient.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/data/productCollectionClient.ts"],
4
4
  "sourcesContent": ["import { ApiConfig } from './types'\nimport { components } from '../types/api'\nimport RestClient from './restClient'\n\nclass ProductCollectionClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('ProductCollection API', config)\n }\n\n async getProductCollections(token: string): Promise<components['schemas']['ProductCollectionSummary'][]> {\n return this.restClient.get({\n path: `/productCollections`,\n token,\n })\n }\n\n async getProductCollection(token: string, id: string): Promise<components['schemas']['ProductCollectionDTO']> {\n return this.restClient.get({\n path: `/productCollections/${id}`,\n token,\n })\n }\n}\n\nexport { ProductCollectionClient }\nexport default ProductCollectionClient\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAuB,2BAEvB,MAAMH,CAAwB,CAG5B,YAAYI,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,wBAAyBD,CAAM,CAClE,CAEA,MAAM,sBAAsBE,EAA6E,CACvG,OAAO,KAAK,WAAW,IAAI,CACzB,KAAM,sBACN,MAAAA,CACF,CAAC,CACH,CAEA,MAAM,qBAAqBA,EAAeC,EAAoE,CAC5G,OAAO,KAAK,WAAW,IAAI,CACzB,KAAM,uBAAuBA,CAAE,GAC/B,MAAAD,CACF,CAAC,CACH,CACF,CAGA,IAAOL,EAAQD",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAuB,2BAEvB,MAAMH,CAAwB,CAC5B,WAEA,YAAYI,EAAmB,CAC7B,KAAK,WAAa,IAAI,EAAAC,QAAW,wBAAyBD,CAAM,CAClE,CAEA,MAAM,sBAAsBE,EAA6E,CACvG,OAAO,KAAK,WAAW,IAAI,CACzB,KAAM,sBACN,MAAAA,CACF,CAAC,CACH,CAEA,MAAM,qBAAqBA,EAAeC,EAAoE,CAC5G,OAAO,KAAK,WAAW,IAAI,CACzB,KAAM,uBAAuBA,CAAE,GAC/B,MAAAD,CACF,CAAC,CACH,CACF,CAGA,IAAOL,EAAQD",
6
6
  "names": ["productCollectionClient_exports", "__export", "ProductCollectionClient", "productCollectionClient_default", "__toCommonJS", "import_restClient", "config", "RestClient", "token", "id"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.create;var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var u=(r,e)=>{for(var t in e)o(r,t,{get:e[t],enumerable:!0})},p=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of g(e))!d.call(r,i)&&i!==t&&o(r,i,{get:()=>e[i],enumerable:!(s=c(e,i))||s.enumerable});return r};var R=(r,e,t)=>(t=r!=null?l(C(r)):{},p(e||!r||!r.__esModule?o(t,"default",{value:r,enumerable:!0}):t,r)),h=r=>p(o({},"__esModule",{value:!0}),r);var y={};u(y,{ReportDataStore:()=>a,default:()=>m});module.exports=h(y);var n=R(require("../utils/logger"));class a{constructor(e,t="dprReportStoreUser:"){this.redisClient=e;e.on("error",s=>{n.default.error(s,"Redis error")}),this.prefix=t}async ensureConnected(){this.redisClient.isOpen||await this.redisClient.connect()}async setUserConfig(e,t){await this.ensureConnected(),await this.redisClient.set(`${this.prefix}${e}`,JSON.stringify(t))}async getUserConfig(e){await this.ensureConnected();const t=await this.redisClient.get(`${this.prefix}${e}`);return t?JSON.parse(String(t)):this.setBaseplate(e)}async setBaseplate(e){n.default.info(`Initialising new DPR user config in store. prefix: ${this.prefix}`);const t={...f};return await this.setUserConfig(e,t),{...f}}}const f={requestedReports:[],recentlyViewedReports:[],bookmarks:[],downloadPermissions:[],defaultFilters:[]};var m=a;0&&(module.exports={ReportDataStore});
1
+ "use strict";var l=Object.create;var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var u=(r,e)=>{for(var t in e)o(r,t,{get:e[t],enumerable:!0})},p=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of g(e))!d.call(r,i)&&i!==t&&o(r,i,{get:()=>e[i],enumerable:!(s=c(e,i))||s.enumerable});return r};var R=(r,e,t)=>(t=r!=null?l(C(r)):{},p(e||!r||!r.__esModule?o(t,"default",{value:r,enumerable:!0}):t,r)),h=r=>p(o({},"__esModule",{value:!0}),r);var y={};u(y,{ReportDataStore:()=>a,default:()=>m});module.exports=h(y);var n=R(require("../utils/logger"));class a{constructor(e,t="dprReportStoreUser:"){this.redisClient=e;e.on("error",s=>{n.default.error(s,"Redis error")}),this.prefix=t}prefix;async ensureConnected(){this.redisClient.isOpen||await this.redisClient.connect()}async setUserConfig(e,t){await this.ensureConnected(),await this.redisClient.set(`${this.prefix}${e}`,JSON.stringify(t))}async getUserConfig(e){await this.ensureConnected();const t=await this.redisClient.get(`${this.prefix}${e}`);return t?JSON.parse(String(t)):this.setBaseplate(e)}async setBaseplate(e){n.default.info(`Initialising new DPR user config in store. prefix: ${this.prefix}`);const t={...f};return await this.setUserConfig(e,t),{...f}}}const f={requestedReports:[],recentlyViewedReports:[],bookmarks:[],downloadPermissions:[],defaultFilters:[]};var m=a;0&&(module.exports={ReportDataStore});
2
2
  //# sourceMappingURL=reportDataStore.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/data/reportDataStore.ts"],
4
4
  "sourcesContent": ["// eslint-disable-next-line import/no-extraneous-dependencies\nimport { createClient } from 'redis'\nimport logger from '../utils/logger'\nimport { ReportStoreConfig } from '../types/ReportStore'\n\nexport type RedisClient = ReturnType<typeof createClient>\n\nclass ReportDataStore {\n prefix: string\n\n constructor(private readonly redisClient: RedisClient, prefix = 'dprReportStoreUser:') {\n redisClient.on('error', (error) => {\n logger.error(error, `Redis error`)\n })\n this.prefix = prefix\n }\n\n private async ensureConnected() {\n if (!this.redisClient.isOpen) {\n await this.redisClient.connect()\n }\n }\n\n public async setUserConfig(userId: string, config: ReportStoreConfig): Promise<void> {\n await this.ensureConnected()\n await this.redisClient.set(`${this.prefix}${userId}`, JSON.stringify(config))\n }\n\n public async getUserConfig(userId: string): Promise<ReportStoreConfig> {\n await this.ensureConnected()\n const userConfig = await this.redisClient.get(`${this.prefix}${userId}`)\n return userConfig ? JSON.parse(String(userConfig)) : this.setBaseplate(userId)\n }\n\n private async setBaseplate(userId: string) {\n logger.info(`Initialising new DPR user config in store. prefix: ${this.prefix}`)\n const userConfig = { ...baseplateStore }\n await this.setUserConfig(userId, userConfig)\n return { ...baseplateStore }\n }\n}\n\nconst baseplateStore: ReportStoreConfig = {\n requestedReports: [],\n recentlyViewedReports: [],\n bookmarks: [],\n downloadPermissions: [],\n defaultFilters: [],\n}\n\nexport { ReportDataStore }\nexport default ReportDataStore\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAmB,8BAKnB,MAAMH,CAAgB,CAGpB,YAA6BI,EAA0BC,EAAS,sBAAuB,CAA1D,iBAAAD,EAC3BA,EAAY,GAAG,QAAUE,GAAU,CACjC,EAAAC,QAAO,MAAMD,EAAO,aAAa,CACnC,CAAC,EACD,KAAK,OAASD,CAChB,CAEA,MAAc,iBAAkB,CACzB,KAAK,YAAY,QACpB,MAAM,KAAK,YAAY,QAAQ,CAEnC,CAEA,MAAa,cAAcG,EAAgBC,EAA0C,CACnF,MAAM,KAAK,gBAAgB,EAC3B,MAAM,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,GAAGD,CAAM,GAAI,KAAK,UAAUC,CAAM,CAAC,CAC9E,CAEA,MAAa,cAAcD,EAA4C,CACrE,MAAM,KAAK,gBAAgB,EAC3B,MAAME,EAAa,MAAM,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,GAAGF,CAAM,EAAE,EACvE,OAAOE,EAAa,KAAK,MAAM,OAAOA,CAAU,CAAC,EAAI,KAAK,aAAaF,CAAM,CAC/E,CAEA,MAAc,aAAaA,EAAgB,CACzC,EAAAD,QAAO,KAAK,sDAAsD,KAAK,MAAM,EAAE,EAC/E,MAAMG,EAAa,CAAE,GAAGC,CAAe,EACvC,aAAM,KAAK,cAAcH,EAAQE,CAAU,EACpC,CAAE,GAAGC,CAAe,CAC7B,CACF,CAEA,MAAMA,EAAoC,CACxC,iBAAkB,CAAC,EACnB,sBAAuB,CAAC,EACxB,UAAW,CAAC,EACZ,oBAAqB,CAAC,EACtB,eAAgB,CAAC,CACnB,EAGA,IAAOV,EAAQD",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAAmB,8BAKnB,MAAMH,CAAgB,CAGpB,YAA6BI,EAA0BC,EAAS,sBAAuB,CAA1D,iBAAAD,EAC3BA,EAAY,GAAG,QAAUE,GAAU,CACjC,EAAAC,QAAO,MAAMD,EAAO,aAAa,CACnC,CAAC,EACD,KAAK,OAASD,CAChB,CAPA,OASA,MAAc,iBAAkB,CACzB,KAAK,YAAY,QACpB,MAAM,KAAK,YAAY,QAAQ,CAEnC,CAEA,MAAa,cAAcG,EAAgBC,EAA0C,CACnF,MAAM,KAAK,gBAAgB,EAC3B,MAAM,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,GAAGD,CAAM,GAAI,KAAK,UAAUC,CAAM,CAAC,CAC9E,CAEA,MAAa,cAAcD,EAA4C,CACrE,MAAM,KAAK,gBAAgB,EAC3B,MAAME,EAAa,MAAM,KAAK,YAAY,IAAI,GAAG,KAAK,MAAM,GAAGF,CAAM,EAAE,EACvE,OAAOE,EAAa,KAAK,MAAM,OAAOA,CAAU,CAAC,EAAI,KAAK,aAAaF,CAAM,CAC/E,CAEA,MAAc,aAAaA,EAAgB,CACzC,EAAAD,QAAO,KAAK,sDAAsD,KAAK,MAAM,EAAE,EAC/E,MAAMG,EAAa,CAAE,GAAGC,CAAe,EACvC,aAAM,KAAK,cAAcH,EAAQE,CAAU,EACpC,CAAE,GAAGC,CAAe,CAC7B,CACF,CAEA,MAAMA,EAAoC,CACxC,iBAAkB,CAAC,EACnB,sBAAuB,CAAC,EACxB,UAAW,CAAC,EACZ,oBAAqB,CAAC,EACtB,eAAgB,CAAC,CACnB,EAGA,IAAOV,EAAQD",
6
6
  "names": ["reportDataStore_exports", "__export", "ReportDataStore", "reportDataStore_default", "__toCommonJS", "import_logger", "redisClient", "prefix", "error", "logger", "userId", "config", "userConfig", "baseplateStore"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.create;var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var D=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},c=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of y(e))!C.call(s,n)&&n!==t&&u(s,n,{get:()=>e[n],enumerable:!(i=f(e,n))||i.enumerable});return s};var h=(s,e,t)=>(t=s!=null?l(R(s)):{},c(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),$=s=>c(u({},"__esModule",{value:!0}),s);var A={};D(A,{ReportingClient:()=>m,default:()=>P});module.exports=$(A);var a=h(require("../utils/logger")),p=h(require("./restClient"));class m{constructor(e){this.restClient=new p.default("Reporting API Client",e)}getCount(e,t,i){return a.default.info(`Reporting client: Get count. { resourceName: ${e} }`),this.restClient.get({path:`/${e}/count`,query:i.toRecordWithFilterPrefix(!0),token:t}).then(n=>n.count)}getList(e,t,i){return this.getListWithWarnings(e,t,i).then(n=>n.data)}getListWithWarnings(e,t,i){return a.default.info(`Reporting client: Get list. { resourceName: ${e} }`),this.restClient.getWithHeaders({path:`/${e}`,query:i.toRecordWithFilterPrefix(!0),token:t}).then(n=>({data:n.data,warnings:{noDataAvailable:n.headers["x-no-data-warning"]}}))}getDefinitionSummary(e,t,i){this.logInfo("Get definition summary",{reportId:t});const n={...i&&{dataProductDefinitionsPath:i}};return this.restClient.get({path:`/definitions/${t}`,query:n,token:e}).then(r=>r)}getDefinitions(e,t){this.logInfo("Get definitions");const i={renderMethod:"HTML",...t&&{dataProductDefinitionsPath:t}};return this.restClient.get({path:"/definitions",query:i,token:e}).then(n=>n)}getDefinition(e,t,i,n,r){const o={...r,dataProductDefinitionsPath:n};return this.logInfo("Get definition",{reportId:t,variantId:i,...o}),this.restClient.get({path:`/definitions/${t}/${i}`,query:o,token:e}).then(g=>g)}requestAsyncReport(e,t,i,n){return this.logInfo("Request report",{reportId:t,variantId:i}),this.restClient.get({path:`/async/reports/${t}/${i}`,token:e,query:n}).then(r=>r)}cancelAsyncRequest(e,t,i,n,r){return this.logInfo("Cancel Request",{reportId:t,variantId:i,executionId:n}),this.restClient.delete({path:`/reports/${t}/${i}/statements/${n}`,token:e,query:{dataProductDefinitionsPath:r}}).then(o=>o)}getAsyncReport(e,t,i,n,r){return this.logInfo("Get Data",{reportId:t,variantId:i,tableId:n}),this.restClient.get({path:`/reports/${t}/${i}/tables/${n}/result`,token:e,query:r}).then(o=>o)}getAsyncSummaryReport(e,t,i,n,r,o){return this.logInfo("Get summary data",{reportId:t,variantId:i,tableId:n,summaryId:r}),this.restClient.get({path:`/reports/${t}/${i}/tables/${n}/result/summary/${r}`,token:e,query:o}).then(g=>g)}getAsyncReportStatus(e,t,i,n,r,o){return this.logInfo("Get status",{reportId:t,variantId:i,tableId:o,executionId:n}),this.restClient.get({path:`/reports/${t}/${i}/statements/${n}/status`,token:e,query:{dataProductDefinitionsPath:r,tableId:o}}).then(g=>g)}getAsyncCount(e,t,i){return this.logInfo("Get count",{tableId:t}),this.restClient.get({path:`/report/tables/${t}/count`,token:e,query:{dataProductDefinitionsPath:i}}).then(n=>n.count)}getAsyncInteractiveCount(e,t,i,n,r){return this.logInfo("Get interactive count",{tableId:t,reportId:i,id:n}),this.restClient.get({path:`/reports/${i}/${n}/tables/${t}/count`,token:e,query:r.toRecordWithFilterPrefix(!0)}).then(o=>o.count)}logInfo(e,t){a.default.info(`Reporting Client: ${e}:`),t&&Object.keys(t).length&&a.default.info(JSON.stringify(t,null,2))}}var P=m;0&&(module.exports={ReportingClient});
1
+ "use strict";var l=Object.create;var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var D=(s,e)=>{for(var t in e)u(s,t,{get:e[t],enumerable:!0})},c=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of y(e))!C.call(s,n)&&n!==t&&u(s,n,{get:()=>e[n],enumerable:!(i=f(e,n))||i.enumerable});return s};var h=(s,e,t)=>(t=s!=null?l(R(s)):{},c(e||!s||!s.__esModule?u(t,"default",{value:s,enumerable:!0}):t,s)),$=s=>c(u({},"__esModule",{value:!0}),s);var A={};D(A,{ReportingClient:()=>m,default:()=>P});module.exports=$(A);var a=h(require("../utils/logger")),p=h(require("./restClient"));class m{restClient;constructor(e){this.restClient=new p.default("Reporting API Client",e)}getCount(e,t,i){return a.default.info(`Reporting client: Get count. { resourceName: ${e} }`),this.restClient.get({path:`/${e}/count`,query:i.toRecordWithFilterPrefix(!0),token:t}).then(n=>n.count)}getList(e,t,i){return this.getListWithWarnings(e,t,i).then(n=>n.data)}getListWithWarnings(e,t,i){return a.default.info(`Reporting client: Get list. { resourceName: ${e} }`),this.restClient.getWithHeaders({path:`/${e}`,query:i.toRecordWithFilterPrefix(!0),token:t}).then(n=>({data:n.data,warnings:{noDataAvailable:n.headers["x-no-data-warning"]}}))}getDefinitionSummary(e,t,i){this.logInfo("Get definition summary",{reportId:t});const n={...i&&{dataProductDefinitionsPath:i}};return this.restClient.get({path:`/definitions/${t}`,query:n,token:e}).then(r=>r)}getDefinitions(e,t){this.logInfo("Get definitions");const i={renderMethod:"HTML",...t&&{dataProductDefinitionsPath:t}};return this.restClient.get({path:"/definitions",query:i,token:e}).then(n=>n)}getDefinition(e,t,i,n,r){const o={...r,dataProductDefinitionsPath:n};return this.logInfo("Get definition",{reportId:t,variantId:i,...o}),this.restClient.get({path:`/definitions/${t}/${i}`,query:o,token:e}).then(g=>g)}requestAsyncReport(e,t,i,n){return this.logInfo("Request report",{reportId:t,variantId:i}),this.restClient.get({path:`/async/reports/${t}/${i}`,token:e,query:n}).then(r=>r)}cancelAsyncRequest(e,t,i,n,r){return this.logInfo("Cancel Request",{reportId:t,variantId:i,executionId:n}),this.restClient.delete({path:`/reports/${t}/${i}/statements/${n}`,token:e,query:{dataProductDefinitionsPath:r}}).then(o=>o)}getAsyncReport(e,t,i,n,r){return this.logInfo("Get Data",{reportId:t,variantId:i,tableId:n}),this.restClient.get({path:`/reports/${t}/${i}/tables/${n}/result`,token:e,query:r}).then(o=>o)}getAsyncSummaryReport(e,t,i,n,r,o){return this.logInfo("Get summary data",{reportId:t,variantId:i,tableId:n,summaryId:r}),this.restClient.get({path:`/reports/${t}/${i}/tables/${n}/result/summary/${r}`,token:e,query:o}).then(g=>g)}getAsyncReportStatus(e,t,i,n,r,o){return this.logInfo("Get status",{reportId:t,variantId:i,tableId:o,executionId:n}),this.restClient.get({path:`/reports/${t}/${i}/statements/${n}/status`,token:e,query:{dataProductDefinitionsPath:r,tableId:o}}).then(g=>g)}getAsyncCount(e,t,i){return this.logInfo("Get count",{tableId:t}),this.restClient.get({path:`/report/tables/${t}/count`,token:e,query:{dataProductDefinitionsPath:i}}).then(n=>n.count)}getAsyncInteractiveCount(e,t,i,n,r){return this.logInfo("Get interactive count",{tableId:t,reportId:i,id:n}),this.restClient.get({path:`/reports/${i}/${n}/tables/${t}/count`,token:e,query:r.toRecordWithFilterPrefix(!0)}).then(o=>o.count)}logInfo(e,t){a.default.info(`Reporting Client: ${e}:`),t&&Object.keys(t).length&&a.default.info(JSON.stringify(t,null,2))}}var P=m;0&&(module.exports={ReportingClient});
2
2
  //# sourceMappingURL=reportingClient.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/dpr/data/reportingClient.ts"],
4
4
  "sourcesContent": ["import ReportQuery from '../types/ReportQuery'\nimport logger from '../utils/logger'\nimport RestClient from './restClient'\nimport Dict = NodeJS.Dict\nimport { components, operations } from '../types/api'\nimport { ApiConfig, Count, ListWithWarnings } from './types'\nimport type { ResultWithHeaders } from './restClient'\n\nclass ReportingClient {\n restClient: RestClient\n\n constructor(config: ApiConfig) {\n this.restClient = new RestClient('Reporting API Client', config)\n }\n\n getCount(resourceName: string, token: string, countRequest: ReportQuery): Promise<number> {\n logger.info(`Reporting client: Get count. { resourceName: ${resourceName} }`)\n\n return this.restClient\n .get({\n path: `/${resourceName}/count`,\n query: countRequest.toRecordWithFilterPrefix(true),\n token,\n })\n .then((response) => (<Count>response).count)\n }\n\n getList(resourceName: string, token: string, listRequest: ReportQuery): Promise<Array<Dict<string>>> {\n return this.getListWithWarnings(resourceName, token, listRequest).then((response) => response.data)\n }\n\n getListWithWarnings(resourceName: string, token: string, listRequest: ReportQuery): Promise<ListWithWarnings> {\n logger.info(`Reporting client: Get list. { resourceName: ${resourceName} }`)\n\n return this.restClient\n .getWithHeaders<Array<Dict<string>>>({\n path: `/${resourceName}`,\n query: listRequest.toRecordWithFilterPrefix(true),\n token,\n })\n .then((response: ResultWithHeaders<Array<Dict<string>>>) => ({\n data: response.data,\n warnings: {\n noDataAvailable: response.headers['x-no-data-warning'],\n },\n }))\n }\n\n getDefinitionSummary(\n token: string,\n reportId: string,\n definitionsPath?: string,\n ): Promise<components['schemas']['ReportDefinitionSummary']> {\n this.logInfo('Get definition summary', { reportId })\n\n const queryParams: operations['definitionSummary']['parameters']['query'] = {\n ...(definitionsPath && { dataProductDefinitionsPath: definitionsPath }),\n }\n\n return this.restClient\n .get({\n path: `/definitions/${reportId}`,\n query: queryParams,\n token,\n })\n .then((response) => <components['schemas']['ReportDefinitionSummary']>response)\n }\n\n getDefinitions(\n token: string,\n definitionsPath?: string,\n ): Promise<Array<components['schemas']['ReportDefinitionSummary']>> {\n this.logInfo('Get definitions')\n\n const queryParams: operations['definitions_1']['parameters']['query'] = {\n renderMethod: 'HTML',\n ...(definitionsPath && { dataProductDefinitionsPath: definitionsPath }),\n }\n\n return this.restClient\n .get({\n path: '/definitions',\n query: queryParams,\n token,\n })\n .then((response) => <Array<components['schemas']['ReportDefinitionSummary']>>response)\n }\n\n getDefinition(\n token: string,\n reportId: string,\n variantId: string,\n definitionsPath?: string,\n queryData?: Dict<string | string[]>,\n ): Promise<components['schemas']['SingleVariantReportDefinition']> {\n const query = {\n ...queryData,\n dataProductDefinitionsPath: definitionsPath,\n }\n\n this.logInfo('Get definition', { reportId, variantId, ...query })\n\n return this.restClient\n .get({\n path: `/definitions/${reportId}/${variantId}`,\n query,\n token,\n })\n .then((response) => <components['schemas']['SingleVariantReportDefinition']>response)\n }\n\n requestAsyncReport(\n token: string,\n reportId: string,\n variantId: string,\n query: Record<string, string | boolean | number>,\n ): Promise<Dict<string>> {\n this.logInfo('Request report', { reportId, variantId })\n\n return this.restClient\n .get({\n path: `/async/reports/${reportId}/${variantId}`,\n token,\n query,\n })\n .then((response) => <Dict<string>>response)\n }\n\n cancelAsyncRequest(\n token: string,\n reportId: string,\n variantId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n ): Promise<Dict<string>> {\n this.logInfo('Cancel Request', { reportId, variantId, executionId })\n\n return this.restClient\n .delete({\n path: `/reports/${reportId}/${variantId}/statements/${executionId}`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => <Dict<string>>response)\n }\n\n getAsyncReport(\n token: string,\n reportId: string,\n variantId: string,\n tableId: string,\n query: Record<string, string | string[]>,\n ): Promise<Array<Dict<string>>> {\n this.logInfo('Get Data', { reportId, variantId, tableId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${variantId}/tables/${tableId}/result`,\n token,\n query,\n })\n .then((response) => <Array<Dict<string>>>response)\n }\n\n getAsyncSummaryReport(\n token: string,\n reportId: string,\n variantId: string,\n tableId: string,\n summaryId: string,\n query: Dict<string | number>,\n ): Promise<Array<Dict<string>>> {\n this.logInfo('Get summary data', { reportId, variantId, tableId, summaryId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${variantId}/tables/${tableId}/result/summary/${summaryId}`,\n token,\n query,\n })\n .then((response) => <Array<Dict<string>>>response)\n }\n\n getAsyncReportStatus(\n token: string,\n reportId: string,\n variantId: string,\n executionId: string,\n dataProductDefinitionsPath?: string,\n tableId?: string,\n ): Promise<components['schemas']['StatementExecutionStatus']> {\n this.logInfo('Get status', { reportId, variantId, tableId, executionId })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${variantId}/statements/${executionId}/status`,\n token,\n query: {\n dataProductDefinitionsPath,\n tableId,\n },\n })\n .then((response) => <components['schemas']['StatementExecutionStatus']>response)\n }\n\n getAsyncCount(token: string, tableId: string, dataProductDefinitionsPath?: string): Promise<number> {\n this.logInfo('Get count', { tableId })\n\n return this.restClient\n .get({\n path: `/report/tables/${tableId}/count`,\n token,\n query: {\n dataProductDefinitionsPath,\n },\n })\n .then((response) => (<Count>response).count)\n }\n\n getAsyncInteractiveCount(\n token: string,\n tableId: string,\n reportId: string,\n id: string,\n filters: ReportQuery,\n ): Promise<number> {\n this.logInfo('Get interactive count', { tableId, reportId, id })\n\n return this.restClient\n .get({\n path: `/reports/${reportId}/${id}/tables/${tableId}/count`,\n token,\n query: filters.toRecordWithFilterPrefix(true),\n })\n .then((response) => (<Count>response).count)\n }\n\n logInfo(title: string, args?: Dict<string>) {\n logger.info(`Reporting Client: ${title}:`)\n if (args && Object.keys(args).length) logger.info(JSON.stringify(args, null, 2))\n }\n}\n\nexport { ReportingClient }\nexport default ReportingClient\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["reportingClient_exports", "__export", "ReportingClient", "reportingClient_default", "__toCommonJS", "import_logger", "import_restClient", "config", "RestClient", "resourceName", "token", "countRequest", "logger", "response", "listRequest", "reportId", "definitionsPath", "queryParams", "variantId", "queryData", "query", "executionId", "dataProductDefinitionsPath", "tableId", "summaryId", "id", "filters", "title", "args"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var w=Object.create;var l=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var q=(r,e)=>{for(var t in e)l(r,t,{get:e[t],enumerable:!0})},R=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of b(e))!W.call(r,i)&&i!==t&&l(r,i,{get:()=>e[i],enumerable:!(a=T(e,i))||a.enumerable});return r};var f=(r,e,t)=>(t=r!=null?w(E(r)):{},R(e||!r||!r.__esModule?l(t,"default",{value:r,enumerable:!0}):t,r)),C=r=>R(l({},"__esModule",{value:!0}),r);var v={};q(v,{RestClient:()=>m,default:()=>P});module.exports=C(v);var c=f(require("superagent")),$=f(require("agentkeepalive")),o=f(require("../utils/logger")),y=f(require("../utils/sanitisedError"));class m{constructor(e,t){this.name=e;this.config=t;this.agent=t.url.startsWith("https")?new $.HttpsAgent(t.agent):new $.default(t.agent)}apiUrl(){return this.config.url}timeoutConfig(){return this.config.agent.timeout}async get(e){return this.getWithHeaders(e).then(t=>t.data)}async requestWithBody(e,{path:t,query:a={},headers:i={},responseType:g="",data:u={},raw:p=!1,retry:n=!1},s){o.default.info(`${this.name} ${e.toUpperCase()}: ${t}`),o.default.info(`info about request: ${e} | ${t} | ${JSON.stringify(u)} | ${a}`);try{const h=await c.default[e](`${this.apiUrl()}${t}`).query(a).send(u).agent(this.agent).retry(2,d=>{if(n===!1)return!1;d&&o.default.info(`Retry handler found API error with ${d.code} ${d.message}`)}).auth(s,{type:"bearer"}).set(i).responseType(g).timeout(this.timeoutConfig());return p?h:h.body}catch(h){if(!(h instanceof Error))throw h;const d=(0,y.default)(h);throw o.default.warn({...d},`Error calling ${this.name}, path: '${t}', verb: '${e.toUpperCase()}'`),d}}async post(e,t){return this.requestWithBody("post",e,t)}async getWithHeaders({path:e="",query:t={},headers:a={},responseType:i="",raw:g=!1,token:u}){const p={path:`${this.config.url}${e}`,query:t};o.default.info(`${this.name}: ${JSON.stringify(p,null,2)}`);try{const n=await c.default.get(`${this.apiUrl()}${e}`).agent(this.agent).retry(2,s=>{s&&o.default.info(`Retry handler found API error with ${s.code} ${s.message}`)}).query(t).auth(u,{type:"bearer"}).set(a).responseType(i).timeout(this.timeoutConfig());return{data:g?n:n.body,headers:n.headers}}catch(n){const s=(0,y.default)(n);throw o.default.warn({...s,query:t},`Error calling ${this.name}, path: '${e}', verb: 'GET'`),s}}async deleteWithHeaders({path:e="",query:t={},headers:a={},responseType:i="",raw:g=!1,token:u}){const p={path:`${this.config.url}${e}`,query:t};o.default.info(`${this.name}: ${JSON.stringify(p,null,2)}`);try{const n=await c.default.delete(`${this.apiUrl()}${e}`).agent(this.agent).retry(2,s=>{s&&o.default.info(`Retry handler found API error with ${s.code} ${s.message}`)}).query(t).auth(u,{type:"bearer"}).set(a).responseType(i).timeout(this.timeoutConfig());return{data:g?n:n.body,headers:n.headers}}catch(n){const s=(0,y.default)(n);throw o.default.warn({...s,query:t},`Error calling ${this.name}, path: '${e}', verb: 'GET'`),s}}async delete(e){return this.deleteWithHeaders(e).then(t=>t.data)}}var P=m;0&&(module.exports={RestClient});
1
+ "use strict";var w=Object.create;var l=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var q=(r,e)=>{for(var t in e)l(r,t,{get:e[t],enumerable:!0})},R=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of b(e))!W.call(r,i)&&i!==t&&l(r,i,{get:()=>e[i],enumerable:!(a=T(e,i))||a.enumerable});return r};var f=(r,e,t)=>(t=r!=null?w(E(r)):{},R(e||!r||!r.__esModule?l(t,"default",{value:r,enumerable:!0}):t,r)),C=r=>R(l({},"__esModule",{value:!0}),r);var v={};q(v,{RestClient:()=>m,default:()=>P});module.exports=C(v);var c=f(require("superagent")),$=f(require("agentkeepalive")),o=f(require("../utils/logger")),y=f(require("../utils/sanitisedError"));class m{constructor(e,t){this.name=e;this.config=t;this.agent=t.url.startsWith("https")?new $.HttpsAgent(t.agent):new $.default(t.agent)}agent;apiUrl(){return this.config.url}timeoutConfig(){return this.config.agent.timeout}async get(e){return this.getWithHeaders(e).then(t=>t.data)}async requestWithBody(e,{path:t,query:a={},headers:i={},responseType:g="",data:u={},raw:p=!1,retry:n=!1},s){o.default.info(`${this.name} ${e.toUpperCase()}: ${t}`),o.default.info(`info about request: ${e} | ${t} | ${JSON.stringify(u)} | ${a}`);try{const h=await c.default[e](`${this.apiUrl()}${t}`).query(a).send(u).agent(this.agent).retry(2,d=>{if(n===!1)return!1;d&&o.default.info(`Retry handler found API error with ${d.code} ${d.message}`)}).auth(s,{type:"bearer"}).set(i).responseType(g).timeout(this.timeoutConfig());return p?h:h.body}catch(h){if(!(h instanceof Error))throw h;const d=(0,y.default)(h);throw o.default.warn({...d},`Error calling ${this.name}, path: '${t}', verb: '${e.toUpperCase()}'`),d}}async post(e,t){return this.requestWithBody("post",e,t)}async getWithHeaders({path:e="",query:t={},headers:a={},responseType:i="",raw:g=!1,token:u}){const p={path:`${this.config.url}${e}`,query:t};o.default.info(`${this.name}: ${JSON.stringify(p,null,2)}`);try{const n=await c.default.get(`${this.apiUrl()}${e}`).agent(this.agent).retry(2,s=>{s&&o.default.info(`Retry handler found API error with ${s.code} ${s.message}`)}).query(t).auth(u,{type:"bearer"}).set(a).responseType(i).timeout(this.timeoutConfig());return{data:g?n:n.body,headers:n.headers}}catch(n){const s=(0,y.default)(n);throw o.default.warn({...s,query:t},`Error calling ${this.name}, path: '${e}', verb: 'GET'`),s}}async deleteWithHeaders({path:e="",query:t={},headers:a={},responseType:i="",raw:g=!1,token:u}){const p={path:`${this.config.url}${e}`,query:t};o.default.info(`${this.name}: ${JSON.stringify(p,null,2)}`);try{const n=await c.default.delete(`${this.apiUrl()}${e}`).agent(this.agent).retry(2,s=>{s&&o.default.info(`Retry handler found API error with ${s.code} ${s.message}`)}).query(t).auth(u,{type:"bearer"}).set(a).responseType(i).timeout(this.timeoutConfig());return{data:g?n:n.body,headers:n.headers}}catch(n){const s=(0,y.default)(n);throw o.default.warn({...s,query:t},`Error calling ${this.name}, path: '${e}', verb: 'GET'`),s}}async delete(e){return this.deleteWithHeaders(e).then(t=>t.data)}}var P=m;0&&(module.exports={RestClient});
2
2
  //# sourceMappingURL=restClient.js.map