@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.20.2 → 4.21.1

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 (134) hide show
  1. package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -1
  2. package/dpr/components/_charts/chart/Chart.js +2 -0
  3. package/dpr/components/_charts/chart/Chart.js.map +7 -0
  4. package/dpr/components/_charts/chart/Chart.ts +89 -0
  5. package/dpr/components/_charts/chart/ChartColours.js +2 -0
  6. package/dpr/components/_charts/chart/ChartColours.js.map +7 -0
  7. package/dpr/components/_charts/chart/ChartColours.ts +36 -0
  8. package/dpr/components/_charts/chart/ChartTimeseries.js +2 -0
  9. package/dpr/components/_charts/chart/ChartTimeseries.js.map +7 -0
  10. package/dpr/components/_charts/chart/ChartTimeseries.ts +95 -0
  11. package/dpr/components/_charts/chart/bar/BarChart.js +2 -0
  12. package/dpr/components/_charts/chart/bar/BarChart.js.map +7 -0
  13. package/dpr/components/_charts/chart/bar/BarChart.ts +204 -0
  14. package/dpr/components/_charts/chart/bar/clientClass.mjs +0 -58
  15. package/dpr/components/_charts/chart/bar/types.js +2 -0
  16. package/dpr/components/_charts/chart/bar/types.js.map +7 -0
  17. package/dpr/components/_charts/chart/bar/types.ts +6 -0
  18. package/dpr/components/_charts/chart/bar/validate.js +2 -0
  19. package/dpr/components/_charts/chart/bar/validate.js.map +7 -0
  20. package/dpr/components/_charts/chart/bar/validate.ts +59 -0
  21. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js +2 -0
  22. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +7 -0
  23. package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.ts +57 -0
  24. package/dpr/components/_charts/chart/bar-timeseries/types.js +2 -0
  25. package/dpr/components/_charts/chart/bar-timeseries/types.js.map +7 -0
  26. package/dpr/components/_charts/chart/bar-timeseries/types.ts +5 -0
  27. package/dpr/components/_charts/chart/bar-timeseries/validate.js +2 -0
  28. package/dpr/components/_charts/chart/bar-timeseries/validate.js.map +7 -0
  29. package/dpr/components/_charts/chart/bar-timeseries/validate.ts +30 -0
  30. package/dpr/components/_charts/chart/buckets/Buckets.js +2 -0
  31. package/dpr/components/_charts/chart/buckets/Buckets.js.map +7 -0
  32. package/dpr/components/_charts/chart/{Buckets.ts → buckets/Buckets.ts} +18 -14
  33. package/dpr/components/_charts/chart/buckets/types.js +2 -0
  34. package/dpr/components/_charts/chart/buckets/types.js.map +7 -0
  35. package/dpr/components/_charts/chart/buckets/types.ts +4 -0
  36. package/dpr/components/_charts/chart/buckets/validate.js +2 -0
  37. package/dpr/components/_charts/chart/buckets/validate.js.map +7 -0
  38. package/dpr/components/_charts/chart/buckets/validate.ts +15 -0
  39. package/dpr/components/_charts/chart/chart-config.js +2 -0
  40. package/dpr/components/_charts/chart/chart-config.js.map +7 -0
  41. package/dpr/components/_charts/chart/chart-config.ts +108 -0
  42. package/dpr/components/_charts/chart/clientClass.mjs +28 -106
  43. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js +2 -0
  44. package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +7 -0
  45. package/dpr/components/_charts/chart/doughnut/DoughnutChart.ts +77 -0
  46. package/dpr/components/_charts/chart/doughnut/clientClass.mjs +0 -45
  47. package/dpr/components/_charts/chart/doughnut/types.js +2 -0
  48. package/dpr/components/_charts/chart/doughnut/types.js.map +7 -0
  49. package/dpr/components/_charts/chart/doughnut/types.ts +5 -0
  50. package/dpr/components/_charts/chart/doughnut/validate.js +2 -0
  51. package/dpr/components/_charts/chart/doughnut/validate.js.map +7 -0
  52. package/dpr/components/_charts/chart/doughnut/validate.ts +30 -0
  53. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
  54. package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
  55. package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +122 -44
  56. package/dpr/components/_charts/chart/heatmap/clientClass.mjs +7 -89
  57. package/dpr/components/_charts/chart/heatmap/types.js +1 -1
  58. package/dpr/components/_charts/chart/heatmap/types.js.map +1 -1
  59. package/dpr/components/_charts/chart/heatmap/types.ts +5 -0
  60. package/dpr/components/_charts/chart/heatmap/validate.js +2 -0
  61. package/dpr/components/_charts/chart/heatmap/validate.js.map +7 -0
  62. package/dpr/components/_charts/chart/heatmap/validate.ts +25 -0
  63. package/dpr/components/_charts/chart/line/LineChart.js +2 -0
  64. package/dpr/components/_charts/chart/line/LineChart.js.map +7 -0
  65. package/dpr/components/_charts/chart/line/LineChart.ts +89 -0
  66. package/dpr/components/_charts/chart/line/clientClass.mjs +5 -36
  67. package/dpr/components/_charts/chart/line/types.js +2 -0
  68. package/dpr/components/_charts/chart/line/types.js.map +7 -0
  69. package/dpr/components/_charts/chart/line/types.ts +5 -0
  70. package/dpr/components/_charts/chart/line/validate.js +2 -0
  71. package/dpr/components/_charts/chart/line/validate.js.map +7 -0
  72. package/dpr/components/_charts/chart/line/validate.ts +30 -0
  73. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js +2 -0
  74. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +7 -0
  75. package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.ts +57 -0
  76. package/dpr/components/_charts/chart/line-timeseries/types.js +2 -0
  77. package/dpr/components/_charts/chart/line-timeseries/types.js.map +7 -0
  78. package/dpr/components/_charts/chart/line-timeseries/types.ts +5 -0
  79. package/dpr/components/_charts/chart/line-timeseries/validate.js +2 -0
  80. package/dpr/components/_charts/chart/line-timeseries/validate.js.map +7 -0
  81. package/dpr/components/_charts/chart/line-timeseries/validate.ts +30 -0
  82. package/dpr/components/_charts/chart/view.njk +8 -1
  83. package/dpr/components/_charts/chart-tabs/view.njk +15 -14
  84. package/dpr/components/_charts/utils.js +1 -1
  85. package/dpr/components/_charts/utils.js.map +3 -3
  86. package/dpr/components/_charts/utils.test.ts +9 -3
  87. package/dpr/components/_charts/utils.ts +59 -193
  88. package/dpr/components/_dashboards/dashboard-list/types.js +2 -0
  89. package/dpr/components/_dashboards/dashboard-list/types.js.map +7 -0
  90. package/dpr/components/_dashboards/dashboard-list/types.ts +4 -0
  91. package/dpr/components/_dashboards/dashboard-list/validate.js +2 -0
  92. package/dpr/components/_dashboards/dashboard-list/validate.js.map +7 -0
  93. package/dpr/components/_dashboards/dashboard-list/validate.ts +28 -0
  94. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js +2 -0
  95. package/dpr/components/_dashboards/dashboard-visualisation/Validate.js.map +7 -0
  96. package/dpr/components/_dashboards/dashboard-visualisation/Validate.ts +71 -0
  97. package/dpr/components/_dashboards/dashboard-visualisation/types.js +1 -1
  98. package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
  99. package/dpr/components/_dashboards/dashboard-visualisation/types.ts +32 -2
  100. package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
  101. package/dpr/components/_dashboards/scorecard/Scorecard.js.map +3 -3
  102. package/dpr/components/_dashboards/scorecard/Scorecard.ts +82 -213
  103. package/dpr/components/_dashboards/scorecard/types.js +1 -1
  104. package/dpr/components/_dashboards/scorecard/types.js.map +1 -1
  105. package/dpr/components/_dashboards/scorecard/types.ts +11 -1
  106. package/dpr/components/_dashboards/scorecard/validate.js +2 -0
  107. package/dpr/components/_dashboards/scorecard/validate.js.map +7 -0
  108. package/dpr/components/_dashboards/scorecard/validate.ts +36 -0
  109. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js +2 -0
  110. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +7 -0
  111. package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.ts +228 -0
  112. package/dpr/components/_dashboards/scorecard-group/types.js +2 -0
  113. package/dpr/components/_dashboards/scorecard-group/types.js.map +7 -0
  114. package/dpr/components/_dashboards/scorecard-group/types.ts +5 -0
  115. package/dpr/components/_dashboards/scorecard-group/validate.js +2 -0
  116. package/dpr/components/_dashboards/scorecard-group/validate.js.map +7 -0
  117. package/dpr/components/_dashboards/scorecard-group/validate.ts +37 -0
  118. package/dpr/components/_filters/types.d.js.map +1 -1
  119. package/dpr/components/_filters/types.d.ts +6 -4
  120. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  121. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
  122. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +22 -10
  123. package/dpr/routes/journeys/view-report/controller.js +1 -1
  124. package/dpr/routes/journeys/view-report/controller.js.map +3 -3
  125. package/dpr/routes/journeys/view-report/controller.ts +3 -1
  126. package/dpr/utils/ErrorHandler.js +1 -1
  127. package/dpr/utils/ErrorHandler.js.map +3 -3
  128. package/dpr/utils/ErrorHandler.ts +16 -0
  129. package/package.json +1 -1
  130. package/dpr/components/_charts/chart/Buckets.js +0 -2
  131. package/dpr/components/_charts/chart/Buckets.js.map +0 -7
  132. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +0 -2
  133. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +0 -7
  134. package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +0 -40
@@ -30,7 +30,7 @@ describe('CatalogueUtils', () => {
30
30
  const reportsTableData = await CatalogueUtils.getReportsList(res, services)
31
31
 
32
32
  expect(reportsTableData.head.length).toEqual(4)
33
- expect(reportsTableData.rows.length).toEqual(72)
33
+ expect(reportsTableData.rows.length).toEqual(79)
34
34
  })
35
35
  })
36
36
  })
@@ -0,0 +1,2 @@
1
+ "use strict";var c=Object.create;var i=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var I=(e,a)=>{for(var t in a)i(e,t,{get:a[t],enumerable:!0})},l=(e,a,t,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of m(a))!g.call(e,s)&&s!==t&&i(e,s,{get:()=>a[s],enumerable:!(r=C(a,s))||r.enumerable});return e};var R=(e,a,t)=>(t=e!=null?c(f(e)):{},l(a||!e||!e.__esModule?i(t,"default",{value:e,enumerable:!0}):t,e)),x=e=>l(i({},"__esModule",{value:!0}),e);var V={};I(V,{Chart:()=>o,default:()=>M});module.exports=x(V);var u=require("./ChartColours"),d=R(require("./chart-config"));class o{constructor(){this.labels=[];this.labelId=void 0;this.datasets=[];this.responseData=[];this.backgroundColor=[];this.borderWidth=[0,0];this.borderColor=[];this.hexColours=[];this.config=d.default;this.withData=a=>(this.responseData=a,this);this.initUnit=a=>{this.unit=a.find(t=>t.unit)?.unit};this.createDatasets=(a,t)=>{this.hexColours=new u.ChartColours().getHexPallette(),this.datasets=t.map((r,s)=>{const h=this.createDatasetLabel(r),n=this.createDatasetValues(a,r),b=n.reduce((D,p)=>D+p,0);return{label:h,data:n,total:b,...this.setStyles(s)}})};this.createDatasetLabel=a=>this.labelId&&a[this.labelId]?`${a[this.labelId].raw}`:"All";this.createDatasetValues=(a,t)=>a.map(r=>{const s=r.id;return t[s]&&t[s].raw?Number(t[s].raw):0});this.setStyles=a=>{const t=this.hexColours[a];return{backgroundColor:t,borderColor:t}};this.createLabels=a=>{this.labels=a.map(t=>t.display||"")};this.getLabelId=a=>{if(a.length){const t=a.length-1;this.labelId=a[t]?.id}}}}var M=o;0&&(module.exports={Chart});
2
+ //# sourceMappingURL=Chart.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/dpr/components/_charts/chart/Chart.ts"],
4
+ "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport {\n DashboardVisualisationDataSet,\n VisualisationDefinitionKey,\n ChartMeasure,\n} from '../../_dashboards/dashboard-visualisation/types'\nimport { ChartColours } from './ChartColours'\nimport ChartConfig from './chart-config'\n\nclass Chart {\n labels: string[] = []\n\n private labelId: string | undefined = undefined\n\n datasets: DashboardVisualisationDataSet[] = []\n\n unit: 'NUMBER' | 'PERCENTAGE' | undefined\n\n responseData: DashboardDataResponse[] = []\n\n backgroundColor: string[][] = []\n\n borderWidth: number[] = [0, 0]\n\n borderColor: string[][] = []\n\n hexColours: string[] = []\n\n config = ChartConfig\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n return this\n }\n\n initUnit = (measures: ChartMeasure) => {\n this.unit = measures.find((m) => m.unit)?.unit\n }\n\n createDatasets = (measures: ChartMeasure, responseData: DashboardDataResponse[]) => {\n this.hexColours = new ChartColours().getHexPallette()\n this.datasets = responseData.map((row, datasetIndex) => {\n const label = this.createDatasetLabel(row)\n const data = this.createDatasetValues(measures, row)\n const total = data.reduce((acc: number, val: number) => acc + val, 0)\n\n return {\n label,\n data,\n total,\n ...this.setStyles(datasetIndex),\n }\n })\n }\n\n private createDatasetLabel = (row: DashboardDataResponse) => {\n return this.labelId && row[this.labelId] ? `${row[this.labelId].raw}` : 'All'\n }\n\n private createDatasetValues = (measures: ChartMeasure, row: DashboardDataResponse) => {\n return measures.map((column) => {\n const rowId = column.id\n return row[rowId] && row[rowId].raw ? Number(row[rowId].raw) : 0\n })\n }\n\n setStyles = (datasetIndex: number) => {\n const colour = this.hexColours[datasetIndex]\n return {\n backgroundColor: colour,\n borderColor: colour,\n }\n }\n\n createLabels = (measures: ChartMeasure) => {\n this.labels = measures.map((col) => col.display || '')\n }\n\n getLabelId = (keys: VisualisationDefinitionKey[]) => {\n if (keys.length) {\n const lastIndex = keys.length - 1\n this.labelId = keys[lastIndex]?.id\n }\n }\n}\n\nexport { Chart }\nexport default Chart\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAOA,IAAAK,EAA6B,0BAC7BC,EAAwB,6BAExB,MAAMJ,CAAM,CAAZ,cACE,YAAmB,CAAC,EAEpB,KAAQ,QAA8B,OAEtC,cAA4C,CAAC,EAI7C,kBAAwC,CAAC,EAEzC,qBAA8B,CAAC,EAE/B,iBAAwB,CAAC,EAAG,CAAC,EAE7B,iBAA0B,CAAC,EAE3B,gBAAuB,CAAC,EAExB,YAAS,EAAAK,QAET,cAAYC,IACV,KAAK,aAAeA,EACb,MAGT,cAAYC,GAA2B,CACrC,KAAK,KAAOA,EAAS,KAAMC,GAAMA,EAAE,IAAI,GAAG,IAC5C,EAEA,oBAAiB,CAACD,EAAwBD,IAA0C,CAClF,KAAK,WAAa,IAAI,eAAa,EAAE,eAAe,EACpD,KAAK,SAAWA,EAAa,IAAI,CAACG,EAAKC,IAAiB,CACtD,MAAMC,EAAQ,KAAK,mBAAmBF,CAAG,EACnCG,EAAO,KAAK,oBAAoBL,EAAUE,CAAG,EAC7CI,EAAQD,EAAK,OAAO,CAACE,EAAaC,IAAgBD,EAAMC,EAAK,CAAC,EAEpE,MAAO,CACL,MAAAJ,EACA,KAAAC,EACA,MAAAC,EACA,GAAG,KAAK,UAAUH,CAAY,CAChC,CACF,CAAC,CACH,EAEA,KAAQ,mBAAsBD,GACrB,KAAK,SAAWA,EAAI,KAAK,OAAO,EAAI,GAAGA,EAAI,KAAK,OAAO,EAAE,GAAG,GAAK,MAG1E,KAAQ,oBAAsB,CAACF,EAAwBE,IAC9CF,EAAS,IAAKS,GAAW,CAC9B,MAAMC,EAAQD,EAAO,GACrB,OAAOP,EAAIQ,CAAK,GAAKR,EAAIQ,CAAK,EAAE,IAAM,OAAOR,EAAIQ,CAAK,EAAE,GAAG,EAAI,CACjE,CAAC,EAGH,eAAaP,GAAyB,CACpC,MAAMQ,EAAS,KAAK,WAAWR,CAAY,EAC3C,MAAO,CACL,gBAAiBQ,EACjB,YAAaA,CACf,CACF,EAEA,kBAAgBX,GAA2B,CACzC,KAAK,OAASA,EAAS,IAAKY,GAAQA,EAAI,SAAW,EAAE,CACvD,EAEA,gBAAcC,GAAuC,CACnD,GAAIA,EAAK,OAAQ,CACf,MAAMC,EAAYD,EAAK,OAAS,EAChC,KAAK,QAAUA,EAAKC,CAAS,GAAG,EAClC,CACF,EACF,CAGA,IAAOpB,EAAQD",
6
+ "names": ["Chart_exports", "__export", "Chart", "Chart_default", "__toCommonJS", "import_ChartColours", "import_chart_config", "ChartConfig", "responseData", "measures", "m", "row", "datasetIndex", "label", "data", "total", "acc", "val", "column", "rowId", "colour", "col", "keys", "lastIndex"]
7
+ }
@@ -0,0 +1,89 @@
1
+ /* eslint-disable prefer-destructuring */
2
+ import { DashboardDataResponse } from '../../../types/Metrics'
3
+ import {
4
+ DashboardVisualisationDataSet,
5
+ VisualisationDefinitionKey,
6
+ ChartMeasure,
7
+ } from '../../_dashboards/dashboard-visualisation/types'
8
+ import { ChartColours } from './ChartColours'
9
+ import ChartConfig from './chart-config'
10
+
11
+ class Chart {
12
+ labels: string[] = []
13
+
14
+ private labelId: string | undefined = undefined
15
+
16
+ datasets: DashboardVisualisationDataSet[] = []
17
+
18
+ unit: 'NUMBER' | 'PERCENTAGE' | undefined
19
+
20
+ responseData: DashboardDataResponse[] = []
21
+
22
+ backgroundColor: string[][] = []
23
+
24
+ borderWidth: number[] = [0, 0]
25
+
26
+ borderColor: string[][] = []
27
+
28
+ hexColours: string[] = []
29
+
30
+ config = ChartConfig
31
+
32
+ withData = (responseData: DashboardDataResponse[]) => {
33
+ this.responseData = responseData
34
+ return this
35
+ }
36
+
37
+ initUnit = (measures: ChartMeasure) => {
38
+ this.unit = measures.find((m) => m.unit)?.unit
39
+ }
40
+
41
+ createDatasets = (measures: ChartMeasure, responseData: DashboardDataResponse[]) => {
42
+ this.hexColours = new ChartColours().getHexPallette()
43
+ this.datasets = responseData.map((row, datasetIndex) => {
44
+ const label = this.createDatasetLabel(row)
45
+ const data = this.createDatasetValues(measures, row)
46
+ const total = data.reduce((acc: number, val: number) => acc + val, 0)
47
+
48
+ return {
49
+ label,
50
+ data,
51
+ total,
52
+ ...this.setStyles(datasetIndex),
53
+ }
54
+ })
55
+ }
56
+
57
+ private createDatasetLabel = (row: DashboardDataResponse) => {
58
+ return this.labelId && row[this.labelId] ? `${row[this.labelId].raw}` : 'All'
59
+ }
60
+
61
+ private createDatasetValues = (measures: ChartMeasure, row: DashboardDataResponse) => {
62
+ return measures.map((column) => {
63
+ const rowId = column.id
64
+ return row[rowId] && row[rowId].raw ? Number(row[rowId].raw) : 0
65
+ })
66
+ }
67
+
68
+ setStyles = (datasetIndex: number) => {
69
+ const colour = this.hexColours[datasetIndex]
70
+ return {
71
+ backgroundColor: colour,
72
+ borderColor: colour,
73
+ }
74
+ }
75
+
76
+ createLabels = (measures: ChartMeasure) => {
77
+ this.labels = measures.map((col) => col.display || '')
78
+ }
79
+
80
+ getLabelId = (keys: VisualisationDefinitionKey[]) => {
81
+ if (keys.length) {
82
+ const lastIndex = keys.length - 1
83
+ this.labelId = keys[lastIndex]?.id
84
+ }
85
+ }
86
+ }
87
+
88
+ export { Chart }
89
+ export default Chart
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var o=(a,e)=>{for(var l in e)r(a,l,{get:e[l],enumerable:!0})},p=(a,e,l,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of x(e))!m.call(a,t)&&t!==l&&r(a,t,{get:()=>e[t],enumerable:!(n=h(e,t))||n.enumerable});return a};var u=a=>p(r({},"__esModule",{value:!0}),a);var s={};o(s,{ChartColours:()=>g});module.exports=u(s);class g{constructor(){this.pallette=[{name:"blue",hex:"#5694ca"},{name:"purple",hex:"#912b88"},{name:"green",hex:"#00703c"},{name:"dark_blue",hex:"#003078"},{name:"orange",hex:"#f47738"},{name:"orange",hex:"#28a197"}];this.getColourPallette=()=>this.pallette;this.getHexPallette=()=>this.pallette.map(e=>e.hex)}}0&&(module.exports={ChartColours});
2
+ //# sourceMappingURL=ChartColours.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/dpr/components/_charts/chart/ChartColours.ts"],
4
+ "sourcesContent": ["export class ChartColours {\n pallette = [\n {\n name: 'blue',\n hex: '#5694ca',\n },\n {\n name: 'purple',\n hex: '#912b88',\n },\n {\n name: 'green',\n hex: '#00703c',\n },\n {\n name: 'dark_blue',\n hex: '#003078',\n },\n {\n name: 'orange',\n hex: '#f47738',\n },\n {\n name: 'orange',\n hex: '#28a197',\n },\n ]\n\n getColourPallette = () => {\n return this.pallette\n }\n\n getHexPallette = () => {\n return this.pallette.map((p) => p.hex)\n }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,CAAa,CAAnB,cACL,cAAW,CACT,CACE,KAAM,OACN,IAAK,SACP,EACA,CACE,KAAM,SACN,IAAK,SACP,EACA,CACE,KAAM,QACN,IAAK,SACP,EACA,CACE,KAAM,YACN,IAAK,SACP,EACA,CACE,KAAM,SACN,IAAK,SACP,EACA,CACE,KAAM,SACN,IAAK,SACP,CACF,EAEA,uBAAoB,IACX,KAAK,SAGd,oBAAiB,IACR,KAAK,SAAS,IAAKE,GAAMA,EAAE,GAAG,EAEzC",
6
+ "names": ["ChartColours_exports", "__export", "ChartColours", "__toCommonJS", "p"]
7
+ }
@@ -0,0 +1,36 @@
1
+ export class ChartColours {
2
+ pallette = [
3
+ {
4
+ name: 'blue',
5
+ hex: '#5694ca',
6
+ },
7
+ {
8
+ name: 'purple',
9
+ hex: '#912b88',
10
+ },
11
+ {
12
+ name: 'green',
13
+ hex: '#00703c',
14
+ },
15
+ {
16
+ name: 'dark_blue',
17
+ hex: '#003078',
18
+ },
19
+ {
20
+ name: 'orange',
21
+ hex: '#f47738',
22
+ },
23
+ {
24
+ name: 'orange',
25
+ hex: '#28a197',
26
+ },
27
+ ]
28
+
29
+ getColourPallette = () => {
30
+ return this.pallette
31
+ }
32
+
33
+ getHexPallette = () => {
34
+ return this.pallette.map((p) => p.hex)
35
+ }
36
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.create;var o=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var y=(t,e)=>{for(var i in e)o(t,i,{get:e[i],enumerable:!0})},l=(t,e,i,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of c(e))!g.call(t,s)&&s!==i&&o(t,s,{get:()=>e[s],enumerable:!(a=b(e,s))||a.enumerable});return t};var u=(t,e,i)=>(i=t!=null?f(T(t)):{},l(e||!t||!t.__esModule?o(i,"default",{value:t,enumerable:!0}):i,t)),C=t=>l(o({},"__esModule",{value:!0}),t);var k={};y(k,{TimeseriesChart:()=>h,default:()=>B});module.exports=C(k);var m=u(require("../../../utils/datasetHelper")),D=require("./ChartColours"),p=u(require("./chart-config"));class h{constructor(){this.labels=[];this.labelId=void 0;this.datasets=[];this.responseData=[];this.measures=[];this.keys=[];this.timeBlockData=[];this.datasetCount=0;this.hexColours=[];this.config=p.default;this.withData=e=>(this.responseData=e,this.initFromData(),this);this.initFromDefinition=e=>{this.measures=e.columns.measures,this.keys=e.columns.keys||[],this.unit=this.measures.find(i=>i.unit)?.unit};this.withPartialDate=e=>(this.partialDate=e,this);this.initFromData=()=>{this.groupKey=m.default.getGroupKey(this.responseData,this.keys),this.labelId=this.groupKey?.id||"",this.timeBlockData=m.default.groupRowsByTimestamp(this.responseData),this.labels=this.getLabels(),this.datasetCount=this.timeBlockData[0]?.length};this.buildDatasets=()=>{this.hexColours=new D.ChartColours().getHexPallette();for(let e=0;e<this.datasetCount;e+=1){const i=this.timeBlockData.map(n=>{const{raw:r}=n[e][this.measures[1].id];return r?Number(r):0}),a=i.reduce((n,r)=>n+r,0),s=this.labelId?this.timeBlockData[0][e][this.labelId].raw:"",d=s||"";this.datasets.push({data:i,label:d,total:a})}};this.getLabels=()=>this.timeBlockData.map(e=>e[0].ts.raw)}}var B=h;0&&(module.exports={TimeseriesChart});
2
+ //# sourceMappingURL=ChartTimeseries.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/dpr/components/_charts/chart/ChartTimeseries.ts"],
4
+ "sourcesContent": ["import { components } from '../../../types/api'\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport {\n DashboardVisualisationDataSet,\n TimeseriesChartMeasure,\n VisualisationDefinitionKey,\n} from '../../_dashboards/dashboard-visualisation/types'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport { BarTimeseriesDefinitionMeasure, BarTimeseriesDefinitionType } from './bar-timeseries/types'\nimport { LineTimeseriesDefinitionMeasure, LineTimeseriesDefinitionType } from './line-timeseries/types'\nimport { ChartColours } from './ChartColours'\nimport ChartConfig from './chart-config'\nimport { PartialDate } from '../../_filters/types'\n\nclass TimeseriesChart {\n labels: string[] = []\n\n labelId: string | undefined = undefined\n\n datasets: DashboardVisualisationDataSet[] = []\n\n unit: 'NUMBER' | 'PERCENTAGE' | undefined\n\n responseData: DashboardDataResponse[] = []\n\n measures: TimeseriesChartMeasure = []\n\n keys: VisualisationDefinitionKey[] = []\n\n timeBlockData: DashboardDataResponse[][] = []\n\n groupKey: LineTimeseriesDefinitionMeasure | BarTimeseriesDefinitionMeasure | undefined\n\n datasetCount = 0\n\n hexColours: string[] = []\n\n config = ChartConfig\n\n partialDate: PartialDate | undefined\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.initFromData()\n return this\n }\n\n initFromDefinition = (definition: BarTimeseriesDefinitionType | LineTimeseriesDefinitionType) => {\n this.measures = definition.columns.measures\n this.keys = definition.columns.keys || []\n this.unit = this.measures.find((m) => m.unit)?.unit\n }\n\n withPartialDate = (partialDate?: PartialDate) => {\n this.partialDate = partialDate\n return this\n }\n\n initFromData = () => {\n this.groupKey = DatasetHelper.getGroupKey(\n this.responseData,\n <Array<components['schemas']['DashboardVisualisationColumnDefinition']>>this.keys,\n )\n this.labelId = this.groupKey?.id || ''\n this.timeBlockData = DatasetHelper.groupRowsByTimestamp(this.responseData)\n this.labels = this.getLabels()\n this.datasetCount = this.timeBlockData[0]?.length\n }\n\n buildDatasets = () => {\n this.hexColours = new ChartColours().getHexPallette()\n for (let index = 0; index < this.datasetCount; index += 1) {\n const data = this.timeBlockData.map((timeperiod) => {\n const { raw } = timeperiod[index][this.measures[1].id]\n return raw ? Number(raw) : 0\n })\n const total = data.reduce((a, c) => a + c, 0)\n const rawValue = this.labelId ? this.timeBlockData[0][index][this.labelId].raw : ''\n const label = rawValue ? <string>rawValue : ''\n\n this.datasets.push({\n data,\n label,\n total,\n })\n }\n }\n\n private getLabels = () => {\n return this.timeBlockData.map((d: DashboardDataResponse[]) => <string>d[0]['ts'].raw)\n }\n}\n\nexport { TimeseriesChart }\nexport default TimeseriesChart\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAOA,IAAAK,EAA0B,2CAG1BC,EAA6B,0BAC7BC,EAAwB,6BAGxB,MAAML,CAAgB,CAAtB,cACE,YAAmB,CAAC,EAEpB,aAA8B,OAE9B,cAA4C,CAAC,EAI7C,kBAAwC,CAAC,EAEzC,cAAmC,CAAC,EAEpC,UAAqC,CAAC,EAEtC,mBAA2C,CAAC,EAI5C,kBAAe,EAEf,gBAAuB,CAAC,EAExB,YAAS,EAAAM,QAIT,cAAYC,IACV,KAAK,aAAeA,EACpB,KAAK,aAAa,EACX,MAGT,wBAAsBC,GAA2E,CAC/F,KAAK,SAAWA,EAAW,QAAQ,SACnC,KAAK,KAAOA,EAAW,QAAQ,MAAQ,CAAC,EACxC,KAAK,KAAO,KAAK,SAAS,KAAMC,GAAMA,EAAE,IAAI,GAAG,IACjD,EAEA,qBAAmBC,IACjB,KAAK,YAAcA,EACZ,MAGT,kBAAe,IAAM,CACnB,KAAK,SAAW,EAAAC,QAAc,YAC5B,KAAK,aACmE,KAAK,IAC/E,EACA,KAAK,QAAU,KAAK,UAAU,IAAM,GACpC,KAAK,cAAgB,EAAAA,QAAc,qBAAqB,KAAK,YAAY,EACzE,KAAK,OAAS,KAAK,UAAU,EAC7B,KAAK,aAAe,KAAK,cAAc,CAAC,GAAG,MAC7C,EAEA,mBAAgB,IAAM,CACpB,KAAK,WAAa,IAAI,eAAa,EAAE,eAAe,EACpD,QAASC,EAAQ,EAAGA,EAAQ,KAAK,aAAcA,GAAS,EAAG,CACzD,MAAMC,EAAO,KAAK,cAAc,IAAKC,GAAe,CAClD,KAAM,CAAE,IAAAC,CAAI,EAAID,EAAWF,CAAK,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE,EACrD,OAAOG,EAAM,OAAOA,CAAG,EAAI,CAC7B,CAAC,EACKC,EAAQH,EAAK,OAAO,CAACI,EAAGC,IAAMD,EAAIC,EAAG,CAAC,EACtCC,EAAW,KAAK,QAAU,KAAK,cAAc,CAAC,EAAEP,CAAK,EAAE,KAAK,OAAO,EAAE,IAAM,GAC3EQ,EAAQD,GAA8B,GAE5C,KAAK,SAAS,KAAK,CACjB,KAAAN,EACA,MAAAO,EACA,MAAAJ,CACF,CAAC,CACH,CACF,EAEA,KAAQ,UAAY,IACX,KAAK,cAAc,IAAKK,GAAuCA,EAAE,CAAC,EAAE,GAAM,GAAG,EAExF,CAGA,IAAOpB,EAAQD",
6
+ "names": ["ChartTimeseries_exports", "__export", "TimeseriesChart", "ChartTimeseries_default", "__toCommonJS", "import_datasetHelper", "import_ChartColours", "import_chart_config", "ChartConfig", "responseData", "definition", "m", "partialDate", "DatasetHelper", "index", "data", "timeperiod", "raw", "total", "a", "c", "rawValue", "label", "d"]
7
+ }
@@ -0,0 +1,95 @@
1
+ import { components } from '../../../types/api'
2
+ import { DashboardDataResponse } from '../../../types/Metrics'
3
+ import {
4
+ DashboardVisualisationDataSet,
5
+ TimeseriesChartMeasure,
6
+ VisualisationDefinitionKey,
7
+ } from '../../_dashboards/dashboard-visualisation/types'
8
+ import DatasetHelper from '../../../utils/datasetHelper'
9
+ import { BarTimeseriesDefinitionMeasure, BarTimeseriesDefinitionType } from './bar-timeseries/types'
10
+ import { LineTimeseriesDefinitionMeasure, LineTimeseriesDefinitionType } from './line-timeseries/types'
11
+ import { ChartColours } from './ChartColours'
12
+ import ChartConfig from './chart-config'
13
+ import { PartialDate } from '../../_filters/types'
14
+
15
+ class TimeseriesChart {
16
+ labels: string[] = []
17
+
18
+ labelId: string | undefined = undefined
19
+
20
+ datasets: DashboardVisualisationDataSet[] = []
21
+
22
+ unit: 'NUMBER' | 'PERCENTAGE' | undefined
23
+
24
+ responseData: DashboardDataResponse[] = []
25
+
26
+ measures: TimeseriesChartMeasure = []
27
+
28
+ keys: VisualisationDefinitionKey[] = []
29
+
30
+ timeBlockData: DashboardDataResponse[][] = []
31
+
32
+ groupKey: LineTimeseriesDefinitionMeasure | BarTimeseriesDefinitionMeasure | undefined
33
+
34
+ datasetCount = 0
35
+
36
+ hexColours: string[] = []
37
+
38
+ config = ChartConfig
39
+
40
+ partialDate: PartialDate | undefined
41
+
42
+ withData = (responseData: DashboardDataResponse[]) => {
43
+ this.responseData = responseData
44
+ this.initFromData()
45
+ return this
46
+ }
47
+
48
+ initFromDefinition = (definition: BarTimeseriesDefinitionType | LineTimeseriesDefinitionType) => {
49
+ this.measures = definition.columns.measures
50
+ this.keys = definition.columns.keys || []
51
+ this.unit = this.measures.find((m) => m.unit)?.unit
52
+ }
53
+
54
+ withPartialDate = (partialDate?: PartialDate) => {
55
+ this.partialDate = partialDate
56
+ return this
57
+ }
58
+
59
+ initFromData = () => {
60
+ this.groupKey = DatasetHelper.getGroupKey(
61
+ this.responseData,
62
+ <Array<components['schemas']['DashboardVisualisationColumnDefinition']>>this.keys,
63
+ )
64
+ this.labelId = this.groupKey?.id || ''
65
+ this.timeBlockData = DatasetHelper.groupRowsByTimestamp(this.responseData)
66
+ this.labels = this.getLabels()
67
+ this.datasetCount = this.timeBlockData[0]?.length
68
+ }
69
+
70
+ buildDatasets = () => {
71
+ this.hexColours = new ChartColours().getHexPallette()
72
+ for (let index = 0; index < this.datasetCount; index += 1) {
73
+ const data = this.timeBlockData.map((timeperiod) => {
74
+ const { raw } = timeperiod[index][this.measures[1].id]
75
+ return raw ? Number(raw) : 0
76
+ })
77
+ const total = data.reduce((a, c) => a + c, 0)
78
+ const rawValue = this.labelId ? this.timeBlockData[0][index][this.labelId].raw : ''
79
+ const label = rawValue ? <string>rawValue : ''
80
+
81
+ this.datasets.push({
82
+ data,
83
+ label,
84
+ total,
85
+ })
86
+ }
87
+ }
88
+
89
+ private getLabels = () => {
90
+ return this.timeBlockData.map((d: DashboardDataResponse[]) => <string>d[0]['ts'].raw)
91
+ }
92
+ }
93
+
94
+ export { TimeseriesChart }
95
+ export default TimeseriesChart
@@ -0,0 +1,2 @@
1
+ "use strict";var B=Object.create;var h=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var w=(i,a)=>{for(var t in a)h(i,t,{get:a[t],enumerable:!0})},m=(i,a,t,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of k(a))!K.call(i,s)&&s!==t&&h(i,s,{get:()=>a[s],enumerable:!(e=L(a,s))||e.enumerable});return i};var p=(i,a,t)=>(t=i!=null?B(A(i)):{},m(a||!i||!i.__esModule?h(t,"default",{value:i,enumerable:!0}):t,i)),V=i=>m(h({},"__esModule",{value:!0}),i);var M={};w(M,{BarChart:()=>l,default:()=>S});module.exports=V(M);var f=require("../../../_dashboards/dashboard-visualisation/types"),d=p(require("../../../../utils/datasetHelper")),c=p(require("../Chart")),g=p(require("./validate")),b=require("../ChartColours");class l extends c.default{constructor(){super(...arguments);this.responseData=[];this.isList=!1;this.datasets=[];this.groupsData=[];this.barCount=0;this.withDefinition=t=>(this.definition=g.default.BarSchema.parse(t),this.initFromDefinitionData(),this);this.withData=t=>(this.responseData=t,this.isList&&this.initListData(),this);this.getCanvasHeight=()=>(this.barCount=this.datasets.length*this.datasets[0].data.length,this.options?.horizontal?this.barCount*40+60:400);this.build=()=>{this.isList?this.getListBarChartData():this.getBarChartData();const t=this.getCanvasHeight();return{type:f.DashboardVisualisationType.BAR,options:{height:t,unit:this.unit,timeseries:!1},data:{labels:this.labels,datasets:this.datasets,config:this.config}}};this.augmentDataset=t=>t.map(e=>({...e,borderWidth:[0,0],datalabels:{align:"center",anchor:"bottom"}}));this.setBespokeOptions=()=>{let t="x",e;if(this.options){const{horizontal:s,xStacked:r,yStacked:o}=this.options;t=s?"y":t,(r||o)&&(e={...r&&{x:{stacked:r}},...o&&{y:{stacked:o}}})}return{...this.config,indexAxis:t,...e&&{scales:e}}};this.getBarChartData=()=>{this.createDatasets(this.measures,this.responseData),this.datasets=this.augmentDataset(this.datasets),this.config=this.setBespokeOptions(),this.createLabels(this.measures)};this.getListBarChartData=()=>{this.createListLabels(),this.createListDatasets(),this.datasets=this.augmentDataset(this.datasets),this.config=this.setBespokeOptions()};this.initFromDefinitionData=()=>{this.measures=this.definition.columns.measures,this.options=this.definition.options,this.keys=this.definition.columns.keys||[],this.isList=!!this.measures.find(t=>t.axis),this.initUnit(this.measures),this.isList||this.getLabelId(this.keys)};this.initListData=()=>{this.xAxisColumn=this.measures.find(t=>t.axis==="x"),this.yAxisColumn=this.measures.find(t=>t.axis==="y"),this.groupKey=d.default.getGroupKey(this.responseData,this.keys),this.groupsData=this.groupKey?d.default.groupRowsByKey(this.responseData,this.groupKey.id):[this.responseData]};this.createListDatasets=()=>{this.hexColours=new b.ChartColours().getHexPallette(),this.datasets=this.groupsData.map((t,e)=>{const s=Array(this.labels.length);t.forEach(o=>{const n=this.yAxisColumn?.id||"",y=this.xAxisColumn?.id||"",x=o[y],u=o[n],C=u&&u.raw?Number(u.raw):0,D=this.labels.findIndex(v=>v===x.raw);D!==-1&&(s[D]=Number(C))});let r="";if(this.groupKey){const o=this.groupKey.id,n=t[0];r=n&&n[o]?`${n[o].raw}`:""}else r=this.yAxisColumn?.display||r;return{label:r,data:s,total:s.reduce((o,n)=>o+n,0),...this.setStyles(e)}})};this.createListLabels=()=>{this.labels=this.groupsData.flatMap(t=>{const e=this.xAxisColumn?.id||"";return t.map(s=>{const r=s[e];return r?`${r.raw}`:""})})}}}var S=l;0&&(module.exports={BarChart});
2
+ //# sourceMappingURL=BarChart.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/dpr/components/_charts/chart/bar/BarChart.ts"],
4
+ "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../../types/Metrics'\nimport {\n DashboardVisualisationType,\n DashboardVisualisationData,\n DashboardVisualisationDataSet,\n VisualisationDefinitionKey,\n} from '../../../_dashboards/dashboard-visualisation/types'\nimport { components } from '../../../../types/api'\nimport DatasetHelper from '../../../../utils/datasetHelper'\nimport Chart from '../Chart'\nimport BarChartSchemas from './validate'\nimport { BarDefinitionMeasure, BarDefinitionOptions, BarDefinitionType } from './types'\nimport { ChartColours } from '../ChartColours'\n\nclass BarChart extends Chart {\n private definition!: BarDefinitionType\n\n private measures!: BarDefinitionMeasure[]\n\n private keys!: VisualisationDefinitionKey[]\n\n private options: BarDefinitionOptions | undefined\n\n override responseData: DashboardDataResponse[] = []\n\n private isList = false\n\n override datasets: DashboardVisualisationDataSet[] = []\n\n private groupsData: DashboardDataResponse[][] = []\n\n private groupKey: BarDefinitionMeasure | undefined\n\n private xAxisColumn: BarDefinitionMeasure | undefined\n\n private yAxisColumn: BarDefinitionMeasure | undefined\n\n private barCount = 0\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = BarChartSchemas.BarSchema.parse(definition)\n this.initFromDefinitionData()\n\n return this\n }\n\n override withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n if (this.isList) this.initListData()\n return this\n }\n\n getCanvasHeight = () => {\n this.barCount = this.datasets.length * this.datasets[0].data.length\n return this.options?.horizontal ? this.barCount * 40 + 60 : 400\n }\n\n build = (): DashboardVisualisationData => {\n if (!this.isList) {\n this.getBarChartData()\n } else {\n this.getListBarChartData()\n }\n const height = this.getCanvasHeight()\n\n return {\n type: DashboardVisualisationType.BAR,\n options: {\n height,\n unit: this.unit,\n timeseries: false,\n },\n data: {\n labels: this.labels,\n datasets: this.datasets,\n config: this.config,\n },\n }\n }\n\n augmentDataset = (datasets: DashboardVisualisationDataSet[]) => {\n return datasets.map((set) => {\n return {\n ...set,\n borderWidth: [0, 0],\n datalabels: {\n align: 'center',\n anchor: 'bottom',\n },\n }\n })\n }\n\n setBespokeOptions = () => {\n let indexAxis = 'x'\n let scales\n\n if (this.options) {\n const { horizontal, xStacked, yStacked } = this.options\n indexAxis = horizontal ? 'y' : indexAxis\n if (xStacked || yStacked) {\n scales = {\n ...(xStacked && { x: { stacked: xStacked } }),\n ...(yStacked && { y: { stacked: yStacked } }),\n }\n }\n }\n\n return {\n ...this.config,\n indexAxis,\n ...(scales && { scales }),\n }\n }\n\n private getBarChartData = () => {\n this.createDatasets(this.measures, this.responseData)\n this.datasets = this.augmentDataset(this.datasets)\n this.config = this.setBespokeOptions()\n this.createLabels(this.measures)\n }\n\n private getListBarChartData = () => {\n this.createListLabels()\n this.createListDatasets()\n this.datasets = this.augmentDataset(this.datasets)\n this.config = this.setBespokeOptions()\n }\n\n private initFromDefinitionData = () => {\n this.measures = this.definition.columns.measures\n this.options = this.definition.options\n this.keys = this.definition.columns.keys || []\n this.isList = !!this.measures.find((col) => col.axis)\n this.initUnit(this.measures)\n\n if (!this.isList) this.getLabelId(this.keys)\n }\n\n private initListData = () => {\n this.xAxisColumn = this.measures.find((col) => col.axis === 'x')\n this.yAxisColumn = this.measures.find((col) => col.axis === 'y')\n this.groupKey = <BarDefinitionMeasure>(\n DatasetHelper.getGroupKey(\n this.responseData,\n <Array<components['schemas']['DashboardVisualisationColumnDefinition']>>this.keys,\n )\n )\n this.groupsData = this.groupKey\n ? DatasetHelper.groupRowsByKey(this.responseData, this.groupKey.id)\n : [this.responseData]\n }\n\n private createListDatasets = () => {\n this.hexColours = new ChartColours().getHexPallette()\n this.datasets = this.groupsData.map((groupData, groupIndex) => {\n const data = Array(this.labels.length)\n groupData.forEach((row) => {\n // Validation will ensure these columns exist\n const yId = this.yAxisColumn?.id || ''\n const xId = this.xAxisColumn?.id || ''\n\n const labelField = row[xId]\n const valueField = row[yId]\n\n const raw = valueField && valueField.raw ? Number(valueField.raw) : 0\n const dataIndex = this.labels.findIndex((l) => l === labelField.raw)\n if (dataIndex !== -1) {\n data[dataIndex] = Number(raw)\n }\n })\n\n let label = ''\n if (this.groupKey) {\n const groupKeyId = this.groupKey.id\n const groupRow = groupData[0]\n label = groupRow && groupRow[groupKeyId] ? `${groupRow[groupKeyId].raw}` : ''\n } else {\n label = this.yAxisColumn?.display || label\n }\n\n return {\n label,\n data,\n total: data.reduce((acc: number, val: number) => acc + val, 0),\n ...this.setStyles(groupIndex),\n }\n })\n }\n\n private createListLabels = () => {\n this.labels = this.groupsData.flatMap((gd) => {\n const id = this.xAxisColumn?.id || ''\n return gd.map((row) => {\n const field = row[id]\n return field ? `${field.raw}` : ''\n })\n })\n }\n}\n\nexport { BarChart }\nexport default BarChart\n"],
5
+ "mappings": "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",
6
+ "names": ["BarChart_exports", "__export", "BarChart", "BarChart_default", "__toCommonJS", "import_types", "import_datasetHelper", "import_Chart", "import_validate", "import_ChartColours", "Chart", "definition", "BarChartSchemas", "responseData", "height", "datasets", "set", "indexAxis", "scales", "horizontal", "xStacked", "yStacked", "col", "DatasetHelper", "groupData", "groupIndex", "data", "row", "yId", "xId", "labelField", "valueField", "raw", "dataIndex", "l", "label", "groupKeyId", "groupRow", "acc", "val", "gd", "id", "field"]
7
+ }
@@ -0,0 +1,204 @@
1
+ /* eslint-disable prefer-destructuring */
2
+ import { DashboardDataResponse } from '../../../../types/Metrics'
3
+ import {
4
+ DashboardVisualisationType,
5
+ DashboardVisualisationData,
6
+ DashboardVisualisationDataSet,
7
+ VisualisationDefinitionKey,
8
+ } from '../../../_dashboards/dashboard-visualisation/types'
9
+ import { components } from '../../../../types/api'
10
+ import DatasetHelper from '../../../../utils/datasetHelper'
11
+ import Chart from '../Chart'
12
+ import BarChartSchemas from './validate'
13
+ import { BarDefinitionMeasure, BarDefinitionOptions, BarDefinitionType } from './types'
14
+ import { ChartColours } from '../ChartColours'
15
+
16
+ class BarChart extends Chart {
17
+ private definition!: BarDefinitionType
18
+
19
+ private measures!: BarDefinitionMeasure[]
20
+
21
+ private keys!: VisualisationDefinitionKey[]
22
+
23
+ private options: BarDefinitionOptions | undefined
24
+
25
+ override responseData: DashboardDataResponse[] = []
26
+
27
+ private isList = false
28
+
29
+ override datasets: DashboardVisualisationDataSet[] = []
30
+
31
+ private groupsData: DashboardDataResponse[][] = []
32
+
33
+ private groupKey: BarDefinitionMeasure | undefined
34
+
35
+ private xAxisColumn: BarDefinitionMeasure | undefined
36
+
37
+ private yAxisColumn: BarDefinitionMeasure | undefined
38
+
39
+ private barCount = 0
40
+
41
+ withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {
42
+ this.definition = BarChartSchemas.BarSchema.parse(definition)
43
+ this.initFromDefinitionData()
44
+
45
+ return this
46
+ }
47
+
48
+ override withData = (responseData: DashboardDataResponse[]) => {
49
+ this.responseData = responseData
50
+ if (this.isList) this.initListData()
51
+ return this
52
+ }
53
+
54
+ getCanvasHeight = () => {
55
+ this.barCount = this.datasets.length * this.datasets[0].data.length
56
+ return this.options?.horizontal ? this.barCount * 40 + 60 : 400
57
+ }
58
+
59
+ build = (): DashboardVisualisationData => {
60
+ if (!this.isList) {
61
+ this.getBarChartData()
62
+ } else {
63
+ this.getListBarChartData()
64
+ }
65
+ const height = this.getCanvasHeight()
66
+
67
+ return {
68
+ type: DashboardVisualisationType.BAR,
69
+ options: {
70
+ height,
71
+ unit: this.unit,
72
+ timeseries: false,
73
+ },
74
+ data: {
75
+ labels: this.labels,
76
+ datasets: this.datasets,
77
+ config: this.config,
78
+ },
79
+ }
80
+ }
81
+
82
+ augmentDataset = (datasets: DashboardVisualisationDataSet[]) => {
83
+ return datasets.map((set) => {
84
+ return {
85
+ ...set,
86
+ borderWidth: [0, 0],
87
+ datalabels: {
88
+ align: 'center',
89
+ anchor: 'bottom',
90
+ },
91
+ }
92
+ })
93
+ }
94
+
95
+ setBespokeOptions = () => {
96
+ let indexAxis = 'x'
97
+ let scales
98
+
99
+ if (this.options) {
100
+ const { horizontal, xStacked, yStacked } = this.options
101
+ indexAxis = horizontal ? 'y' : indexAxis
102
+ if (xStacked || yStacked) {
103
+ scales = {
104
+ ...(xStacked && { x: { stacked: xStacked } }),
105
+ ...(yStacked && { y: { stacked: yStacked } }),
106
+ }
107
+ }
108
+ }
109
+
110
+ return {
111
+ ...this.config,
112
+ indexAxis,
113
+ ...(scales && { scales }),
114
+ }
115
+ }
116
+
117
+ private getBarChartData = () => {
118
+ this.createDatasets(this.measures, this.responseData)
119
+ this.datasets = this.augmentDataset(this.datasets)
120
+ this.config = this.setBespokeOptions()
121
+ this.createLabels(this.measures)
122
+ }
123
+
124
+ private getListBarChartData = () => {
125
+ this.createListLabels()
126
+ this.createListDatasets()
127
+ this.datasets = this.augmentDataset(this.datasets)
128
+ this.config = this.setBespokeOptions()
129
+ }
130
+
131
+ private initFromDefinitionData = () => {
132
+ this.measures = this.definition.columns.measures
133
+ this.options = this.definition.options
134
+ this.keys = this.definition.columns.keys || []
135
+ this.isList = !!this.measures.find((col) => col.axis)
136
+ this.initUnit(this.measures)
137
+
138
+ if (!this.isList) this.getLabelId(this.keys)
139
+ }
140
+
141
+ private initListData = () => {
142
+ this.xAxisColumn = this.measures.find((col) => col.axis === 'x')
143
+ this.yAxisColumn = this.measures.find((col) => col.axis === 'y')
144
+ this.groupKey = <BarDefinitionMeasure>(
145
+ DatasetHelper.getGroupKey(
146
+ this.responseData,
147
+ <Array<components['schemas']['DashboardVisualisationColumnDefinition']>>this.keys,
148
+ )
149
+ )
150
+ this.groupsData = this.groupKey
151
+ ? DatasetHelper.groupRowsByKey(this.responseData, this.groupKey.id)
152
+ : [this.responseData]
153
+ }
154
+
155
+ private createListDatasets = () => {
156
+ this.hexColours = new ChartColours().getHexPallette()
157
+ this.datasets = this.groupsData.map((groupData, groupIndex) => {
158
+ const data = Array(this.labels.length)
159
+ groupData.forEach((row) => {
160
+ // Validation will ensure these columns exist
161
+ const yId = this.yAxisColumn?.id || ''
162
+ const xId = this.xAxisColumn?.id || ''
163
+
164
+ const labelField = row[xId]
165
+ const valueField = row[yId]
166
+
167
+ const raw = valueField && valueField.raw ? Number(valueField.raw) : 0
168
+ const dataIndex = this.labels.findIndex((l) => l === labelField.raw)
169
+ if (dataIndex !== -1) {
170
+ data[dataIndex] = Number(raw)
171
+ }
172
+ })
173
+
174
+ let label = ''
175
+ if (this.groupKey) {
176
+ const groupKeyId = this.groupKey.id
177
+ const groupRow = groupData[0]
178
+ label = groupRow && groupRow[groupKeyId] ? `${groupRow[groupKeyId].raw}` : ''
179
+ } else {
180
+ label = this.yAxisColumn?.display || label
181
+ }
182
+
183
+ return {
184
+ label,
185
+ data,
186
+ total: data.reduce((acc: number, val: number) => acc + val, 0),
187
+ ...this.setStyles(groupIndex),
188
+ }
189
+ })
190
+ }
191
+
192
+ private createListLabels = () => {
193
+ this.labels = this.groupsData.flatMap((gd) => {
194
+ const id = this.xAxisColumn?.id || ''
195
+ return gd.map((row) => {
196
+ const field = row[id]
197
+ return field ? `${field.raw}` : ''
198
+ })
199
+ })
200
+ }
201
+ }
202
+
203
+ export { BarChart }
204
+ export default BarChart
@@ -16,49 +16,8 @@ class BarChartVisualisation extends ChartVisualisation {
16
16
 
17
17
  initSettings() {
18
18
  return {
19
- options: this.setOptions(),
20
19
  toolTipOptions: this.setToolTipOptions(),
21
20
  datalabels: this.setDataLabels(),
22
- styling: this.setDatasetStyling(),
23
- }
24
- }
25
-
26
- setDatasetStyling() {
27
- const pallette = this.getColourPallette()
28
- return pallette.map((colour) => {
29
- return {
30
- borderColor: colour.hex,
31
- ...this.setBackgroundColour(colour.hex),
32
- datalabels: {
33
- align: 'center',
34
- anchor: 'center',
35
- },
36
- }
37
- })
38
- }
39
-
40
- setBackgroundColour(colour) {
41
- const lastIndex = this.chartParams.labels.length - 1
42
- const backgroundColors = []
43
- const borderWidths = []
44
- const borderColors = []
45
-
46
- this.chartParams.labels.forEach((label, i) => {
47
- if ((this.partialEnd && i === lastIndex) || (this.partialStart && i === 0)) {
48
- backgroundColors.push(colour)
49
- borderWidths.push(3)
50
- borderColors.push('#b1b4b6')
51
- } else {
52
- backgroundColors.push(colour)
53
- borderWidths.push(0)
54
- borderColors.push(colour)
55
- }
56
- })
57
-
58
- return {
59
- backgroundColor: backgroundColors,
60
- borderWidth: borderWidths,
61
- borderColor: borderColors,
62
21
  }
63
22
  }
64
23
 
@@ -83,23 +42,6 @@ class BarChartVisualisation extends ChartVisualisation {
83
42
  }
84
43
  }
85
44
 
86
- setOptions() {
87
- const { indexAxis, stacked } = this.chartParams
88
- return {
89
- indexAxis: indexAxis || 'x',
90
- ...(stacked && {
91
- scales: {
92
- x: {
93
- stacked: true,
94
- },
95
- y: {
96
- stacked: true,
97
- },
98
- },
99
- }),
100
- }
101
- }
102
-
103
45
  setDataLabels() {
104
46
  return {
105
47
  color: '#FFF',
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var m=(r,e,o,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of f(e))!h.call(r,a)&&a!==o&&i(r,a,{get:()=>e[a],enumerable:!(t=p(e,a))||t.enumerable});return r};var n=r=>m(i({},"__esModule",{value:!0}),r);var B={};module.exports=n(B);
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/dpr/components/_charts/chart/bar/types.ts"],
4
+ "sourcesContent": ["import z from 'zod'\nimport BarChartSchemas from './validate'\n\nexport type BarDefinitionType = z.infer<typeof BarChartSchemas.BarSchema>\nexport type BarDefinitionMeasure = z.infer<typeof BarChartSchemas.BarMeasureShema>\nexport type BarDefinitionOptions = z.infer<typeof BarChartSchemas.BarOptionsSchema>\n"],
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["types_exports", "__toCommonJS"]
7
+ }
@@ -0,0 +1,6 @@
1
+ import z from 'zod'
2
+ import BarChartSchemas from './validate'
3
+
4
+ export type BarDefinitionType = z.infer<typeof BarChartSchemas.BarSchema>
5
+ export type BarDefinitionMeasure = z.infer<typeof BarChartSchemas.BarMeasureShema>
6
+ export type BarDefinitionOptions = z.infer<typeof BarChartSchemas.BarOptionsSchema>
@@ -0,0 +1,2 @@
1
+ "use strict";var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var x=(a,i)=>{for(var t in i)r(a,t,{get:i[t],enumerable:!0})},p=(a,i,t,o)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of u(i))!c.call(a,n)&&n!==t&&r(a,n,{get:()=>i[n],enumerable:!(o=f(i,n))||o.enumerable});return a};var h=a=>p(r({},"__esModule",{value:!0}),a);var S={};x(S,{default:()=>y});module.exports=h(S);var e=require("zod"),s=require("../../../_dashboards/dashboard-visualisation/Validate");const l=e.z.object({id:e.z.string(),display:e.z.string().optional(),unit:e.z.enum(["NUMBER","PERCENTAGE"]).optional(),axis:e.z.enum(["x","y"]).optional()}),d=e.z.object({showLatest:e.z.boolean().default(!0),horizontal:e.z.boolean().default(!1),xStacked:e.z.boolean().default(!1),yStacked:e.z.boolean().default(!1)}),m=e.z.object({...s.DashboardVisualisationSchema.shape,type:e.z.literal("bar"),display:e.z.string(),options:e.z.object(d.shape).optional(),columns:e.z.object({...s.DashboardColumns.shape,measures:e.z.array(l).refine(a=>{const i=a.find(n=>n.axis==="x"),t=a.find(n=>n.axis==="y");let o=!0;return(i!==void 0&&!t||t!==void 0&&!i)&&(o=!1),o},{error:"X and Y axis must be defined in measure"}).refine(a=>{const i=a.find(n=>n.axis==="x"),t=a.find(n=>n.axis==="y");let o=!0;return i!==void 0&&t!==void 0&&a.length>2&&(o=!1),o},{error:"Measure must contain only 2 items when axis is specified"})})}),b={BarSchema:m,BarMeasureShema:l,BarOptionsSchema:d};var y=b;
2
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/dpr/components/_charts/chart/bar/validate.ts"],
4
+ "sourcesContent": ["import { z } from 'zod'\nimport { DashboardVisualisationSchema, DashboardColumns } from '../../../_dashboards/dashboard-visualisation/Validate'\n\nconst BarMeasureShema = z.object({\n id: z.string(),\n display: z.string().optional(),\n unit: z.enum(['NUMBER', 'PERCENTAGE']).optional(),\n axis: z.enum(['x', 'y']).optional(),\n})\n\nconst BarOptionsSchema = z.object({\n showLatest: z.boolean().default(true),\n horizontal: z.boolean().default(false),\n xStacked: z.boolean().default(false),\n yStacked: z.boolean().default(false),\n})\n\nconst BarSchema = z.object({\n ...DashboardVisualisationSchema.shape,\n type: z.literal('bar'),\n display: z.string(),\n options: z.object(BarOptionsSchema.shape).optional(),\n columns: z.object({\n ...DashboardColumns.shape,\n measures: z\n .array(BarMeasureShema)\n .refine(\n (measures) => {\n const xAxis = measures.find((m) => m.axis === 'x')\n const yAxis = measures.find((m) => m.axis === 'y')\n\n let valid = true\n if ((xAxis !== undefined && !yAxis) || (yAxis !== undefined && !xAxis)) {\n valid = false\n }\n return valid\n },\n { error: 'X and Y axis must be defined in measure' },\n )\n .refine(\n (measures) => {\n const xAxis = measures.find((m) => m.axis === 'x')\n const yAxis = measures.find((m) => m.axis === 'y')\n let valid = true\n if (xAxis !== undefined && yAxis !== undefined && measures.length > 2) valid = false\n return valid\n },\n { error: 'Measure must contain only 2 items when axis is specified' },\n ),\n }),\n})\n\nconst BarChartSchemas = {\n BarSchema,\n BarMeasureShema,\n BarOptionsSchema,\n}\n\nexport default BarChartSchemas\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAkB,eAClBC,EAA+D,iEAE/D,MAAMC,EAAkB,IAAE,OAAO,CAC/B,GAAI,IAAE,OAAO,EACb,QAAS,IAAE,OAAO,EAAE,SAAS,EAC7B,KAAM,IAAE,KAAK,CAAC,SAAU,YAAY,CAAC,EAAE,SAAS,EAChD,KAAM,IAAE,KAAK,CAAC,IAAK,GAAG,CAAC,EAAE,SAAS,CACpC,CAAC,EAEKC,EAAmB,IAAE,OAAO,CAChC,WAAY,IAAE,QAAQ,EAAE,QAAQ,EAAI,EACpC,WAAY,IAAE,QAAQ,EAAE,QAAQ,EAAK,EACrC,SAAU,IAAE,QAAQ,EAAE,QAAQ,EAAK,EACnC,SAAU,IAAE,QAAQ,EAAE,QAAQ,EAAK,CACrC,CAAC,EAEKC,EAAY,IAAE,OAAO,CACzB,GAAG,+BAA6B,MAChC,KAAM,IAAE,QAAQ,KAAK,EACrB,QAAS,IAAE,OAAO,EAClB,QAAS,IAAE,OAAOD,EAAiB,KAAK,EAAE,SAAS,EACnD,QAAS,IAAE,OAAO,CAChB,GAAG,mBAAiB,MACpB,SAAU,IACP,MAAMD,CAAe,EACrB,OACEG,GAAa,CACZ,MAAMC,EAAQD,EAAS,KAAME,GAAMA,EAAE,OAAS,GAAG,EAC3CC,EAAQH,EAAS,KAAME,GAAMA,EAAE,OAAS,GAAG,EAEjD,IAAIE,EAAQ,GACZ,OAAKH,IAAU,QAAa,CAACE,GAAWA,IAAU,QAAa,CAACF,KAC9DG,EAAQ,IAEHA,CACT,EACA,CAAE,MAAO,yCAA0C,CACrD,EACC,OACEJ,GAAa,CACZ,MAAMC,EAAQD,EAAS,KAAME,GAAMA,EAAE,OAAS,GAAG,EAC3CC,EAAQH,EAAS,KAAME,GAAMA,EAAE,OAAS,GAAG,EACjD,IAAIE,EAAQ,GACZ,OAAIH,IAAU,QAAaE,IAAU,QAAaH,EAAS,OAAS,IAAGI,EAAQ,IACxEA,CACT,EACA,CAAE,MAAO,0DAA2D,CACtE,CACJ,CAAC,CACH,CAAC,EAEKC,EAAkB,CACtB,UAAAN,EACA,gBAAAF,EACA,iBAAAC,CACF,EAEA,IAAOL,EAAQY",
6
+ "names": ["validate_exports", "__export", "validate_default", "__toCommonJS", "import_zod", "import_Validate", "BarMeasureShema", "BarOptionsSchema", "BarSchema", "measures", "xAxis", "m", "yAxis", "valid", "BarChartSchemas"]
7
+ }