@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.25.0 → 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 (144) 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/dprReportingClient.js +1 -1
  44. package/dpr/data/dprReportingClient.js.map +2 -2
  45. package/dpr/data/dprReportingClient.ts +1 -1
  46. package/dpr/data/missingReportClient.js +1 -1
  47. package/dpr/data/missingReportClient.js.map +1 -1
  48. package/dpr/data/productCollectionClient.js +1 -1
  49. package/dpr/data/productCollectionClient.js.map +1 -1
  50. package/dpr/data/reportDataStore.js +1 -1
  51. package/dpr/data/reportDataStore.js.map +1 -1
  52. package/dpr/data/reportingClient.js +1 -1
  53. package/dpr/data/reportingClient.js.map +1 -1
  54. package/dpr/data/restClient.js +1 -1
  55. package/dpr/data/restClient.js.map +1 -1
  56. package/dpr/routes/journeys/download-report/controller.js +1 -1
  57. package/dpr/routes/journeys/download-report/controller.js.map +1 -1
  58. package/dpr/routes/journeys/download-report/request-download/form/controller.js +1 -1
  59. package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +1 -1
  60. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +1 -1
  61. package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +1 -1
  62. package/dpr/routes/journeys/download-report/request-download/service.js +1 -1
  63. package/dpr/routes/journeys/download-report/request-download/service.js.map +1 -1
  64. package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
  65. package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
  66. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +1 -1
  67. package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +1 -1
  68. package/dpr/routes/journeys/my-reports/bookmarks/service.js +4 -4
  69. package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +2 -2
  70. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
  71. package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +1 -1
  72. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +1 -1
  73. package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +1 -1
  74. package/dpr/routes/journeys/my-reports/requested-reports/controller.js +1 -1
  75. package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +1 -1
  76. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +1 -1
  77. package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +1 -1
  78. package/dpr/routes/journeys/product-collection/selected/controller.js +1 -1
  79. package/dpr/routes/journeys/product-collection/selected/controller.js.map +1 -1
  80. package/dpr/routes/journeys/request-missing-report/form/controller.js +1 -1
  81. package/dpr/routes/journeys/request-missing-report/form/controller.js.map +1 -1
  82. package/dpr/routes/journeys/request-missing-report/submitted/controller.js +1 -1
  83. package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +1 -1
  84. package/dpr/routes/journeys/request-report/controller.js +1 -1
  85. package/dpr/routes/journeys/request-report/controller.js.map +1 -1
  86. package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
  87. package/dpr/routes/journeys/request-report/filters/controller.js.map +1 -1
  88. package/dpr/routes/journeys/request-report/status/controller.js +1 -1
  89. package/dpr/routes/journeys/request-report/status/controller.js.map +1 -1
  90. package/dpr/routes/journeys/view-report/async/controller.js +1 -1
  91. package/dpr/routes/journeys/view-report/async/controller.js.map +1 -1
  92. package/dpr/routes/journeys/view-report/async/dashboard/controller.js +1 -1
  93. package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +1 -1
  94. package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
  95. package/dpr/routes/journeys/view-report/async/report/controller.js.map +1 -1
  96. package/dpr/routes/journeys/view-report/controller.js +1 -1
  97. package/dpr/routes/journeys/view-report/controller.js.map +1 -1
  98. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js +1 -1
  99. package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +1 -1
  100. package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
  101. package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +1 -1
  102. package/dpr/routes/journeys/view-report/sync/report/controller.js +1 -1
  103. package/dpr/routes/journeys/view-report/sync/report/controller.js.map +1 -1
  104. package/dpr/services/defaultFilterValuesService.js +1 -1
  105. package/dpr/services/defaultFilterValuesService.js.map +1 -1
  106. package/dpr/services/featureFlagService.js +1 -1
  107. package/dpr/services/featureFlagService.js.map +1 -1
  108. package/dpr/services/missingReport/missingReportService.js +1 -1
  109. package/dpr/services/missingReport/missingReportService.js.map +1 -1
  110. package/dpr/services/productCollection/productCollectionService.js +1 -1
  111. package/dpr/services/productCollection/productCollectionService.js.map +1 -1
  112. package/dpr/services/productCollection/productCollectionStoreService.js +1 -1
  113. package/dpr/services/productCollection/productCollectionStoreService.js.map +1 -1
  114. package/dpr/services/reportStoreService.js +1 -1
  115. package/dpr/services/reportStoreService.js.map +1 -1
  116. package/dpr/types/DprUser.js +1 -1
  117. package/dpr/types/DprUser.js.map +1 -1
  118. package/dpr/types/ReportQuery.js +1 -1
  119. package/dpr/types/ReportQuery.js.map +1 -1
  120. package/dpr/types/express.d.js +1 -1
  121. package/dpr/types/express.d.js.map +4 -4
  122. package/dpr/types/express.d.ts +1 -1
  123. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +1 -1
  124. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
  125. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
  126. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +3 -3
  127. package/dpr/utils/DataTableBuilder/DataTableBuilder.test.ts +1 -0
  128. package/dpr/utils/DataTableBuilder/DataTableBuilder.ts +1 -1
  129. package/dpr/utils/DateMapper/DateMapper.js +1 -1
  130. package/dpr/utils/DateMapper/DateMapper.js.map +1 -1
  131. package/dpr/utils/ErrorHandler.js +1 -1
  132. package/dpr/utils/ErrorHandler.js.map +2 -2
  133. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
  134. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  135. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +1 -1
  136. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +1 -1
  137. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +1 -1
  138. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
  139. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +2 -2
  140. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
  141. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
  142. package/dpr/utils/UserStoreItemBuilder.js +1 -1
  143. package/dpr/utils/UserStoreItemBuilder.js.map +1 -1
  144. package/package.json +5 -4
package/dpr/all.scss CHANGED
@@ -785,6 +785,10 @@ ul.dpr-card-group__item__filters-list {
785
785
  .dpr-report-heading__title {
786
786
  flex: 1;
787
787
 
788
+ #dpr-report-name {
789
+ margin-bottom: govuk-spacing(2);
790
+ }
791
+
788
792
  .govuk-heading-l {
789
793
  margin-bottom: govuk-spacing(4);
790
794
  }
@@ -1377,35 +1381,6 @@ ul.dpr-card-group__item__filters-list {
1377
1381
  }
1378
1382
  }
1379
1383
  .dpr-save-defaults-action {
1380
- .dpr-button-link {
1381
- all: unset;
1382
- display: inline-block;
1383
- font-family: "GDS Transport", arial, sans-serif;
1384
- position: relative;
1385
- text-decoration: underline;
1386
- text-decoration-thickness: max(1px, .0625rem);
1387
- text-underline-offset: .1578em;
1388
- color: govuk-colour("blue");
1389
- font-size: 16px;
1390
- margin-right: govuk-spacing(2);
1391
- margin-bottom: 0px !important;
1392
-
1393
- &:hover {
1394
- all: unset;
1395
- display: inline-block;
1396
- font-family: "GDS Transport", arial, sans-serif;
1397
- position: relative;
1398
- cursor: pointer;
1399
- background-color: none;
1400
- color: govuk-colour("dark-blue");
1401
- text-decoration: underline;
1402
- text-decoration-thickness: max(3px, .1875rem);
1403
- text-underline-offset: .1578em;
1404
- font-size: 16px;
1405
- margin-right: govuk-spacing(2);
1406
- margin-bottom: 0px !important;
1407
- }
1408
- }
1409
1384
 
1410
1385
  .dpr-default-saved {
1411
1386
  color: govuk-colour("green");
@@ -1513,13 +1488,14 @@ ul.dpr-card-group__item__filters-list {
1513
1488
  }
1514
1489
 
1515
1490
  .dpr-selected-filters {
1516
- padding-bottom: govuk-spacing(0);
1491
+ padding-bottom: govuk-spacing(2);
1517
1492
  }
1518
1493
 
1519
1494
  .dpr-interactive-save-defaults-actions {
1520
1495
  padding: govuk-spacing(4);
1521
- padding-top: govuk-spacing(0);
1522
- background-color: govuk-colour('light-grey');
1496
+ background-color: white;
1497
+ border-top: solid 1px govuk-colour('mid-grey');
1498
+ border-bottom: solid 1px govuk-colour('mid-grey');
1523
1499
  }
1524
1500
 
1525
1501
  .dpr-interactive-filters-accordion {
@@ -1879,6 +1855,12 @@ ul.dpr-card-group__item__filters-list {
1879
1855
  background-color: govuk-colour("dark-blue")
1880
1856
  }
1881
1857
 
1858
+ @for $i from 1 through 50 {
1859
+ .dpr-chart-height-#{$i} {
1860
+ height: $i * 80px !important;
1861
+ }
1862
+ }
1863
+
1882
1864
  .dpr-chart {
1883
1865
  height: 400px;
1884
1866
  }
@@ -2051,7 +2033,7 @@ ul.dpr-card-group__item__filters-list {
2051
2033
  }
2052
2034
 
2053
2035
  .dpr-meta-data-details {
2054
- margin-bottom: govuk-spacing(3);
2036
+ margin-bottom: govuk-spacing(6);
2055
2037
 
2056
2038
  .govuk-details__text {
2057
2039
  padding-left: 0px;
@@ -2092,9 +2074,9 @@ ul.dpr-card-group__item__filters-list {
2092
2074
 
2093
2075
  .dpr-request-save-filters-container {
2094
2076
  padding: govuk-spacing(4);
2095
- padding-top: govuk-spacing(0);
2077
+ border-top: solid 1px govuk-colour('mid-grey');
2096
2078
  border-bottom: solid 1px govuk-colour('mid-grey');
2097
- background-color: govuk-colour("light-grey");
2079
+ background-color: white;
2098
2080
  }
2099
2081
 
2100
2082
  .dpr-async-request-filters__section--actions {
@@ -31,9 +31,9 @@
31
31
 
32
32
  .dpr-request-save-filters-container {
33
33
  padding: govuk-spacing(4);
34
- padding-top: govuk-spacing(0);
34
+ border-top: solid 1px govuk-colour('mid-grey');
35
35
  border-bottom: solid 1px govuk-colour('mid-grey');
36
- background-color: govuk-colour("light-grey");
36
+ background-color: white;
37
37
  }
38
38
 
39
39
  .dpr-async-request-filters__section--actions {
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  .dpr-meta-data-details {
37
- margin-bottom: govuk-spacing(3);
37
+ margin-bottom: govuk-spacing(6);
38
38
 
39
39
  .govuk-details__text {
40
40
  padding-left: 0px;
@@ -1,2 +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 x=(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 I=(e,a,t)=>(t=e!=null?C(f(e)):{},l(a||!e||!e.__esModule?i(t,"default",{value:e,enumerable:!0}):t,e)),R=e=>l(i({},"__esModule",{value:!0}),e);var V={};x(V,{Chart:()=>o,default:()=>M});module.exports=R(V);var h=require("./ChartColours"),u=I(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=u.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 h.ChartColours().getHexPallette(),this.datasets=t.map((r,s)=>{const d=this.createDatasetLabel(r),n=this.createDatasetValues(a,r),b=n.reduce((D,p)=>D+p,0);return{label:d,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%this.hexColours.length];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});
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 x=(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 I=(e,a,t)=>(t=e!=null?C(f(e)):{},l(a||!e||!e.__esModule?i(t,"default",{value:e,enumerable:!0}):t,e)),R=e=>l(i({},"__esModule",{value:!0}),e);var V={};x(V,{Chart:()=>o,default:()=>M});module.exports=R(V);var h=require("./ChartColours"),u=I(require("./chart-config"));class o{labels=[];labelId=void 0;datasets=[];unit;responseData=[];backgroundColor=[];borderWidth=[0,0];borderColor=[];hexColours=[];config=u.default;withData=a=>(this.responseData=a,this);initUnit=a=>{this.unit=a.find(t=>t.unit)?.unit};createDatasets=(a,t)=>{this.hexColours=new h.ChartColours().getHexPallette(),this.datasets=t.map((r,s)=>{const d=this.createDatasetLabel(r),n=this.createDatasetValues(a,r),b=n.reduce((D,p)=>D+p,0);return{label:d,data:n,total:b,...this.setStyles(s)}})};createDatasetLabel=a=>this.labelId&&a[this.labelId]?`${a[this.labelId].raw}`:"All";createDatasetValues=(a,t)=>a.map(r=>{const s=r.id;return t[s]&&t[s].raw?Number(t[s].raw):0});setStyles=a=>{const t=this.hexColours[a%this.hexColours.length];return{backgroundColor:t,borderColor:t}};createLabels=a=>{this.labels=a.map(t=>t.display||"")};getLabelId=a=>{if(a.length){const t=a.length-1;this.labelId=a[t]?.id}}}var M=o;0&&(module.exports={Chart});
2
2
  //# sourceMappingURL=Chart.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_charts/chart/Chart.ts"],
4
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 % this.hexColours.length]\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,EAAe,KAAK,WAAW,MAAM,EACpE,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",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAOA,IAAAK,EAA6B,0BAC7BC,EAAwB,6BAExB,MAAMJ,CAAM,CACV,OAAmB,CAAC,EAEZ,QAA8B,OAEtC,SAA4C,CAAC,EAE7C,KAEA,aAAwC,CAAC,EAEzC,gBAA8B,CAAC,EAE/B,YAAwB,CAAC,EAAG,CAAC,EAE7B,YAA0B,CAAC,EAE3B,WAAuB,CAAC,EAExB,OAAS,EAAAK,QAET,SAAYC,IACV,KAAK,aAAeA,EACb,MAGT,SAAYC,GAA2B,CACrC,KAAK,KAAOA,EAAS,KAAMC,GAAMA,EAAE,IAAI,GAAG,IAC5C,EAEA,eAAiB,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,EAEQ,mBAAsBD,GACrB,KAAK,SAAWA,EAAI,KAAK,OAAO,EAAI,GAAGA,EAAI,KAAK,OAAO,EAAE,GAAG,GAAK,MAGlE,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,UAAaP,GAAyB,CACpC,MAAMQ,EAAS,KAAK,WAAWR,EAAe,KAAK,WAAW,MAAM,EACpE,MAAO,CACL,gBAAiBQ,EACjB,YAAaA,CACf,CACF,EAEA,aAAgBX,GAA2B,CACzC,KAAK,OAASA,EAAS,IAAKY,GAAQA,EAAI,SAAW,EAAE,CACvD,EAEA,WAAcC,GAAuC,CACnD,GAAIA,EAAK,OAAQ,CACf,MAAMC,EAAYD,EAAK,OAAS,EAChC,KAAK,QAAUA,EAAKC,CAAS,GAAG,EAClC,CACF,CACF,CAGA,IAAOpB,EAAQD",
6
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
7
  }
@@ -1,2 +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});
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{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"}];getColourPallette=()=>this.pallette;getHexPallette=()=>this.pallette.map(e=>e.hex)}0&&(module.exports={ChartColours});
2
2
  //# sourceMappingURL=ChartColours.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_charts/chart/ChartColours.ts"],
4
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",
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,CAAa,CACxB,SAAW,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,kBAAoB,IACX,KAAK,SAGd,eAAiB,IACR,KAAK,SAAS,IAAKE,GAAMA,EAAE,GAAG,CAEzC",
6
6
  "names": ["ChartColours_exports", "__export", "ChartColours", "__toCommonJS", "p"]
7
7
  }
@@ -1,2 +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});
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{labels=[];labelId=void 0;datasets=[];unit;responseData=[];measures=[];keys=[];timeBlockData=[];groupKey;datasetCount=0;hexColours=[];config=p.default;partialDate;withData=e=>(this.responseData=e,this.initFromData(),this);initFromDefinition=e=>{this.measures=e.columns.measures,this.keys=e.columns.keys||[],this.unit=this.measures.find(i=>i.unit)?.unit};withPartialDate=e=>(this.partialDate=e,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};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})}};getLabels=()=>this.timeBlockData.map(e=>e[0].ts.raw)}var B=h;0&&(module.exports={TimeseriesChart});
2
2
  //# sourceMappingURL=ChartTimeseries.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/dpr/components/_charts/chart/ChartTimeseries.ts"],
4
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",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAOA,IAAAK,EAA0B,2CAG1BC,EAA6B,0BAC7BC,EAAwB,6BAGxB,MAAML,CAAgB,CACpB,OAAmB,CAAC,EAEpB,QAA8B,OAE9B,SAA4C,CAAC,EAE7C,KAEA,aAAwC,CAAC,EAEzC,SAAmC,CAAC,EAEpC,KAAqC,CAAC,EAEtC,cAA2C,CAAC,EAE5C,SAEA,aAAe,EAEf,WAAuB,CAAC,EAExB,OAAS,EAAAM,QAET,YAEA,SAAYC,IACV,KAAK,aAAeA,EACpB,KAAK,aAAa,EACX,MAGT,mBAAsBC,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,gBAAmBC,IACjB,KAAK,YAAcA,EACZ,MAGT,aAAe,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,cAAgB,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,EAEQ,UAAY,IACX,KAAK,cAAc,IAAKK,GAAuCA,EAAE,CAAC,EAAE,GAAM,GAAG,CAExF,CAGA,IAAOpB,EAAQD",
6
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
7
  }
@@ -1,2 +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});
1
+ "use strict";var v=Object.create;var n=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var K=(a,t)=>{for(var i in t)n(a,i,{get:t[i],enumerable:!0})},D=(a,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of L(t))!A.call(a,s)&&s!==i&&n(a,s,{get:()=>t[s],enumerable:!(r=B(t,s))||r.enumerable});return a};var u=(a,t,i)=>(i=a!=null?v(k(a)):{},D(t||!a||!a.__esModule?n(i,"default",{value:a,enumerable:!0}):i,a)),w=a=>D(n({},"__esModule",{value:!0}),a);var S={};K(S,{BarChart:()=>d,default:()=>V});module.exports=w(S);var m=require("../../../_dashboards/dashboard-visualisation/types"),p=u(require("../../../../utils/datasetHelper")),f=u(require("../Chart")),c=u(require("./validate")),g=require("../ChartColours");class d extends f.default{definition;measures;keys;options;responseData=[];isList=!1;datasets=[];groupsData=[];groupKey;xAxisColumn;yAxisColumn;barCount=0;withDefinition=t=>(this.definition=c.default.BarSchema.parse(t),this.initFromDefinitionData(),this);withData=t=>(this.responseData=t,this.isList&&this.initListData(),this);getCanvasHeight=()=>(this.barCount=this.datasets.length*this.datasets[0].data.length,this.options?.horizontal?this.barCount:5);build=()=>{this.isList?this.getListBarChartData():this.getBarChartData();const t=this.getCanvasHeight();return{type:m.DashboardVisualisationType.BAR,options:{height:t,unit:this.unit,timeseries:!1},data:{labels:this.labels,datasets:this.datasets,config:this.config}}};augmentDataset=t=>t.map(i=>({...i,borderWidth:[0,0],datalabels:{align:"center",anchor:"bottom"}}));setBespokeOptions=()=>{let t="x",i;if(this.options){const{horizontal:r,xStacked:s,yStacked:e}=this.options;t=r?"y":t,(s||e)&&(i={...s&&{x:{stacked:s}},...e&&{y:{stacked:e}}})}return{...this.config,indexAxis:t,...i&&{scales:i}}};getBarChartData=()=>{this.createDatasets(this.measures,this.responseData),this.datasets=this.augmentDataset(this.datasets),this.config=this.setBespokeOptions(),this.createLabels(this.measures)};getListBarChartData=()=>{this.createListLabels(),this.createListDatasets(),this.datasets=this.augmentDataset(this.datasets),this.config=this.setBespokeOptions()};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)};initListData=()=>{this.xAxisColumn=this.measures.find(t=>t.axis==="x"),this.yAxisColumn=this.measures.find(t=>t.axis==="y"),this.groupKey=p.default.getGroupKey(this.responseData,this.keys),this.groupsData=this.groupKey?p.default.groupRowsByKey(this.responseData,this.groupKey.id):[this.responseData]};createListDatasets=()=>{this.hexColours=new g.ChartColours().getHexPallette(),this.datasets=this.groupsData.map((t,i)=>{const r=Array(this.labels.length);t.forEach(e=>{const o=this.yAxisColumn?.id||"",b=this.xAxisColumn?.id||"",y=e[b],h=e[o],x=h&&h.raw?Number(h.raw):0,l=this.labels.findIndex(C=>C===y.raw);l!==-1&&(r[l]=Number(x))});let s="";if(this.groupKey){const e=this.groupKey.id,o=t[0];s=o&&o[e]?`${o[e].raw}`:""}else s=this.yAxisColumn?.display||s;return{label:s,data:r,total:r.reduce((e,o)=>e+o,0),...this.setStyles(i)}})};createListLabels=()=>{this.labels=this.groupsData.flatMap(t=>{const i=this.xAxisColumn?.id||"";return t.map(r=>{const s=r[i];return s?`${s.raw}`:""})})}}var V=d;0&&(module.exports={BarChart});
2
2
  //# sourceMappingURL=BarChart.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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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",
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 : 5\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
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
7
  }
@@ -53,7 +53,7 @@ class BarChart extends Chart {
53
53
 
54
54
  getCanvasHeight = () => {
55
55
  this.barCount = this.datasets.length * this.datasets[0].data.length
56
- return this.options?.horizontal ? this.barCount * 40 + 60 : 400
56
+ return this.options?.horizontal ? this.barCount : 5
57
57
  }
58
58
 
59
59
  build = (): DashboardVisualisationData => {
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var C=(i,t)=>{for(var s in t)r(i,s,{get:t[s],enumerable:!0})},h=(i,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of B(t))!c.call(i,e)&&e!==s&&r(i,e,{get:()=>t[e],enumerable:!(a=f(t,e))||a.enumerable});return i};var o=(i,t,s)=>(s=i!=null?u(D(i)):{},h(t||!i||!i.__esModule?r(s,"default",{value:i,enumerable:!0}):s,i)),b=i=>h(r({},"__esModule",{value:!0}),i);var y={};C(y,{BarTimeseriesChart:()=>n,default:()=>T});module.exports=b(y);var m=require("../../../_dashboards/dashboard-visualisation/types"),d=o(require("./validate")),p=o(require("../ChartTimeseries")),l=o(require("../bar/BarChart"));class n extends p.default{constructor(){super(...arguments);this.BarChartBuilder=new l.default;this.withDefinition=s=>(this.definition=d.default.BarTimeseriesSchema.parse(s),this.initFromDefinition(this.definition),this);this.build=()=>(this.buildDatasets(),this.setStyles(),this.datasets=this.BarChartBuilder.augmentDataset(this.datasets),this.BarChartBuilder.setBespokeOptions(),{type:m.DashboardVisualisationType.BAR,options:{unit:this.unit,timeseries:!0},data:{labels:this.labels,datasets:this.datasets,config:this.config}});this.setStyles=()=>{this.datasets=this.datasets.map((s,a)=>{const e=this.hexColours[a];return{...s,backgroundColor:e,borderColor:e}})}}}var T=n;0&&(module.exports={BarTimeseriesChart});
1
+ "use strict";var u=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var C=(i,t)=>{for(var s in t)r(i,s,{get:t[s],enumerable:!0})},h=(i,t,s,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of B(t))!c.call(i,a)&&a!==s&&r(i,a,{get:()=>t[a],enumerable:!(e=f(t,a))||e.enumerable});return i};var o=(i,t,s)=>(s=i!=null?u(D(i)):{},h(t||!i||!i.__esModule?r(s,"default",{value:i,enumerable:!0}):s,i)),b=i=>h(r({},"__esModule",{value:!0}),i);var y={};C(y,{BarTimeseriesChart:()=>n,default:()=>T});module.exports=b(y);var m=require("../../../_dashboards/dashboard-visualisation/types"),d=o(require("./validate")),p=o(require("../ChartTimeseries")),l=o(require("../bar/BarChart"));class n extends p.default{definition;BarChartBuilder=new l.default;withDefinition=t=>(this.definition=d.default.BarTimeseriesSchema.parse(t),this.initFromDefinition(this.definition),this);build=()=>(this.buildDatasets(),this.setStyles(),this.datasets=this.BarChartBuilder.augmentDataset(this.datasets),this.BarChartBuilder.setBespokeOptions(),{type:m.DashboardVisualisationType.BAR,options:{unit:this.unit,timeseries:!0},data:{labels:this.labels,datasets:this.datasets,config:this.config}});setStyles=()=>{this.datasets=this.datasets.map((t,s)=>{const e=this.hexColours[s];return{...t,backgroundColor:e,borderColor:e}})}}var T=n;0&&(module.exports={BarTimeseriesChart});
2
2
  //# sourceMappingURL=BarTimeseriesChart.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.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 { BarTimeseriesDefinitionType } from './types'\nimport BarTimeseriesChartSchemas from './validate'\nimport TimeseriesChart from '../ChartTimeseries'\nimport BarChart from '../bar/BarChart'\n\nclass BarTimeseriesChart extends TimeseriesChart {\n private definition!: BarTimeseriesDefinitionType\n\n private BarChartBuilder: BarChart = new BarChart()\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = BarTimeseriesChartSchemas.BarTimeseriesSchema.parse(definition)\n this.initFromDefinition(this.definition)\n\n return this\n }\n\n build = (): DashboardVisualisationData => {\n this.buildDatasets()\n this.setStyles()\n this.datasets = this.BarChartBuilder.augmentDataset(this.datasets)\n this.BarChartBuilder.setBespokeOptions()\n\n return {\n type: DashboardVisualisationType.BAR,\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 },\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 { BarTimeseriesChart }\nexport default BarTimeseriesChart\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,wBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAGO,8DAGPC,EAAsC,yBACtCC,EAA4B,iCAC5BC,EAAqB,8BAErB,MAAMN,UAA2B,EAAAO,OAAgB,CAAjD,kCAGE,KAAQ,gBAA4B,IAAI,EAAAC,QAExC,oBAAkBC,IAChB,KAAK,WAAa,EAAAC,QAA0B,oBAAoB,MAAMD,CAAU,EAChF,KAAK,mBAAmB,KAAK,UAAU,EAEhC,MAGT,WAAQ,KACN,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAW,KAAK,gBAAgB,eAAe,KAAK,QAAQ,EACjE,KAAK,gBAAgB,kBAAkB,EAEhC,CACL,KAAM,6BAA2B,IACjC,QAAS,CACP,KAAM,KAAK,KACX,WAAY,EACd,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,MACf,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,wBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAGO,8DAGPC,EAAsC,yBACtCC,EAA4B,iCAC5BC,EAAqB,8BAErB,MAAMN,UAA2B,EAAAO,OAAgB,CACvC,WAEA,gBAA4B,IAAI,EAAAC,QAExC,eAAkBC,IAChB,KAAK,WAAa,EAAAC,QAA0B,oBAAoB,MAAMD,CAAU,EAChF,KAAK,mBAAmB,KAAK,UAAU,EAEhC,MAGT,MAAQ,KACN,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAW,KAAK,gBAAgB,eAAe,KAAK,QAAQ,EACjE,KAAK,gBAAgB,kBAAkB,EAEhC,CACL,KAAM,6BAA2B,IACjC,QAAS,CACP,KAAM,KAAK,KACX,WAAY,EACd,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,MACf,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": ["BarTimeseriesChart_exports", "__export", "BarTimeseriesChart", "BarTimeseriesChart_default", "__toCommonJS", "import_types", "import_validate", "import_ChartTimeseries", "import_BarChart", "TimeseriesChart", "BarChart", "definition", "BarTimeseriesChartSchemas", "set", "datasetIndex", "colour"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.create;var h=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var g=(o,t)=>{for(var e in t)h(o,e,{get:t[e],enumerable:!0})},l=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of b(t))!d.call(o,i)&&i!==e&&h(o,i,{get:()=>t[i],enumerable:!(s=f(t,i))||s.enumerable});return o};var B=(o,t,e)=>(e=o!=null?m(C(o)):{},l(t||!o||!o.__esModule?h(e,"default",{value:o,enumerable:!0}):e,o)),D=o=>l(h({},"__esModule",{value:!0}),o);var y={};g(y,{Buckets:()=>c,default:()=>v});module.exports=D(y);var p=require("with-alpha-hex"),k=B(require("./validate"));class c{constructor(t,e,s,i,r){this.baseColour="#1d70b8";this.ragColours=["#00703c","#ffdd00","#d4351c"];this.buckets=[];this.useRagColour=!1;this.bucketCount=0;this.onlyBucketColoursDefined=!1;this.autoBucketing=!1;this.hasRagScore=!1;this.initFromOptions=t=>{this.options=k.default.parse(t.options),this.baseColour=this.options?.baseColour||this.baseColour,this.useRagColour=this.options?.useRagColour||!1,this.onlyBucketColoursDefined=this.options&&this.options.buckets?this.options?.buckets?.every(e=>!e.max&&!e.min&&e.hexColour!==void 0):!1};this.initBuckets=()=>{const{buckets:t}=this.options;this.setBucketCount(),this.initBucketColours(),t&&t.length?this.hasRagScore?this.onlyBucketColoursDefined&&(this.buckets=t):!this.hasRagScore&&this.onlyBucketColoursDefined&&this.autoBucketing?this.initAutomaticThresholdBucket():this.initCustomThresholdBuckets():!this.hasRagScore&&this.autoBucketing&&this.initAutomaticThresholdBucket()};this.initCustomThresholdBuckets=()=>{this.buckets=this.options.buckets?this.options.buckets.map((t,e)=>({...this.buckets[e],...t})):[]};this.initAutomaticThresholdBucket=()=>{const{min:t,max:e,bucketSize:s}=this.setAutomaticThresholdSize();let i=0;this.buckets=this.buckets.map((r,u)=>{let n=t;return u!==0&&(n=i+1),i=s*(u+1)+t,u===this.buckets.length-1&&(i=e),{hexColour:this.options?.buckets&&this.options?.buckets.length?this.options.buckets[u]?.hexColour:r.hexColour,min:n,max:i}})};this.initBucketColours=()=>{if(this.useRagColour&&this.bucketCount===3)this.buckets=Array.from(new Array(this.bucketCount)).map((t,e)=>({hexColour:this.ragColours[e]}));else{const t=1/this.bucketCount;this.buckets=Array.from(new Array(this.bucketCount)).map((e,s)=>{const i=t*(s+1);return{hexColour:(0,p.withAlphaHex)(this.baseColour,i)}})}};this.setAutomaticThresholdSize=()=>{const t=this.responseData.map(r=>Number(r[this.valueKey].raw)),e=Math.min(...t),s=Math.max(...t),i=Math.ceil((s-e)/this.bucketCount);return{min:e,max:s,bucketSize:i}};this.setBucketCount=()=>{const{buckets:t}=this.options;if(this.hasRagScore)if(this.useRagColour)this.bucketCount=3;else{const e=this.responseData.reduce((s,i)=>(i[this.valueKey].rag!==void 0&&s.push(i[this.valueKey].rag),s),[]);this.bucketCount=Math.max(...e)+1}else t&&t.length?this.bucketCount=t.length:this.bucketCount=3};this.getBucketForValue=(t,e)=>{let s="",i=0;return e!==void 0?{colour:this.buckets[e].hexColour||s,score:e}:(this.buckets.forEach((r,u)=>{const{min:n,max:a}=r;!n&&a&&t<=a&&(s=r.hexColour||s,i=u),n&&t>=n&&a&&t<=a&&(s=r.hexColour||s,i=u),n&&!a&&t>=n&&(s=r.hexColour||s,i=u)}),{colour:s,score:i})};this.getBuckets=()=>this.buckets;this.responseData=t,this.initFromOptions(e),this.valueKey=s,this.hasRagScore=t[0][this.valueKey].rag!==void 0,this.autoBucketing=!!i,r&&(this.ragColours=r),this.initBuckets()}}var v=c;0&&(module.exports={Buckets});
1
+ "use strict";var m=Object.create;var h=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var C=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var g=(o,t)=>{for(var e in t)h(o,e,{get:t[e],enumerable:!0})},l=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of b(t))!d.call(o,i)&&i!==e&&h(o,i,{get:()=>t[i],enumerable:!(s=f(t,i))||s.enumerable});return o};var B=(o,t,e)=>(e=o!=null?m(C(o)):{},l(t||!o||!o.__esModule?h(e,"default",{value:o,enumerable:!0}):e,o)),D=o=>l(h({},"__esModule",{value:!0}),o);var y={};g(y,{Buckets:()=>c,default:()=>v});module.exports=D(y);var p=require("with-alpha-hex"),k=B(require("./validate"));class c{baseColour="#1d70b8";ragColours=["#00703c","#ffdd00","#d4351c"];buckets=[];useRagColour=!1;bucketCount=0;onlyBucketColoursDefined=!1;autoBucketing=!1;hasRagScore=!1;valueKey;options;responseData;constructor(t,e,s,i,r){this.responseData=t,this.initFromOptions(e),this.valueKey=s,this.hasRagScore=t[0][this.valueKey].rag!==void 0,this.autoBucketing=!!i,r&&(this.ragColours=r),this.initBuckets()}initFromOptions=t=>{this.options=k.default.parse(t.options),this.baseColour=this.options?.baseColour||this.baseColour,this.useRagColour=this.options?.useRagColour||!1,this.onlyBucketColoursDefined=this.options&&this.options.buckets?this.options?.buckets?.every(e=>!e.max&&!e.min&&e.hexColour!==void 0):!1};initBuckets=()=>{const{buckets:t}=this.options;this.setBucketCount(),this.initBucketColours(),t&&t.length?this.hasRagScore?this.onlyBucketColoursDefined&&(this.buckets=t):!this.hasRagScore&&this.onlyBucketColoursDefined&&this.autoBucketing?this.initAutomaticThresholdBucket():this.initCustomThresholdBuckets():!this.hasRagScore&&this.autoBucketing&&this.initAutomaticThresholdBucket()};initCustomThresholdBuckets=()=>{this.buckets=this.options.buckets?this.options.buckets.map((t,e)=>({...this.buckets[e],...t})):[]};initAutomaticThresholdBucket=()=>{const{min:t,max:e,bucketSize:s}=this.setAutomaticThresholdSize();let i=0;this.buckets=this.buckets.map((r,u)=>{let n=t;return u!==0&&(n=i+1),i=s*(u+1)+t,u===this.buckets.length-1&&(i=e),{hexColour:this.options?.buckets&&this.options?.buckets.length?this.options.buckets[u]?.hexColour:r.hexColour,min:n,max:i}})};initBucketColours=()=>{if(this.useRagColour&&this.bucketCount===3)this.buckets=Array.from(new Array(this.bucketCount)).map((t,e)=>({hexColour:this.ragColours[e]}));else{const t=1/this.bucketCount;this.buckets=Array.from(new Array(this.bucketCount)).map((e,s)=>{const i=t*(s+1);return{hexColour:(0,p.withAlphaHex)(this.baseColour,i)}})}};setAutomaticThresholdSize=()=>{const t=this.responseData.map(r=>Number(r[this.valueKey].raw)),e=Math.min(...t),s=Math.max(...t),i=Math.ceil((s-e)/this.bucketCount);return{min:e,max:s,bucketSize:i}};setBucketCount=()=>{const{buckets:t}=this.options;if(this.hasRagScore)if(this.useRagColour)this.bucketCount=3;else{const e=this.responseData.reduce((s,i)=>(i[this.valueKey].rag!==void 0&&s.push(i[this.valueKey].rag),s),[]);this.bucketCount=Math.max(...e)+1}else t&&t.length?this.bucketCount=t.length:this.bucketCount=3};getBucketForValue=(t,e)=>{let s="",i=0;return e!==void 0?{colour:this.buckets[e].hexColour||s,score:e}:(this.buckets.forEach((r,u)=>{const{min:n,max:a}=r;!n&&a&&t<=a&&(s=r.hexColour||s,i=u),n&&t>=n&&a&&t<=a&&(s=r.hexColour||s,i=u),n&&!a&&t>=n&&(s=r.hexColour||s,i=u)}),{colour:s,score:i})};getBuckets=()=>this.buckets}var v=c;0&&(module.exports={Buckets});
2
2
  //# sourceMappingURL=Buckets.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/components/_charts/chart/buckets/Buckets.ts"],
4
4
  "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { withAlphaHex } from 'with-alpha-hex'\nimport { ScorecardDefinitionType } from '../../../_dashboards/scorecard/types'\nimport { ScorecardGroupDefinitionType } from '../../../_dashboards/scorecard-group/types'\nimport { DashboardDataResponse } from '../../../../types/Metrics'\nimport { DashboardVisualisationBucket } from '../../../_dashboards/dashboard-visualisation/types'\nimport { MatrixTimeseriesDefinitionType } from '../heatmap/types'\nimport BucketOptionsSchema from './validate'\nimport { BucketOptionsDefinition } from './types'\n\ntype DefinitionsWithBuckets = MatrixTimeseriesDefinitionType | ScorecardGroupDefinitionType | ScorecardDefinitionType\n\nclass Buckets {\n private baseColour = '#1d70b8'\n\n private ragColours: string[] = ['#00703c', '#ffdd00', '#d4351c']\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private useRagColour = false\n\n private bucketCount = 0\n\n private onlyBucketColoursDefined = false\n\n private autoBucketing = false\n\n private hasRagScore = false\n\n private valueKey: string\n\n private options!: BucketOptionsDefinition\n\n responseData: DashboardDataResponse[]\n\n constructor(\n responseData: DashboardDataResponse[],\n definition: DefinitionsWithBuckets,\n valueKey: string,\n autoBucketing?: boolean,\n ragColours?: string[],\n ) {\n this.responseData = responseData\n this.initFromOptions(definition)\n this.valueKey = valueKey\n this.hasRagScore = responseData[0][this.valueKey].rag !== undefined\n this.autoBucketing = Boolean(autoBucketing)\n if (ragColours) this.ragColours = ragColours\n this.initBuckets()\n }\n\n private initFromOptions = (definition: DefinitionsWithBuckets) => {\n this.options = BucketOptionsSchema.parse(definition.options)\n this.baseColour = this.options?.baseColour || this.baseColour\n this.useRagColour = this.options?.useRagColour || false\n this.onlyBucketColoursDefined =\n this.options && this.options.buckets\n ? this.options?.buckets?.every((bucket) => !bucket.max && !bucket.min && bucket.hexColour !== undefined)\n : false\n }\n\n private initBuckets = () => {\n const { buckets } = this.options\n\n this.setBucketCount()\n this.initBucketColours()\n\n if (buckets && buckets.length) {\n if (this.hasRagScore) {\n if (this.onlyBucketColoursDefined) {\n this.buckets = buckets\n }\n } else if (!this.hasRagScore && this.onlyBucketColoursDefined && this.autoBucketing) {\n this.initAutomaticThresholdBucket()\n } else {\n this.initCustomThresholdBuckets()\n }\n } else if (!this.hasRagScore && this.autoBucketing) {\n this.initAutomaticThresholdBucket()\n }\n }\n\n private initCustomThresholdBuckets = () => {\n this.buckets = this.options.buckets\n ? this.options.buckets.map((bucket, i) => {\n return {\n ...this.buckets[i],\n ...bucket,\n }\n })\n : []\n }\n\n /**\n * Initialises the bucket thresholds by defining the range between the min and max\n * and dividing into 3 equal parts\n */\n private initAutomaticThresholdBucket = () => {\n const { min, max, bucketSize } = this.setAutomaticThresholdSize()\n let maxValue = 0\n this.buckets = this.buckets.map((bucket, i) => {\n let minValue = min\n if (i !== 0) minValue = maxValue + 1\n maxValue = bucketSize * (i + 1) + min\n if (i === this.buckets.length - 1) maxValue = max\n\n return {\n hexColour:\n this.options?.buckets && this.options?.buckets.length ? this.options.buckets[i]?.hexColour : bucket.hexColour,\n min: minValue,\n max: maxValue,\n }\n })\n }\n\n private initBucketColours = () => {\n if (this.useRagColour && this.bucketCount === 3) {\n this.buckets = Array.from(new Array(this.bucketCount)).map((_d, i) => {\n return {\n hexColour: this.ragColours[i],\n }\n })\n } else {\n const alphaDivision = 1 / this.bucketCount\n this.buckets = Array.from(new Array(this.bucketCount)).map((_d, i) => {\n const division = alphaDivision * (i + 1)\n return {\n hexColour: withAlphaHex(this.baseColour, division),\n }\n })\n }\n }\n\n private setAutomaticThresholdSize = () => {\n const values = this.responseData.map((resData) => Number(resData[this.valueKey].raw))\n const min = Math.min(...values)\n const max = Math.max(...values)\n const bucketSize = Math.ceil((max - min) / this.bucketCount)\n\n return {\n min,\n max,\n bucketSize,\n }\n }\n\n private setBucketCount = () => {\n const { buckets } = this.options\n if (this.hasRagScore) {\n if (this.useRagColour) {\n this.bucketCount = 3\n } else {\n const allRags: number[] = this.responseData.reduce((acc: number[], resData: DashboardDataResponse) => {\n if (resData[this.valueKey].rag !== undefined) {\n acc.push(<number>resData[this.valueKey].rag)\n }\n return acc\n }, [])\n this.bucketCount = Math.max(...allRags) + 1\n }\n } else if (buckets && buckets.length) {\n this.bucketCount = buckets.length\n } else {\n this.bucketCount = 3\n }\n }\n\n getBucketForValue = (value: number, ragScore?: number): { colour: string; score: number } => {\n let colour = ''\n let score = 0\n\n if (ragScore !== undefined) {\n return {\n colour: this.buckets[ragScore].hexColour || colour,\n score: ragScore,\n }\n }\n\n this.buckets.forEach((bucket, index) => {\n const { min, max } = bucket\n // First bucket\n if (!min && max && value <= max) {\n colour = bucket.hexColour || colour\n score = index\n }\n // middle buckets\n if (min && value >= min && max && value <= max) {\n colour = bucket.hexColour || colour\n score = index\n }\n // last bucket\n if (min && !max && value >= min) {\n colour = bucket.hexColour || colour\n score = index\n }\n })\n\n return {\n colour,\n score,\n }\n }\n\n getBuckets = () => {\n return this.buckets\n }\n}\n\nexport { Buckets }\nexport default Buckets\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAA6B,0BAM7BC,EAAgC,yBAKhC,MAAMJ,CAAQ,CAuBZ,YACEK,EACAC,EACAC,EACAC,EACAC,EACA,CA5BF,KAAQ,WAAa,UAErB,KAAQ,WAAuB,CAAC,UAAW,UAAW,SAAS,EAE/D,KAAQ,QAA0C,CAAC,EAEnD,KAAQ,aAAe,GAEvB,KAAQ,YAAc,EAEtB,KAAQ,yBAA2B,GAEnC,KAAQ,cAAgB,GAExB,KAAQ,YAAc,GAwBtB,KAAQ,gBAAmBH,GAAuC,CAChE,KAAK,QAAU,EAAAI,QAAoB,MAAMJ,EAAW,OAAO,EAC3D,KAAK,WAAa,KAAK,SAAS,YAAc,KAAK,WACnD,KAAK,aAAe,KAAK,SAAS,cAAgB,GAClD,KAAK,yBACH,KAAK,SAAW,KAAK,QAAQ,QACzB,KAAK,SAAS,SAAS,MAAOK,GAAW,CAACA,EAAO,KAAO,CAACA,EAAO,KAAOA,EAAO,YAAc,MAAS,EACrG,EACR,EAEA,KAAQ,YAAc,IAAM,CAC1B,KAAM,CAAE,QAAAC,CAAQ,EAAI,KAAK,QAEzB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAEnBA,GAAWA,EAAQ,OACjB,KAAK,YACH,KAAK,2BACP,KAAK,QAAUA,GAER,CAAC,KAAK,aAAe,KAAK,0BAA4B,KAAK,cACpE,KAAK,6BAA6B,EAElC,KAAK,2BAA2B,EAEzB,CAAC,KAAK,aAAe,KAAK,eACnC,KAAK,6BAA6B,CAEtC,EAEA,KAAQ,2BAA6B,IAAM,CACzC,KAAK,QAAU,KAAK,QAAQ,QACxB,KAAK,QAAQ,QAAQ,IAAI,CAACD,EAAQE,KACzB,CACL,GAAG,KAAK,QAAQA,CAAC,EACjB,GAAGF,CACL,EACD,EACD,CAAC,CACP,EAMA,KAAQ,6BAA+B,IAAM,CAC3C,KAAM,CAAE,IAAAG,EAAK,IAAAC,EAAK,WAAAC,CAAW,EAAI,KAAK,0BAA0B,EAChE,IAAIC,EAAW,EACf,KAAK,QAAU,KAAK,QAAQ,IAAI,CAACN,EAAQE,IAAM,CAC7C,IAAIK,EAAWJ,EACf,OAAID,IAAM,IAAGK,EAAWD,EAAW,GACnCA,EAAWD,GAAcH,EAAI,GAAKC,EAC9BD,IAAM,KAAK,QAAQ,OAAS,IAAGI,EAAWF,GAEvC,CACL,UACE,KAAK,SAAS,SAAW,KAAK,SAAS,QAAQ,OAAS,KAAK,QAAQ,QAAQF,CAAC,GAAG,UAAYF,EAAO,UACtG,IAAKO,EACL,IAAKD,CACP,CACF,CAAC,CACH,EAEA,KAAQ,kBAAoB,IAAM,CAChC,GAAI,KAAK,cAAgB,KAAK,cAAgB,EAC5C,KAAK,QAAU,MAAM,KAAK,IAAI,MAAM,KAAK,WAAW,CAAC,EAAE,IAAI,CAACE,EAAIN,KACvD,CACL,UAAW,KAAK,WAAWA,CAAC,CAC9B,EACD,MACI,CACL,MAAMO,EAAgB,EAAI,KAAK,YAC/B,KAAK,QAAU,MAAM,KAAK,IAAI,MAAM,KAAK,WAAW,CAAC,EAAE,IAAI,CAACD,EAAIN,IAAM,CACpE,MAAMQ,EAAWD,GAAiBP,EAAI,GACtC,MAAO,CACL,aAAW,gBAAa,KAAK,WAAYQ,CAAQ,CACnD,CACF,CAAC,CACH,CACF,EAEA,KAAQ,0BAA4B,IAAM,CACxC,MAAMC,EAAS,KAAK,aAAa,IAAKC,GAAY,OAAOA,EAAQ,KAAK,QAAQ,EAAE,GAAG,CAAC,EAC9ET,EAAM,KAAK,IAAI,GAAGQ,CAAM,EACxBP,EAAM,KAAK,IAAI,GAAGO,CAAM,EACxBN,EAAa,KAAK,MAAMD,EAAMD,GAAO,KAAK,WAAW,EAE3D,MAAO,CACL,IAAAA,EACA,IAAAC,EACA,WAAAC,CACF,CACF,EAEA,KAAQ,eAAiB,IAAM,CAC7B,KAAM,CAAE,QAAAJ,CAAQ,EAAI,KAAK,QACzB,GAAI,KAAK,YACP,GAAI,KAAK,aACP,KAAK,YAAc,MACd,CACL,MAAMY,EAAoB,KAAK,aAAa,OAAO,CAACC,EAAeF,KAC7DA,EAAQ,KAAK,QAAQ,EAAE,MAAQ,QACjCE,EAAI,KAAaF,EAAQ,KAAK,QAAQ,EAAE,GAAG,EAEtCE,GACN,CAAC,CAAC,EACL,KAAK,YAAc,KAAK,IAAI,GAAGD,CAAO,EAAI,CAC5C,MACSZ,GAAWA,EAAQ,OAC5B,KAAK,YAAcA,EAAQ,OAE3B,KAAK,YAAc,CAEvB,EAEA,uBAAoB,CAACc,EAAeC,IAAyD,CAC3F,IAAIC,EAAS,GACTC,EAAQ,EAEZ,OAAIF,IAAa,OACR,CACL,OAAQ,KAAK,QAAQA,CAAQ,EAAE,WAAaC,EAC5C,MAAOD,CACT,GAGF,KAAK,QAAQ,QAAQ,CAAChB,EAAQmB,IAAU,CACtC,KAAM,CAAE,IAAAhB,EAAK,IAAAC,CAAI,EAAIJ,EAEjB,CAACG,GAAOC,GAAOW,GAASX,IAC1Ba,EAASjB,EAAO,WAAaiB,EAC7BC,EAAQC,GAGNhB,GAAOY,GAASZ,GAAOC,GAAOW,GAASX,IACzCa,EAASjB,EAAO,WAAaiB,EAC7BC,EAAQC,GAGNhB,GAAO,CAACC,GAAOW,GAASZ,IAC1Bc,EAASjB,EAAO,WAAaiB,EAC7BC,EAAQC,EAEZ,CAAC,EAEM,CACL,OAAAF,EACA,MAAAC,CACF,EACF,EAEA,gBAAa,IACJ,KAAK,QAlKZ,KAAK,aAAexB,EACpB,KAAK,gBAAgBC,CAAU,EAC/B,KAAK,SAAWC,EAChB,KAAK,YAAcF,EAAa,CAAC,EAAE,KAAK,QAAQ,EAAE,MAAQ,OAC1D,KAAK,cAAgB,EAAQG,EACzBC,IAAY,KAAK,WAAaA,GAClC,KAAK,YAAY,CACnB,CA6JF,CAGA,IAAOR,EAAQD",
5
+ "mappings": "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",
6
6
  "names": ["Buckets_exports", "__export", "Buckets", "Buckets_default", "__toCommonJS", "import_with_alpha_hex", "import_validate", "responseData", "definition", "valueKey", "autoBucketing", "ragColours", "BucketOptionsSchema", "bucket", "buckets", "i", "min", "max", "bucketSize", "maxValue", "minValue", "_d", "alphaDivision", "division", "values", "resData", "allRags", "acc", "value", "ragScore", "colour", "score", "index"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var D=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var g=(t,s)=>{for(var i in s)a(t,i,{get:s[i],enumerable:!0})},r=(t,s,i,n)=>{if(s&&typeof s=="object"||typeof s=="function")for(let e of l(s))!c.call(t,e)&&e!==i&&a(t,e,{get:()=>s[e],enumerable:!(n=f(s,e))||n.enumerable});return t};var h=(t,s,i)=>(i=t!=null?D(d(t)):{},r(s||!t||!t.__esModule?a(i,"default",{value:t,enumerable:!0}):i,t)),b=t=>r(a({},"__esModule",{value:!0}),t);var k={};g(k,{DoughnutChart:()=>o,default:()=>y});module.exports=b(k);var u=require("../../../_dashboards/dashboard-visualisation/types"),p=h(require("../Chart")),m=h(require("./validate"));class o extends p.default{constructor(){super(...arguments);this.init=()=>{this.measures=this.definition.columns.measures,this.keys=this.definition.columns.keys||[],this.initUnit(this.measures),this.getLabelId(this.keys)};this.withDefinition=i=>(this.definition=m.default.DoughnutSchema.parse(i),this.init(),this);this.build=()=>(this.createDatasets(this.measures,this.responseData),this.augmentDataset(),this.setBespokeOptions(),this.createLabels(this.measures),{type:u.DashboardVisualisationType.DONUT,options:{unit:this.unit},data:{labels:this.labels,datasets:this.datasets,config:this.config}});this.augmentDataset=()=>{this.datasets=this.datasets.map(i=>({...i,backgroundColor:[...this.hexColours,...this.hexColours],borderColor:"",hoverOffset:4,datalabels:{anchor:"center",borderWidth:0}}))};this.setBespokeOptions=()=>{const i=this.datasets.length===1?"50%":"20%";this.config={...this.config,cutout:i}}}}var y=o;0&&(module.exports={DoughnutChart});
1
+ "use strict";var D=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var g=(i,t)=>{for(var s in t)a(i,s,{get:t[s],enumerable:!0})},r=(i,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of l(t))!c.call(i,e)&&e!==s&&a(i,e,{get:()=>t[e],enumerable:!(n=f(t,e))||n.enumerable});return i};var h=(i,t,s)=>(s=i!=null?D(d(i)):{},r(t||!i||!i.__esModule?a(s,"default",{value:i,enumerable:!0}):s,i)),b=i=>r(a({},"__esModule",{value:!0}),i);var k={};g(k,{DoughnutChart:()=>o,default:()=>y});module.exports=b(k);var u=require("../../../_dashboards/dashboard-visualisation/types"),p=h(require("../Chart")),m=h(require("./validate"));class o extends p.default{definition;measures;keys;init=()=>{this.measures=this.definition.columns.measures,this.keys=this.definition.columns.keys||[],this.initUnit(this.measures),this.getLabelId(this.keys)};withDefinition=t=>(this.definition=m.default.DoughnutSchema.parse(t),this.init(),this);build=()=>(this.createDatasets(this.measures,this.responseData),this.augmentDataset(),this.setBespokeOptions(),this.createLabels(this.measures),{type:u.DashboardVisualisationType.DONUT,options:{unit:this.unit},data:{labels:this.labels,datasets:this.datasets,config:this.config}});augmentDataset=()=>{this.datasets=this.datasets.map(t=>({...t,backgroundColor:[...this.hexColours,...this.hexColours],borderColor:"#FFFFFF",hoverOffset:4,datalabels:{anchor:"center",borderWidth:0}}))};setBespokeOptions=()=>{const t=this.datasets.length===1?"50%":"20%";this.config={...this.config,cutout:t}}}var y=o;0&&(module.exports={DoughnutChart});
2
2
  //# sourceMappingURL=DoughnutChart.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/components/_charts/chart/doughnut/DoughnutChart.ts"],
4
- "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport {\n DashboardVisualisationType,\n DashboardVisualisationData,\n VisualisationDefinitionKey,\n} from '../../../_dashboards/dashboard-visualisation/types'\nimport { components } from '../../../../types/api'\nimport Chart from '../Chart'\nimport { DoughnutDefinitionMeasure, DoughnutDefinitionType } from './types'\nimport DoughnutChartSchemas from './validate'\n\nclass DoughnutChart extends Chart {\n private definition!: DoughnutDefinitionType\n\n private measures!: DoughnutDefinitionMeasure[]\n\n private keys!: VisualisationDefinitionKey[]\n\n private init = () => {\n this.measures = this.definition.columns.measures\n this.keys = this.definition.columns.keys || []\n this.initUnit(this.measures)\n this.getLabelId(this.keys)\n }\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = DoughnutChartSchemas.DoughnutSchema.parse(definition)\n this.init()\n\n return this\n }\n\n build = (): DashboardVisualisationData => {\n this.createDatasets(this.measures, this.responseData)\n this.augmentDataset()\n this.setBespokeOptions()\n this.createLabels(this.measures)\n\n return {\n type: DashboardVisualisationType.DONUT,\n options: {\n unit: this.unit,\n },\n data: {\n labels: this.labels,\n datasets: this.datasets,\n config: this.config,\n },\n }\n }\n\n private augmentDataset = () => {\n this.datasets = this.datasets.map((set) => {\n return {\n ...set,\n backgroundColor: [...this.hexColours, ...this.hexColours],\n borderColor: '',\n hoverOffset: 4,\n datalabels: {\n anchor: 'center',\n borderWidth: 0,\n },\n }\n })\n }\n\n private setBespokeOptions = () => {\n const cutout = this.datasets.length === 1 ? '50%' : '20%'\n this.config = {\n ...this.config,\n cutout,\n }\n }\n}\n\nexport { DoughnutChart }\nexport default DoughnutChart\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAIO,8DAEPC,EAAkB,uBAElBC,EAAiC,yBAEjC,MAAML,UAAsB,EAAAM,OAAM,CAAlC,kCAOE,KAAQ,KAAO,IAAM,CACnB,KAAK,SAAW,KAAK,WAAW,QAAQ,SACxC,KAAK,KAAO,KAAK,WAAW,QAAQ,MAAQ,CAAC,EAC7C,KAAK,SAAS,KAAK,QAAQ,EAC3B,KAAK,WAAW,KAAK,IAAI,CAC3B,EAEA,oBAAkBC,IAChB,KAAK,WAAa,EAAAC,QAAqB,eAAe,MAAMD,CAAU,EACtE,KAAK,KAAK,EAEH,MAGT,WAAQ,KACN,KAAK,eAAe,KAAK,SAAU,KAAK,YAAY,EACpD,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,KAAK,QAAQ,EAExB,CACL,KAAM,6BAA2B,MACjC,QAAS,CACP,KAAM,KAAK,IACb,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,MACf,CACF,GAGF,KAAQ,eAAiB,IAAM,CAC7B,KAAK,SAAW,KAAK,SAAS,IAAKE,IAC1B,CACL,GAAGA,EACH,gBAAiB,CAAC,GAAG,KAAK,WAAY,GAAG,KAAK,UAAU,EACxD,YAAa,GACb,YAAa,EACb,WAAY,CACV,OAAQ,SACR,YAAa,CACf,CACF,EACD,CACH,EAEA,KAAQ,kBAAoB,IAAM,CAChC,MAAMC,EAAS,KAAK,SAAS,SAAW,EAAI,MAAQ,MACpD,KAAK,OAAS,CACZ,GAAG,KAAK,OACR,OAAAA,CACF,CACF,EACF,CAGA,IAAOT,EAAQD",
4
+ "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport {\n DashboardVisualisationType,\n DashboardVisualisationData,\n VisualisationDefinitionKey,\n} from '../../../_dashboards/dashboard-visualisation/types'\nimport { components } from '../../../../types/api'\nimport Chart from '../Chart'\nimport { DoughnutDefinitionMeasure, DoughnutDefinitionType } from './types'\nimport DoughnutChartSchemas from './validate'\n\nclass DoughnutChart extends Chart {\n private definition!: DoughnutDefinitionType\n\n private measures!: DoughnutDefinitionMeasure[]\n\n private keys!: VisualisationDefinitionKey[]\n\n private init = () => {\n this.measures = this.definition.columns.measures\n this.keys = this.definition.columns.keys || []\n this.initUnit(this.measures)\n this.getLabelId(this.keys)\n }\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = DoughnutChartSchemas.DoughnutSchema.parse(definition)\n this.init()\n\n return this\n }\n\n build = (): DashboardVisualisationData => {\n this.createDatasets(this.measures, this.responseData)\n this.augmentDataset()\n this.setBespokeOptions()\n this.createLabels(this.measures)\n\n return {\n type: DashboardVisualisationType.DONUT,\n options: {\n unit: this.unit,\n },\n data: {\n labels: this.labels,\n datasets: this.datasets,\n config: this.config,\n },\n }\n }\n\n private augmentDataset = () => {\n this.datasets = this.datasets.map((set) => {\n return {\n ...set,\n backgroundColor: [...this.hexColours, ...this.hexColours],\n borderColor: '#FFFFFF',\n hoverOffset: 4,\n datalabels: {\n anchor: 'center',\n borderWidth: 0,\n },\n }\n })\n }\n\n private setBespokeOptions = () => {\n const cutout = this.datasets.length === 1 ? '50%' : '20%'\n this.config = {\n ...this.config,\n cutout,\n }\n }\n}\n\nexport { DoughnutChart }\nexport default DoughnutChart\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAIO,8DAEPC,EAAkB,uBAElBC,EAAiC,yBAEjC,MAAML,UAAsB,EAAAM,OAAM,CACxB,WAEA,SAEA,KAEA,KAAO,IAAM,CACnB,KAAK,SAAW,KAAK,WAAW,QAAQ,SACxC,KAAK,KAAO,KAAK,WAAW,QAAQ,MAAQ,CAAC,EAC7C,KAAK,SAAS,KAAK,QAAQ,EAC3B,KAAK,WAAW,KAAK,IAAI,CAC3B,EAEA,eAAkBC,IAChB,KAAK,WAAa,EAAAC,QAAqB,eAAe,MAAMD,CAAU,EACtE,KAAK,KAAK,EAEH,MAGT,MAAQ,KACN,KAAK,eAAe,KAAK,SAAU,KAAK,YAAY,EACpD,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,KAAK,QAAQ,EAExB,CACL,KAAM,6BAA2B,MACjC,QAAS,CACP,KAAM,KAAK,IACb,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,MACf,CACF,GAGM,eAAiB,IAAM,CAC7B,KAAK,SAAW,KAAK,SAAS,IAAKE,IAC1B,CACL,GAAGA,EACH,gBAAiB,CAAC,GAAG,KAAK,WAAY,GAAG,KAAK,UAAU,EACxD,YAAa,UACb,YAAa,EACb,WAAY,CACV,OAAQ,SACR,YAAa,CACf,CACF,EACD,CACH,EAEQ,kBAAoB,IAAM,CAChC,MAAMC,EAAS,KAAK,SAAS,SAAW,EAAI,MAAQ,MACpD,KAAK,OAAS,CACZ,GAAG,KAAK,OACR,OAAAA,CACF,CACF,CACF,CAGA,IAAOT,EAAQD",
6
6
  "names": ["DoughnutChart_exports", "__export", "DoughnutChart", "DoughnutChart_default", "__toCommonJS", "import_types", "import_Chart", "import_validate", "Chart", "definition", "DoughnutChartSchemas", "set", "cutout"]
7
7
  }
@@ -54,7 +54,7 @@ class DoughnutChart extends Chart {
54
54
  return {
55
55
  ...set,
56
56
  backgroundColor: [...this.hexColours, ...this.hexColours],
57
- borderColor: '',
57
+ borderColor: '#FFFFFF',
58
58
  hoverOffset: 4,
59
59
  datalabels: {
60
60
  anchor: 'center',
@@ -1,2 +1,2 @@
1
- "use strict";var k=Object.create;var u=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var a in t)u(e,a,{get:t[a],enumerable:!0})},d=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of M(t))!C.call(e,i)&&i!==a&&u(e,i,{get:()=>t[i],enumerable:!(r=x(t,i))||r.enumerable});return e};var l=(e,t,a)=>(a=e!=null?k(w(e)):{},d(t||!e||!e.__esModule?u(a,"default",{value:e,enumerable:!0}):a,e)),L=e=>d(u({},"__esModule",{value:!0}),e);var R={};T(R,{HeatmapChart:()=>p,default:()=>B});module.exports=L(R);var n=l(require("dayjs")),c=require("../../../_dashboards/dashboard-visualisation/types"),D=l(require("../../../../utils/datasetHelper")),y=l(require("../buckets/Buckets")),b=l(require("./validate")),f=l(require("../chart-config"));class p{constructor(){this.responseData=[];this.data=[];this.dayDateFormat="DD/MM/YYYY";this.valueKey="";this.label="";this.datasets=[];this.config=f.default;this.xLabels=[];this.yLabels=[];this.withDefinition=t=>(this.definition=b.default.parse(t),this.init(),this);this.withData=t=>(this.responseData=t,this.bucketsHelper=new y.default(this.responseData,this.definition,this.valueKey,!0),this);this.withGranularity=t=>(this.granularity=t,this);this.init=()=>{this.measures=this.definition.columns.measures,this.setLabel(),this.initUnit()};this.initUnit=()=>{this.unit=this.measures[0].unit?this.measures[0].unit:void 0};this.setLabel=()=>{const{id:t,display:a}=this.measures[1];this.valueKey=t,this.label=a||""};this.initTimeseriesData=()=>{const t=D.default.groupRowsByTimestamp(this.responseData);this.data=t.map(a=>{const{raw:r,rag:i}=a[0][this.valueKey],s=a[0].ts.raw,g=Number(r),v=i!==void 0?Number(a[0][this.valueKey].rag):void 0;let o=0,h=0;switch(this.granularity){case"hourly":break;case"weekly":o=(0,n.default)(s,this.dayDateFormat).format("ddd"),h=(0,n.default)(s,this.dayDateFormat).week();break;case"daily":o=(0,n.default)(s,this.dayDateFormat).format("MMM YY"),h=(0,n.default)(s,this.dayDateFormat).format("D");break;case"monthly":{const m=s.split(" ");o=m[1],h=m[0]}break;case"annually":o="year",h=s;break;default:o=(0,n.default)(s,this.dayDateFormat).format("MMM YY"),h=(0,n.default)(s,this.dayDateFormat).format("D");break}return{y:h,x:o,v:g,r:v}}),this.bucketData(),this.datasets=[{label:this.label,data:this.data}]};this.bucketData=()=>{this.data=this.data.map(t=>{const{v:a,r}=t,i=this.bucketsHelper.getBucketForValue(a,r);return{...t,c:i.colour}})};this.setBespokeOptions=()=>{this.config={...this.config,scales:this.setScales()}};this.getCanvasHeight=()=>this.yLabels.length*20+60;this.build=()=>{this.initTimeseriesData(),this.bucketData(),this.setBespokeOptions();const t=this.getCanvasHeight();return{type:c.DashboardVisualisationType.MATRIX,options:{unit:this.unit,timeseries:!0,height:t},data:{datasets:this.datasets,config:this.config}}}}setScales(){this.xLabels=[...new Set(this.datasets[0].data.map(s=>s.x))],this.yLabels=[...new Set(this.datasets[0].data.map(s=>s.y))];const i={offset:!0,ticks:{padding:1,maxRotation:0,stepSize:1},grid:{display:!1,drawBorder:!1}};return{y:{position:"left",type:"category",...this.yLabels&&{labels:this.yLabels},...i},x:{position:"top",type:"category",...this.xLabels&&{labels:this.xLabels},...i}}}}var B=p;0&&(module.exports={HeatmapChart});
1
+ "use strict";var k=Object.create;var u=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var a in t)u(e,a,{get:t[a],enumerable:!0})},d=(e,t,a,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of M(t))!C.call(e,i)&&i!==a&&u(e,i,{get:()=>t[i],enumerable:!(r=x(t,i))||r.enumerable});return e};var l=(e,t,a)=>(a=e!=null?k(w(e)):{},d(t||!e||!e.__esModule?u(a,"default",{value:e,enumerable:!0}):a,e)),L=e=>d(u({},"__esModule",{value:!0}),e);var R={};T(R,{HeatmapChart:()=>p,default:()=>B});module.exports=L(R);var n=l(require("dayjs")),c=require("../../../_dashboards/dashboard-visualisation/types"),D=l(require("../../../../utils/datasetHelper")),y=l(require("../buckets/Buckets")),b=l(require("./validate")),f=l(require("../chart-config"));class p{definition;measures;responseData=[];granularity;data=[];dayDateFormat="DD/MM/YYYY";valueKey="";label="";unit;bucketsHelper;datasets=[];config=f.default;xLabels=[];yLabels=[];withDefinition=t=>(this.definition=b.default.parse(t),this.init(),this);withData=t=>(this.responseData=t,this.bucketsHelper=new y.default(this.responseData,this.definition,this.valueKey,!0),this);withGranularity=t=>(this.granularity=t,this);init=()=>{this.measures=this.definition.columns.measures,this.setLabel(),this.initUnit()};initUnit=()=>{this.unit=this.measures[0].unit?this.measures[0].unit:void 0};setLabel=()=>{const{id:t,display:a}=this.measures[1];this.valueKey=t,this.label=a||""};initTimeseriesData=()=>{const t=D.default.groupRowsByTimestamp(this.responseData);this.data=t.map(a=>{const{raw:r,rag:i}=a[0][this.valueKey],s=a[0].ts.raw,g=Number(r),v=i!==void 0?Number(a[0][this.valueKey].rag):void 0;let o=0,h=0;switch(this.granularity){case"hourly":break;case"weekly":o=(0,n.default)(s,this.dayDateFormat).format("ddd"),h=(0,n.default)(s,this.dayDateFormat).week();break;case"daily":o=(0,n.default)(s,this.dayDateFormat).format("MMM YY"),h=(0,n.default)(s,this.dayDateFormat).format("D");break;case"monthly":{const m=s.split(" ");o=m[1],h=m[0]}break;case"annually":o="year",h=s;break;default:o=(0,n.default)(s,this.dayDateFormat).format("MMM YY"),h=(0,n.default)(s,this.dayDateFormat).format("D");break}return{y:h,x:o,v:g,r:v}}),this.bucketData(),this.datasets=[{label:this.label,data:this.data}]};bucketData=()=>{this.data=this.data.map(t=>{const{v:a,r}=t,i=this.bucketsHelper.getBucketForValue(a,r);return{...t,c:i.colour}})};setBespokeOptions=()=>{this.config={...this.config,scales:this.setScales()}};setScales(){this.xLabels=[...new Set(this.datasets[0].data.map(s=>s.x))],this.yLabels=[...new Set(this.datasets[0].data.map(s=>s.y))];const i={offset:!0,ticks:{padding:1,maxRotation:0,stepSize:1},grid:{display:!1,drawBorder:!1}};return{y:{position:"left",type:"category",...this.yLabels&&{labels:this.yLabels},...i},x:{position:"top",type:"category",...this.xLabels&&{labels:this.xLabels},...i}}}getCanvasHeight=()=>this.yLabels.length/2;build=()=>{this.initTimeseriesData(),this.bucketData(),this.setBespokeOptions();const t=this.getCanvasHeight();return{type:c.DashboardVisualisationType.MATRIX,options:{unit:this.unit,timeseries:!0,height:t},data:{datasets:this.datasets,config:this.config}}}}var B=p;0&&(module.exports={HeatmapChart});
2
2
  //# sourceMappingURL=HeatmapChart.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/components/_charts/chart/heatmap/HeatmapChart.ts"],
4
- "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport dayjs from 'dayjs'\nimport { Granularity } from '../../../_inputs/granular-date-range/types'\nimport { DashboardDataResponse } from '../../../../types/Metrics'\nimport {\n DashboardVisualisationType,\n DashboardVisualisationData,\n DashboardVisualisationDataSet,\n} from '../../../_dashboards/dashboard-visualisation/types'\nimport { MatrixChartData, MatrixTimeseriesDefinitionType } from './types'\nimport DatasetHelper from '../../../../utils/datasetHelper'\nimport Buckets from '../buckets/Buckets'\nimport { components } from '../../../../types/api'\nimport MatrixSchema from './validate'\nimport ChartConfig from '../chart-config'\n\nclass HeatmapChart {\n private definition!: MatrixTimeseriesDefinitionType\n\n private measures!: MatrixTimeseriesDefinitionType['columns']['measures']\n\n private responseData: DashboardDataResponse[] = []\n\n private granularity!: Granularity\n\n private data: MatrixChartData[] = []\n\n private dayDateFormat = 'DD/MM/YYYY'\n\n private valueKey = ''\n\n private label = ''\n\n private unit: 'NUMBER' | 'PERCENTAGE' | undefined\n\n private bucketsHelper!: Buckets\n\n private datasets: DashboardVisualisationDataSet[] = []\n\n config = ChartConfig\n\n private xLabels: (string | number)[] = []\n\n private yLabels: (string | number)[] = []\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = MatrixSchema.parse(definition)\n this.init()\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.bucketsHelper = new Buckets(this.responseData, this.definition, this.valueKey, true)\n return this\n }\n\n withGranularity = (granularity: Granularity) => {\n this.granularity = granularity\n return this\n }\n\n private init = () => {\n this.measures = this.definition.columns.measures\n this.setLabel()\n this.initUnit()\n }\n\n initUnit = () => {\n this.unit = this.measures[0].unit ? this.measures[0].unit : undefined\n }\n\n private setLabel = () => {\n const { id, display } = this.measures[1]\n this.valueKey = id\n this.label = display || ''\n }\n\n private initTimeseriesData = () => {\n const timeBlockData = DatasetHelper.groupRowsByTimestamp(this.responseData)\n\n this.data = timeBlockData.map((tsData) => {\n const { raw, rag } = tsData[0][this.valueKey]\n const tsRaw = tsData[0]['ts'].raw\n\n const v: MatrixChartData['v'] = Number(raw)\n const r: MatrixChartData['r'] = rag !== undefined ? Number(tsData[0][this.valueKey].rag) : undefined\n let x: MatrixChartData['x'] = 0\n let y: MatrixChartData['y'] = 0\n\n switch (this.granularity) {\n case 'hourly':\n break\n case 'weekly':\n x = dayjs(tsRaw, this.dayDateFormat).format('ddd')\n y = dayjs(tsRaw, this.dayDateFormat).week()\n break\n case 'daily':\n x = dayjs(tsRaw, this.dayDateFormat).format('MMM YY')\n y = dayjs(tsRaw, this.dayDateFormat).format('D')\n break\n case 'monthly':\n {\n const ts = (<string>tsRaw).split(' ')\n x = ts[1]\n y = ts[0]\n }\n break\n case 'annually':\n x = 'year'\n y = <string>tsRaw\n break\n default:\n x = dayjs(tsRaw, this.dayDateFormat).format('MMM YY')\n y = dayjs(tsRaw, this.dayDateFormat).format('D')\n break\n }\n return { y, x, v, r }\n })\n\n this.bucketData()\n this.datasets = [\n {\n label: this.label,\n data: this.data,\n },\n ]\n }\n\n private bucketData = () => {\n this.data = this.data.map((d) => {\n const { v, r } = d\n const bucketData = this.bucketsHelper.getBucketForValue(v, r)\n return { ...d, c: bucketData.colour }\n })\n }\n\n private setBespokeOptions = () => {\n this.config = {\n ...this.config,\n scales: this.setScales(),\n }\n }\n\n setScales() {\n this.xLabels = [\n ...new Set(\n (<MatrixChartData[]>this.datasets[0].data).map((d) => {\n return d.x\n }),\n ),\n ]\n this.yLabels = [\n ...new Set(\n (<MatrixChartData[]>this.datasets[0].data).map((d) => {\n return d.y\n }),\n ),\n ]\n const grid = {\n display: false,\n drawBorder: false,\n }\n const ticks = {\n padding: 1,\n maxRotation: 0,\n stepSize: 1,\n }\n const offset = true\n const common = {\n offset,\n ticks,\n grid,\n }\n\n return {\n y: {\n position: 'left',\n type: 'category',\n ...(this.yLabels && { labels: this.yLabels }),\n ...common,\n },\n x: {\n position: 'top',\n type: 'category',\n ...(this.xLabels && { labels: this.xLabels }),\n ...common,\n },\n }\n }\n\n getCanvasHeight = () => {\n return this.yLabels.length * 20 + 60\n }\n\n build = (): DashboardVisualisationData => {\n this.initTimeseriesData()\n this.bucketData()\n this.setBespokeOptions()\n const height = this.getCanvasHeight()\n\n return {\n type: DashboardVisualisationType.MATRIX,\n options: {\n unit: this.unit,\n timeseries: true,\n height,\n },\n data: {\n datasets: this.datasets,\n config: this.config,\n },\n }\n }\n}\n\nexport { HeatmapChart }\nexport default HeatmapChart\n"],
5
- "mappings": "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",
6
- "names": ["HeatmapChart_exports", "__export", "HeatmapChart", "HeatmapChart_default", "__toCommonJS", "import_dayjs", "import_types", "import_datasetHelper", "import_Buckets", "import_validate", "import_chart_config", "ChartConfig", "definition", "MatrixSchema", "responseData", "Buckets", "granularity", "id", "display", "timeBlockData", "DatasetHelper", "tsData", "raw", "rag", "tsRaw", "v", "r", "x", "y", "dayjs", "ts", "d", "bucketData", "height", "common"]
4
+ "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport dayjs from 'dayjs'\nimport { Granularity } from '../../../_inputs/granular-date-range/types'\nimport { DashboardDataResponse } from '../../../../types/Metrics'\nimport {\n DashboardVisualisationType,\n DashboardVisualisationData,\n DashboardVisualisationDataSet,\n} from '../../../_dashboards/dashboard-visualisation/types'\nimport { MatrixChartData, MatrixTimeseriesDefinitionType } from './types'\nimport DatasetHelper from '../../../../utils/datasetHelper'\nimport Buckets from '../buckets/Buckets'\nimport { components } from '../../../../types/api'\nimport MatrixSchema from './validate'\nimport ChartConfig from '../chart-config'\n\nclass HeatmapChart {\n private definition!: MatrixTimeseriesDefinitionType\n\n private measures!: MatrixTimeseriesDefinitionType['columns']['measures']\n\n private responseData: DashboardDataResponse[] = []\n\n private granularity!: Granularity\n\n private data: MatrixChartData[] = []\n\n private dayDateFormat = 'DD/MM/YYYY'\n\n private valueKey = ''\n\n private label = ''\n\n private unit: 'NUMBER' | 'PERCENTAGE' | undefined\n\n private bucketsHelper!: Buckets\n\n private datasets: DashboardVisualisationDataSet[] = []\n\n config = ChartConfig\n\n private xLabels: (string | number)[] = []\n\n private yLabels: (string | number)[] = []\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = MatrixSchema.parse(definition)\n this.init()\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.bucketsHelper = new Buckets(this.responseData, this.definition, this.valueKey, true)\n return this\n }\n\n withGranularity = (granularity: Granularity) => {\n this.granularity = granularity\n return this\n }\n\n private init = () => {\n this.measures = this.definition.columns.measures\n this.setLabel()\n this.initUnit()\n }\n\n initUnit = () => {\n this.unit = this.measures[0].unit ? this.measures[0].unit : undefined\n }\n\n private setLabel = () => {\n const { id, display } = this.measures[1]\n this.valueKey = id\n this.label = display || ''\n }\n\n private initTimeseriesData = () => {\n const timeBlockData = DatasetHelper.groupRowsByTimestamp(this.responseData)\n\n this.data = timeBlockData.map((tsData) => {\n const { raw, rag } = tsData[0][this.valueKey]\n const tsRaw = tsData[0]['ts'].raw\n\n const v: MatrixChartData['v'] = Number(raw)\n const r: MatrixChartData['r'] = rag !== undefined ? Number(tsData[0][this.valueKey].rag) : undefined\n let x: MatrixChartData['x'] = 0\n let y: MatrixChartData['y'] = 0\n\n switch (this.granularity) {\n case 'hourly':\n break\n case 'weekly':\n x = dayjs(tsRaw, this.dayDateFormat).format('ddd')\n y = dayjs(tsRaw, this.dayDateFormat).week()\n break\n case 'daily':\n x = dayjs(tsRaw, this.dayDateFormat).format('MMM YY')\n y = dayjs(tsRaw, this.dayDateFormat).format('D')\n break\n case 'monthly':\n {\n const ts = (<string>tsRaw).split(' ')\n x = ts[1]\n y = ts[0]\n }\n break\n case 'annually':\n x = 'year'\n y = <string>tsRaw\n break\n default:\n x = dayjs(tsRaw, this.dayDateFormat).format('MMM YY')\n y = dayjs(tsRaw, this.dayDateFormat).format('D')\n break\n }\n return { y, x, v, r }\n })\n\n this.bucketData()\n this.datasets = [\n {\n label: this.label,\n data: this.data,\n },\n ]\n }\n\n private bucketData = () => {\n this.data = this.data.map((d) => {\n const { v, r } = d\n const bucketData = this.bucketsHelper.getBucketForValue(v, r)\n return { ...d, c: bucketData.colour }\n })\n }\n\n private setBespokeOptions = () => {\n this.config = {\n ...this.config,\n scales: this.setScales(),\n }\n }\n\n setScales() {\n this.xLabels = [\n ...new Set(\n (<MatrixChartData[]>this.datasets[0].data).map((d) => {\n return d.x\n }),\n ),\n ]\n this.yLabels = [\n ...new Set(\n (<MatrixChartData[]>this.datasets[0].data).map((d) => {\n return d.y\n }),\n ),\n ]\n const grid = {\n display: false,\n drawBorder: false,\n }\n const ticks = {\n padding: 1,\n maxRotation: 0,\n stepSize: 1,\n }\n const offset = true\n const common = {\n offset,\n ticks,\n grid,\n }\n\n return {\n y: {\n position: 'left',\n type: 'category',\n ...(this.yLabels && { labels: this.yLabels }),\n ...common,\n },\n x: {\n position: 'top',\n type: 'category',\n ...(this.xLabels && { labels: this.xLabels }),\n ...common,\n },\n }\n }\n\n getCanvasHeight = () => {\n return this.yLabels.length / 2\n }\n\n build = (): DashboardVisualisationData => {\n this.initTimeseriesData()\n this.bucketData()\n this.setBespokeOptions()\n const height = this.getCanvasHeight()\n\n return {\n type: DashboardVisualisationType.MATRIX,\n options: {\n unit: this.unit,\n timeseries: true,\n height,\n },\n data: {\n datasets: this.datasets,\n config: this.config,\n },\n }\n }\n}\n\nexport { HeatmapChart }\nexport default HeatmapChart\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAAkB,oBAGlBC,EAIO,8DAEPC,EAA0B,8CAC1BC,EAAoB,iCAEpBC,EAAyB,yBACzBC,EAAwB,8BAExB,MAAMR,CAAa,CACT,WAEA,SAEA,aAAwC,CAAC,EAEzC,YAEA,KAA0B,CAAC,EAE3B,cAAgB,aAEhB,SAAW,GAEX,MAAQ,GAER,KAEA,cAEA,SAA4C,CAAC,EAErD,OAAS,EAAAS,QAED,QAA+B,CAAC,EAEhC,QAA+B,CAAC,EAExC,eAAkBC,IAChB,KAAK,WAAa,EAAAC,QAAa,MAAMD,CAAU,EAC/C,KAAK,KAAK,EACH,MAGT,SAAYE,IACV,KAAK,aAAeA,EACpB,KAAK,cAAgB,IAAI,EAAAC,QAAQ,KAAK,aAAc,KAAK,WAAY,KAAK,SAAU,EAAI,EACjF,MAGT,gBAAmBC,IACjB,KAAK,YAAcA,EACZ,MAGD,KAAO,IAAM,CACnB,KAAK,SAAW,KAAK,WAAW,QAAQ,SACxC,KAAK,SAAS,EACd,KAAK,SAAS,CAChB,EAEA,SAAW,IAAM,CACf,KAAK,KAAO,KAAK,SAAS,CAAC,EAAE,KAAO,KAAK,SAAS,CAAC,EAAE,KAAO,MAC9D,EAEQ,SAAW,IAAM,CACvB,KAAM,CAAE,GAAAC,EAAI,QAAAC,CAAQ,EAAI,KAAK,SAAS,CAAC,EACvC,KAAK,SAAWD,EAChB,KAAK,MAAQC,GAAW,EAC1B,EAEQ,mBAAqB,IAAM,CACjC,MAAMC,EAAgB,EAAAC,QAAc,qBAAqB,KAAK,YAAY,EAE1E,KAAK,KAAOD,EAAc,IAAKE,GAAW,CACxC,KAAM,CAAE,IAAAC,EAAK,IAAAC,CAAI,EAAIF,EAAO,CAAC,EAAE,KAAK,QAAQ,EACtCG,EAAQH,EAAO,CAAC,EAAE,GAAM,IAExBI,EAA0B,OAAOH,CAAG,EACpCI,EAA0BH,IAAQ,OAAY,OAAOF,EAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAI,OAC3F,IAAIM,EAA0B,EAC1BC,EAA0B,EAE9B,OAAQ,KAAK,YAAa,CACxB,IAAK,SACH,MACF,IAAK,SACHD,KAAI,EAAAE,SAAML,EAAO,KAAK,aAAa,EAAE,OAAO,KAAK,EACjDI,KAAI,EAAAC,SAAML,EAAO,KAAK,aAAa,EAAE,KAAK,EAC1C,MACF,IAAK,QACHG,KAAI,EAAAE,SAAML,EAAO,KAAK,aAAa,EAAE,OAAO,QAAQ,EACpDI,KAAI,EAAAC,SAAML,EAAO,KAAK,aAAa,EAAE,OAAO,GAAG,EAC/C,MACF,IAAK,UACH,CACE,MAAMM,EAAcN,EAAO,MAAM,GAAG,EACpCG,EAAIG,EAAG,CAAC,EACRF,EAAIE,EAAG,CAAC,CACV,CACA,MACF,IAAK,WACHH,EAAI,OACJC,EAAYJ,EACZ,MACF,QACEG,KAAI,EAAAE,SAAML,EAAO,KAAK,aAAa,EAAE,OAAO,QAAQ,EACpDI,KAAI,EAAAC,SAAML,EAAO,KAAK,aAAa,EAAE,OAAO,GAAG,EAC/C,KACJ,CACA,MAAO,CAAE,EAAAI,EAAG,EAAAD,EAAG,EAAAF,EAAG,EAAAC,CAAE,CACtB,CAAC,EAED,KAAK,WAAW,EAChB,KAAK,SAAW,CACd,CACE,MAAO,KAAK,MACZ,KAAM,KAAK,IACb,CACF,CACF,EAEQ,WAAa,IAAM,CACzB,KAAK,KAAO,KAAK,KAAK,IAAKK,GAAM,CAC/B,KAAM,CAAE,EAAAN,EAAG,CAAE,EAAIM,EACXC,EAAa,KAAK,cAAc,kBAAkBP,EAAG,CAAC,EAC5D,MAAO,CAAE,GAAGM,EAAG,EAAGC,EAAW,MAAO,CACtC,CAAC,CACH,EAEQ,kBAAoB,IAAM,CAChC,KAAK,OAAS,CACZ,GAAG,KAAK,OACR,OAAQ,KAAK,UAAU,CACzB,CACF,EAEA,WAAY,CACV,KAAK,QAAU,CACb,GAAG,IAAI,IACe,KAAK,SAAS,CAAC,EAAE,KAAM,IAAKD,GACvCA,EAAE,CACV,CACH,CACF,EACA,KAAK,QAAU,CACb,GAAG,IAAI,IACe,KAAK,SAAS,CAAC,EAAE,KAAM,IAAKA,GACvCA,EAAE,CACV,CACH,CACF,EAWA,MAAME,EAAS,CACb,OAFa,GAGb,MARY,CACZ,QAAS,EACT,YAAa,EACb,SAAU,CACZ,EAKE,KAbW,CACX,QAAS,GACT,WAAY,EACd,CAWA,EAEA,MAAO,CACL,EAAG,CACD,SAAU,OACV,KAAM,WACN,GAAI,KAAK,SAAW,CAAE,OAAQ,KAAK,OAAQ,EAC3C,GAAGA,CACL,EACA,EAAG,CACD,SAAU,MACV,KAAM,WACN,GAAI,KAAK,SAAW,CAAE,OAAQ,KAAK,OAAQ,EAC3C,GAAGA,CACL,CACF,CACF,CAEA,gBAAkB,IACT,KAAK,QAAQ,OAAS,EAG/B,MAAQ,IAAkC,CACxC,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,MAAMC,EAAS,KAAK,gBAAgB,EAEpC,MAAO,CACL,KAAM,6BAA2B,OACjC,QAAS,CACP,KAAM,KAAK,KACX,WAAY,GACZ,OAAAA,CACF,EACA,KAAM,CACJ,SAAU,KAAK,SACf,OAAQ,KAAK,MACf,CACF,CACF,CACF,CAGA,IAAO/B,EAAQD",
6
+ "names": ["HeatmapChart_exports", "__export", "HeatmapChart", "HeatmapChart_default", "__toCommonJS", "import_dayjs", "import_types", "import_datasetHelper", "import_Buckets", "import_validate", "import_chart_config", "ChartConfig", "definition", "MatrixSchema", "responseData", "Buckets", "granularity", "id", "display", "timeBlockData", "DatasetHelper", "tsData", "raw", "rag", "tsRaw", "v", "r", "x", "y", "dayjs", "ts", "d", "bucketData", "common", "height"]
7
7
  }
@@ -190,7 +190,7 @@ class HeatmapChart {
190
190
  }
191
191
 
192
192
  getCanvasHeight = () => {
193
- return this.yLabels.length * 20 + 60
193
+ return this.yLabels.length / 2
194
194
  }
195
195
 
196
196
  build = (): DashboardVisualisationData => {
@@ -1,2 +1,2 @@
1
- "use strict";var l=Object.create;var n=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var y=(i,t)=>{for(var s in t)n(i,s,{get:t[s],enumerable:!0})},r=(i,t,s,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of d(t))!c.call(i,e)&&e!==s&&n(i,e,{get:()=>t[e],enumerable:!(a=f(t,e))||a.enumerable});return i};var h=(i,t,s)=>(s=i!=null?l(D(i)):{},r(t||!i||!i.__esModule?n(s,"default",{value:i,enumerable:!0}):s,i)),b=i=>r(n({},"__esModule",{value:!0}),i);var k={};y(k,{LineChart:()=>o,default:()=>L});module.exports=b(k);var u=require("../../../_dashboards/dashboard-visualisation/types"),p=h(require("../Chart")),m=h(require("./validate"));class o extends p.default{constructor(){super(...arguments);this.init=()=>{this.measures=this.definition.columns.measures,this.keys=this.definition.columns.keys||[],this.initUnit(this.measures),this.getLabelId(this.keys)};this.withDefinition=s=>(this.definition=m.default.LineSchema.parse(s),this.init(),this);this.build=()=>(this.createDatasets(this.measures,this.responseData),this.datasets=this.augmentDataset(this.datasets),this.config=this.setBespokeOptions(),this.createLabels(this.measures),{type:u.DashboardVisualisationType.LINE,options:{unit:this.unit},data:{labels:this.labels,datasets:this.datasets,config:this.config}});this.augmentDataset=s=>s.map(a=>({...a,pointStyle:"circle",pointRadius:4,pointHoverRadius:10,pointHitRadius:20,datalabels:{display:!1}}));this.setBespokeOptions=()=>({...this.config,scales:{y:{min:0,ticks:{fontSize:12}},x:{ticks:{fontSize:12}}}})}}var L=o;0&&(module.exports={LineChart});
1
+ "use strict";var l=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var y=(i,t)=>{for(var s in t)a(i,s,{get:t[s],enumerable:!0})},r=(i,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of d(t))!c.call(i,e)&&e!==s&&a(i,e,{get:()=>t[e],enumerable:!(o=f(t,e))||o.enumerable});return i};var h=(i,t,s)=>(s=i!=null?l(D(i)):{},r(t||!i||!i.__esModule?a(s,"default",{value:i,enumerable:!0}):s,i)),b=i=>r(a({},"__esModule",{value:!0}),i);var k={};y(k,{LineChart:()=>n,default:()=>L});module.exports=b(k);var u=require("../../../_dashboards/dashboard-visualisation/types"),p=h(require("../Chart")),m=h(require("./validate"));class n extends p.default{definition;measures;keys;init=()=>{this.measures=this.definition.columns.measures,this.keys=this.definition.columns.keys||[],this.initUnit(this.measures),this.getLabelId(this.keys)};withDefinition=t=>(this.definition=m.default.LineSchema.parse(t),this.init(),this);build=()=>(this.createDatasets(this.measures,this.responseData),this.datasets=this.augmentDataset(this.datasets),this.config=this.setBespokeOptions(),this.createLabels(this.measures),{type:u.DashboardVisualisationType.LINE,options:{unit:this.unit},data:{labels:this.labels,datasets:this.datasets,config:this.config}});augmentDataset=t=>t.map(s=>({...s,pointStyle:"circle",pointRadius:4,pointHoverRadius:10,pointHitRadius:20,datalabels:{display:!1}}));setBespokeOptions=()=>({...this.config,scales:{y:{min:0,ticks:{fontSize:12}},x:{ticks:{fontSize:12}}}})}var L=n;0&&(module.exports={LineChart});
2
2
  //# sourceMappingURL=LineChart.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/components/_charts/chart/line/LineChart.ts"],
4
4
  "sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport {\n DashboardVisualisationType,\n DashboardVisualisationData,\n VisualisationDefinitionKey,\n DashboardVisualisationDataSet,\n} from '../../../_dashboards/dashboard-visualisation/types'\nimport { components } from '../../../../types/api'\nimport Chart from '../Chart'\nimport { LineDefinitionMeasure, LineDefinitionType } from './types'\nimport LineChartSchemas from './validate'\n\nclass LineChart extends Chart {\n private definition!: LineDefinitionType\n\n private measures!: LineDefinitionMeasure[]\n\n private keys!: VisualisationDefinitionKey[]\n\n private init = () => {\n this.measures = this.definition.columns.measures\n this.keys = this.definition.columns.keys || []\n this.initUnit(this.measures)\n this.getLabelId(this.keys)\n }\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = LineChartSchemas.LineSchema.parse(definition)\n this.init()\n\n return this\n }\n\n build = (): DashboardVisualisationData => {\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 return {\n type: DashboardVisualisationType.LINE,\n options: {\n unit: this.unit,\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 pointStyle: 'circle',\n pointRadius: 4,\n pointHoverRadius: 10,\n pointHitRadius: 20,\n datalabels: {\n display: false,\n },\n }\n })\n }\n\n setBespokeOptions = () => {\n return {\n ...this.config,\n scales: {\n y: {\n min: 0,\n ticks: {\n fontSize: 12,\n },\n },\n x: {\n ticks: {\n fontSize: 12,\n },\n },\n },\n }\n }\n}\n\nexport { LineChart }\nexport default LineChart\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAKO,8DAEPC,EAAkB,uBAElBC,EAA6B,yBAE7B,MAAML,UAAkB,EAAAM,OAAM,CAA9B,kCAOE,KAAQ,KAAO,IAAM,CACnB,KAAK,SAAW,KAAK,WAAW,QAAQ,SACxC,KAAK,KAAO,KAAK,WAAW,QAAQ,MAAQ,CAAC,EAC7C,KAAK,SAAS,KAAK,QAAQ,EAC3B,KAAK,WAAW,KAAK,IAAI,CAC3B,EAEA,oBAAkBC,IAChB,KAAK,WAAa,EAAAC,QAAiB,WAAW,MAAMD,CAAU,EAC9D,KAAK,KAAK,EAEH,MAGT,WAAQ,KACN,KAAK,eAAe,KAAK,SAAU,KAAK,YAAY,EACpD,KAAK,SAAW,KAAK,eAAe,KAAK,QAAQ,EACjD,KAAK,OAAS,KAAK,kBAAkB,EACrC,KAAK,aAAa,KAAK,QAAQ,EAExB,CACL,KAAM,6BAA2B,KACjC,QAAS,CACP,KAAM,KAAK,IACb,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,MACf,CACF,GAGF,oBAAkBE,GACTA,EAAS,IAAKC,IACZ,CACL,GAAGA,EACH,WAAY,SACZ,YAAa,EACb,iBAAkB,GAClB,eAAgB,GAChB,WAAY,CACV,QAAS,EACX,CACF,EACD,EAGH,uBAAoB,KACX,CACL,GAAG,KAAK,OACR,OAAQ,CACN,EAAG,CACD,IAAK,EACL,MAAO,CACL,SAAU,EACZ,CACF,EACA,EAAG,CACD,MAAO,CACL,SAAU,EACZ,CACF,CACF,CACF,GAEJ,CAGA,IAAOT,EAAQD",
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GACA,IAAAK,EAKO,8DAEPC,EAAkB,uBAElBC,EAA6B,yBAE7B,MAAML,UAAkB,EAAAM,OAAM,CACpB,WAEA,SAEA,KAEA,KAAO,IAAM,CACnB,KAAK,SAAW,KAAK,WAAW,QAAQ,SACxC,KAAK,KAAO,KAAK,WAAW,QAAQ,MAAQ,CAAC,EAC7C,KAAK,SAAS,KAAK,QAAQ,EAC3B,KAAK,WAAW,KAAK,IAAI,CAC3B,EAEA,eAAkBC,IAChB,KAAK,WAAa,EAAAC,QAAiB,WAAW,MAAMD,CAAU,EAC9D,KAAK,KAAK,EAEH,MAGT,MAAQ,KACN,KAAK,eAAe,KAAK,SAAU,KAAK,YAAY,EACpD,KAAK,SAAW,KAAK,eAAe,KAAK,QAAQ,EACjD,KAAK,OAAS,KAAK,kBAAkB,EACrC,KAAK,aAAa,KAAK,QAAQ,EAExB,CACL,KAAM,6BAA2B,KACjC,QAAS,CACP,KAAM,KAAK,IACb,EACA,KAAM,CACJ,OAAQ,KAAK,OACb,SAAU,KAAK,SACf,OAAQ,KAAK,MACf,CACF,GAGF,eAAkBE,GACTA,EAAS,IAAKC,IACZ,CACL,GAAGA,EACH,WAAY,SACZ,YAAa,EACb,iBAAkB,GAClB,eAAgB,GAChB,WAAY,CACV,QAAS,EACX,CACF,EACD,EAGH,kBAAoB,KACX,CACL,GAAG,KAAK,OACR,OAAQ,CACN,EAAG,CACD,IAAK,EACL,MAAO,CACL,SAAU,EACZ,CACF,EACA,EAAG,CACD,MAAO,CACL,SAAU,EACZ,CACF,CACF,CACF,EAEJ,CAGA,IAAOT,EAAQD",
6
6
  "names": ["LineChart_exports", "__export", "LineChart", "LineChart_default", "__toCommonJS", "import_types", "import_Chart", "import_validate", "Chart", "definition", "LineChartSchemas", "datasets", "set"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var b=(i,t)=>{for(var e in t)r(i,e,{get:t[e],enumerable:!0})},h=(i,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of D(t))!C.call(i,s)&&s!==e&&r(i,s,{get:()=>t[s],enumerable:!(a=f(t,s))||a.enumerable});return i};var o=(i,t,e)=>(e=i!=null?u(c(i)):{},h(t||!i||!i.__esModule?r(e,"default",{value:i,enumerable:!0}):e,i)),T=i=>h(r({},"__esModule",{value:!0}),i);var y={};b(y,{LineTimeseriesChart:()=>n,default:()=>L});module.exports=T(y);var m=require("../../../_dashboards/dashboard-visualisation/types"),l=o(require("./validate")),p=o(require("../ChartTimeseries")),d=o(require("../line/LineChart"));class n extends p.default{constructor(){super(...arguments);this.lineChartBuilder=new d.default;this.withDefinition=e=>(this.definition=l.default.LineTimeseriesSchema.parse(e),this.initFromDefinition(this.definition),this);this.build=()=>(this.buildDatasets(),this.datasets=this.lineChartBuilder.augmentDataset(this.datasets),this.setStyles(),this.config=this.lineChartBuilder.setBespokeOptions(),{type:m.DashboardVisualisationType.LINE,options:{unit:this.unit,timeseries:!0},data:{labels:this.labels,datasets:this.datasets,config:this.config,partialDate:this.partialDate}});this.setStyles=()=>{this.datasets=this.datasets.map((e,a)=>{const s=this.hexColours[a];return{...e,backgroundColor:s,borderColor:s}})}}}var L=n;0&&(module.exports={LineTimeseriesChart});
1
+ "use strict";var u=Object.create;var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var b=(i,t)=>{for(var e in t)r(i,e,{get:t[e],enumerable:!0})},h=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of D(t))!C.call(i,a)&&a!==e&&r(i,a,{get:()=>t[a],enumerable:!(s=f(t,a))||s.enumerable});return i};var o=(i,t,e)=>(e=i!=null?u(c(i)):{},h(t||!i||!i.__esModule?r(e,"default",{value:i,enumerable:!0}):e,i)),T=i=>h(r({},"__esModule",{value:!0}),i);var y={};b(y,{LineTimeseriesChart:()=>n,default:()=>L});module.exports=T(y);var m=require("../../../_dashboards/dashboard-visualisation/types"),l=o(require("./validate")),p=o(require("../ChartTimeseries")),d=o(require("../line/LineChart"));class n extends p.default{definition;lineChartBuilder=new d.default;withDefinition=t=>(this.definition=l.default.LineTimeseriesSchema.parse(t),this.initFromDefinition(this.definition),this);build=()=>(this.buildDatasets(),this.datasets=this.lineChartBuilder.augmentDataset(this.datasets),this.setStyles(),this.config=this.lineChartBuilder.setBespokeOptions(),{type:m.DashboardVisualisationType.LINE,options:{unit:this.unit,timeseries:!0},data:{labels:this.labels,datasets:this.datasets,config:this.config,partialDate:this.partialDate}});setStyles=()=>{this.datasets=this.datasets.map((t,e)=>{const s=this.hexColours[e];return{...t,backgroundColor:s,borderColor:s}})}}var L=n;0&&(module.exports={LineTimeseriesChart});
2
2
  //# sourceMappingURL=LineTimeseriesChart.js.map