@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.28.8 → 4.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dpr/all.js +6 -8
  2. package/dpr/all.js.map +3 -3
  3. package/dpr/all.scss +296 -414
  4. package/dpr/all.ts +6 -11
  5. package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -1
  6. package/dpr/components/_charts/chart/ChartTimeseries.js +3 -2
  7. package/dpr/components/_charts/chart/ChartTimeseries.js.map +2 -2
  8. package/dpr/components/_charts/chart/ChartTimeseries.ts +4 -2
  9. package/dpr/components/_charts/chart/clientClass.js +1 -0
  10. package/dpr/components/_charts/chart/clientClass.js.map +2 -2
  11. package/dpr/components/_charts/chart/clientClass.ts +1 -0
  12. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.js.map +1 -1
  13. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/clientClass.js +1 -1
  14. package/dpr/components/_reports/report-heading/report-actions/clientClass.js.map +7 -0
  15. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/clientClass.ts +1 -1
  16. package/dpr/components/_reports/report-heading/report-actions/types.d.js.map +7 -0
  17. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/types.d.ts +1 -1
  18. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.js.map +1 -1
  19. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.test.ts +2 -2
  20. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/clientClass.js +1 -3
  21. package/dpr/components/_reports/report-heading/report-columns/report-columns-form/clientClass.js.map +7 -0
  22. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/clientClass.ts +1 -3
  23. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.js.map +1 -1
  24. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/utils.js +1 -1
  25. package/dpr/components/_reports/report-heading/report-columns/report-columns-form/utils.js.map +7 -0
  26. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/utils.ts +2 -2
  27. package/dpr/components/_reports/{report-columns → report-heading/report-columns}/view.njk +1 -1
  28. package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/clientClass.js +1 -1
  29. package/dpr/components/_reports/report-heading/report-download-message/clientClass.js.map +7 -0
  30. package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/clientClass.ts +1 -1
  31. package/dpr/components/_reports/{report-filters → report-heading/report-filters}/view.njk +1 -1
  32. package/dpr/components/_reports/report-heading/view.njk +4 -4
  33. package/dpr/components/_reports/report-page/report-print-message/view.njk +10 -0
  34. package/dpr/components/_reports/report-page/report-template/report-no-data-message/styles.scss +8 -0
  35. package/dpr/components/_reports/report-page/report-template/report-no-data-message/view.njk +11 -0
  36. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/clientClass.js +1 -1
  37. package/dpr/components/_reports/report-page/report-template/report-pagination/clientClass.js.map +7 -0
  38. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/clientClass.ts +1 -1
  39. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/types.d.js.map +1 -1
  40. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.js.map +1 -1
  41. package/dpr/components/_reports/report-page/report-template/report-section/parent-child-template/styles.scss +88 -0
  42. package/dpr/components/_reports/report-page/report-template/report-section/parent-child-template/view.njk +29 -0
  43. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/clientClass.js +17 -10
  44. package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/clientClass.js.map +7 -0
  45. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/clientClass.ts +20 -10
  46. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/style.scss +35 -185
  47. package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/types.d.js.map +7 -0
  48. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/types.d.ts +2 -2
  49. package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/view.njk +27 -0
  50. package/dpr/components/_reports/report-page/report-template/report-section/styles.scss +33 -0
  51. package/dpr/components/_reports/report-page/report-template/report-section/view.njk +58 -0
  52. package/dpr/components/_reports/{report-summary-table → report-page/report-template/report-summary-table}/styles.scss +21 -4
  53. package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.js.map +1 -1
  54. package/dpr/components/_reports/report-page/report-template/styles.scss +5 -0
  55. package/dpr/components/_reports/report-page/report-template/template-config.js +66 -0
  56. package/dpr/components/_reports/report-page/report-template/template-config.js.map +7 -0
  57. package/dpr/components/_reports/report-page/report-template/template-config.ts +45 -0
  58. package/dpr/components/_reports/report-page/report-template/utils.js +82 -0
  59. package/dpr/components/_reports/report-page/report-template/utils.js.map +7 -0
  60. package/dpr/components/_reports/report-page/report-template/utils.ts +100 -0
  61. package/dpr/components/_reports/report-page/report-template/view.njk +61 -0
  62. package/dpr/components/_reports/{report-wrapper → report-page}/styles.scss +7 -5
  63. package/dpr/components/_reports/report-page/view.njk +26 -0
  64. package/dpr/components/card-group/view.njk +0 -4
  65. package/dpr/components/report-list/utils.js +11 -3
  66. package/dpr/components/report-list/utils.js.map +2 -2
  67. package/dpr/components/report-list/utils.ts +11 -1
  68. package/dpr/components/report-list/view.njk +2 -2
  69. package/dpr/components/show-more/style.scss +3 -4
  70. package/dpr/data/reportingClient.js.map +2 -2
  71. package/dpr/data/reportingClient.ts +4 -4
  72. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  73. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +1 -1
  74. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +1 -1
  75. package/dpr/routes/journeys/view-report/async/report/controller.js.map +2 -2
  76. package/dpr/routes/journeys/view-report/async/report/controller.ts +0 -1
  77. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js +207 -56
  78. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +2 -2
  79. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.ts +333 -64
  80. package/dpr/routes/journeys/view-report/async/report/utils.js +9 -17
  81. package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
  82. package/dpr/routes/journeys/view-report/async/report/utils.ts +12 -22
  83. package/dpr/routes/journeys/view-report/report.njk +2 -2
  84. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +1 -1
  85. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +1 -1
  86. package/dpr/routes/journeys/view-report/sync/dashboard/utils.ts +1 -1
  87. package/dpr/routes/journeys/view-report/sync/report/utils.js +38 -11
  88. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
  89. package/dpr/routes/journeys/view-report/sync/report/utils.ts +39 -14
  90. package/dpr/routes/journeys/view-report/utils.js +1 -1
  91. package/dpr/routes/journeys/view-report/utils.js.map +1 -1
  92. package/dpr/routes/journeys/view-report/utils.ts +1 -1
  93. package/dpr/services/reportingService.js.map +2 -2
  94. package/dpr/services/reportingService.ts +2 -2
  95. package/dpr/types/ReportQuery.js +1 -1
  96. package/dpr/types/ReportQuery.js.map +1 -1
  97. package/dpr/types/ReportQuery.ts +1 -1
  98. package/dpr/types/UserReports.js.map +1 -1
  99. package/dpr/types/UserReports.ts +3 -3
  100. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.js +193 -0
  101. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.js.map +7 -0
  102. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.ts +203 -0
  103. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/types.d.js.map +7 -0
  104. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/types.d.ts +36 -0
  105. package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.js +114 -0
  106. package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.js.map +7 -0
  107. package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.ts +117 -0
  108. package/dpr/utils/TemplateBuilder/ReportBuilder/types.d.js.map +7 -0
  109. package/dpr/utils/TemplateBuilder/ReportBuilder/types.d.ts +6 -0
  110. package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.js +202 -0
  111. package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.js.map +7 -0
  112. package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.ts +246 -0
  113. package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.js +17 -0
  114. package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.js.map +7 -0
  115. package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.ts +41 -0
  116. package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.js → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.js} +6 -8
  117. package/dpr/utils/TemplateBuilder/SummaryDataHelper/SummaryDataHelper.js.map +7 -0
  118. package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.test.ts} +4 -4
  119. package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.ts → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.ts} +6 -9
  120. package/dpr/utils/TemplateBuilder/TemplateBuilder.js +74 -0
  121. package/dpr/utils/TemplateBuilder/TemplateBuilder.js.map +7 -0
  122. package/dpr/utils/TemplateBuilder/TemplateBuilder.ts +68 -0
  123. package/dpr/utils/definitionUtils.js +22 -2
  124. package/dpr/utils/definitionUtils.js.map +2 -2
  125. package/dpr/utils/definitionUtils.ts +26 -1
  126. package/package.json +1 -1
  127. package/dpr/DprLoadingHelper.js +0 -51
  128. package/dpr/DprLoadingHelper.js.map +0 -7
  129. package/dpr/DprLoadingHelper.ts +0 -27
  130. package/dpr/components/_reports/report/view.njk +0 -40
  131. package/dpr/components/_reports/report-actions/clientClass.js.map +0 -7
  132. package/dpr/components/_reports/report-actions/types.d.js.map +0 -7
  133. package/dpr/components/_reports/report-columns-form/clientClass.js.map +0 -7
  134. package/dpr/components/_reports/report-columns-form/utils.js.map +0 -7
  135. package/dpr/components/_reports/report-data-table/clientClass.js.map +0 -7
  136. package/dpr/components/_reports/report-data-table/types.d.js.map +0 -7
  137. package/dpr/components/_reports/report-data-table/utils.js +0 -123
  138. package/dpr/components/_reports/report-data-table/utils.js.map +0 -7
  139. package/dpr/components/_reports/report-data-table/utils.test.ts +0 -604
  140. package/dpr/components/_reports/report-data-table/utils.ts +0 -150
  141. package/dpr/components/_reports/report-data-table/view.njk +0 -24
  142. package/dpr/components/_reports/report-data-table-wrapper/view.njk +0 -27
  143. package/dpr/components/_reports/report-download-message/clientClass.js.map +0 -7
  144. package/dpr/components/_reports/report-no-data-message/styles.scss +0 -4
  145. package/dpr/components/_reports/report-no-data-message/view.njk +0 -13
  146. package/dpr/components/_reports/report-pagination/clientClass.js.map +0 -7
  147. package/dpr/components/_reports/report-print-message/view.njk +0 -8
  148. package/dpr/components/_reports/report-template/view.njk +0 -44
  149. package/dpr/components/_reports/report-wrapper/view.njk +0 -19
  150. package/dpr/components/loading-anim/styles.scss +0 -117
  151. package/dpr/components/loading-anim/view.njk +0 -18
  152. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +0 -7
  153. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +0 -202
  154. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +0 -7
  155. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +0 -503
  156. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +0 -224
  157. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +0 -7
  158. package/dpr/utils/ParentChildDataTableBuilder/types.d.ts +0 -11
  159. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +0 -311
  160. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +0 -7
  161. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +0 -492
  162. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +0 -342
  163. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +0 -7
  164. package/dpr/utils/SectionedDataTableBuilder/types.d.ts +0 -5
  165. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +0 -146
  166. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +0 -7
  167. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +0 -140
  168. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +0 -150
  169. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.js +0 -0
  170. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.ts +0 -0
  171. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/style.scss +0 -0
  172. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/types.d.js +0 -0
  173. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.js +0 -0
  174. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.ts +0 -0
  175. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/view.njk +0 -0
  176. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/style.scss +0 -0
  177. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.js +0 -0
  178. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.ts +0 -0
  179. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/view.njk +0 -0
  180. /package/dpr/components/_reports/{report-columns → report-heading/report-columns}/styles.scss +0 -0
  181. /package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/style.scss +0 -0
  182. /package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/view.njk +0 -0
  183. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/style.scss +0 -0
  184. /package/dpr/components/_reports/{report-data-table → report-page/report-template/report-pagination}/types.d.js +0 -0
  185. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/types.d.ts +0 -0
  186. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.js +0 -0
  187. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.test.ts +0 -0
  188. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.ts +0 -0
  189. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/view.njk +0 -0
  190. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-section/report-data-table}/types.d.js +0 -0
  191. /package/dpr/components/_reports/{report-summary-table → report-page/report-template/report-summary-table}/view.njk +0 -0
  192. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/style.scss +0 -0
  193. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.js +0 -0
  194. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.ts +0 -0
  195. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/view.njk +0 -0
  196. /package/dpr/utils/{ParentChildDataTableBuilder → TemplateBuilder/ParentChildDataBuilder}/types.d.js +0 -0
  197. /package/dpr/utils/{SectionedDataTableBuilder → TemplateBuilder/ReportBuilder}/types.d.js +0 -0
package/dpr/all.ts CHANGED
@@ -4,9 +4,6 @@
4
4
  import dayjs from 'dayjs'
5
5
  import customParse from 'dayjs/plugin/customParseFormat'
6
6
 
7
- // Helper
8
- import DprLoadingHelper from './DprLoadingHelper'
9
-
10
7
  // General Components
11
8
  import CardGroup from './components/card-group/clientClass'
12
9
  import BookmarkToggle from './components/bookmark-toggle/clientClass'
@@ -18,11 +15,11 @@ import UnauthorisedReportsFilter from './components/_catalogue/catalogue-unautho
18
15
  import ReportTypeFilter from './components/_catalogue/catalogue-filter-by-type/clientClass'
19
16
 
20
17
  // Reports
21
- import Pagination from './components/_reports/report-pagination/clientClass'
22
- import ReportActions from './components/_reports/report-actions/clientClass'
23
- import DataTable from './components/_reports/report-data-table/clientClass'
24
- import Columns from './components/_reports/report-columns-form/clientClass'
25
- import DownloadMessage from './components/_reports/report-download-message/clientClass'
18
+ import Pagination from './components/_reports/report-page/report-template/report-pagination/clientClass'
19
+ import ReportActions from './components/_reports/report-heading/report-actions/clientClass'
20
+ import DataTable from './components/_reports/report-page/report-template/report-section/report-data-table/clientClass'
21
+ import Columns from './components/_reports/report-heading/report-columns/report-columns-form/clientClass'
22
+ import DownloadMessage from './components/_reports/report-heading/report-download-message/clientClass'
26
23
 
27
24
  // Filters
28
25
  import InteractiveFilters from './components/_filters/filters-interactive/clientClass'
@@ -64,8 +61,6 @@ import GenericForm from './DprGenericFormClass'
64
61
  *
65
62
  */
66
63
  function initAll() {
67
- const loadingHelper = new DprLoadingHelper()
68
-
69
64
  const components = [
70
65
  Autocomplete,
71
66
  CardGroup,
@@ -102,7 +97,7 @@ function initAll() {
102
97
  const $elements = document.querySelectorAll(`[data-dpr-module="${Component.getModuleName()}"]`)
103
98
  $elements.forEach(async ($element) => {
104
99
  try {
105
- new Component($element, loadingHelper).initialise()
100
+ new Component($element).initialise()
106
101
  } catch (error) {
107
102
  console.log(error)
108
103
  }
@@ -30,7 +30,7 @@ describe('CatalogueUtils', () => {
30
30
  const reportsTableData = await CatalogueUtils.getReportsList(res, services)
31
31
 
32
32
  expect(reportsTableData.head.length).toEqual(4)
33
- expect(reportsTableData.rows.length).toEqual(79)
33
+ expect(reportsTableData.rows.length).toEqual(78)
34
34
  })
35
35
  })
36
36
  })
@@ -77,8 +77,9 @@ class TimeseriesChart {
77
77
  this.hexColours = new import_ChartColours.ChartColours().getHexPallette();
78
78
  for (let index = 0; index < this.datasetCount; index += 1) {
79
79
  const data = this.timeBlockData.map((timeperiod) => {
80
- const { raw } = timeperiod[index][this.measures[1].id];
81
- return raw ? Number(raw) : 0;
80
+ const valueId = this.measures[1].id;
81
+ const period = timeperiod[index];
82
+ return period && period[valueId].raw ? Number(period[valueId].raw) : 0;
82
83
  });
83
84
  const total = data.reduce((a, c) => a + c, 0);
84
85
  const rawValue = this.labelId ? this.timeBlockData[0][index][this.labelId].raw : "";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../dpr/components/_charts/chart/ChartTimeseries.ts"],
4
- "sourcesContent": ["import { components } from '../../../types/api'\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport {\n DashboardVisualisationDataSet,\n TimeseriesChartMeasure,\n VisualisationDefinitionKey,\n} from '../../_dashboards/dashboard-visualisation/types'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport { BarTimeseriesDefinitionMeasure, BarTimeseriesDefinitionType } from './bar-timeseries/types'\nimport { LineTimeseriesDefinitionMeasure, LineTimeseriesDefinitionType } from './line-timeseries/types'\nimport { ChartColours } from './ChartColours'\nimport ChartConfig from './chart-config'\nimport { PartialDate } from '../../_filters/types'\n\nclass TimeseriesChart {\n labels: string[] = []\n\n labelId: string | undefined = undefined\n\n datasets: DashboardVisualisationDataSet[] = []\n\n unit: 'NUMBER' | 'PERCENTAGE' | undefined\n\n responseData: DashboardDataResponse[] = []\n\n measures: TimeseriesChartMeasure = []\n\n keys: VisualisationDefinitionKey[] = []\n\n timeBlockData: DashboardDataResponse[][] = []\n\n groupKey: LineTimeseriesDefinitionMeasure | BarTimeseriesDefinitionMeasure | undefined\n\n datasetCount = 0\n\n hexColours: string[] = []\n\n config = ChartConfig\n\n partialDate: PartialDate | undefined\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.initFromData()\n return this\n }\n\n initFromDefinition = (definition: BarTimeseriesDefinitionType | LineTimeseriesDefinitionType) => {\n this.measures = definition.columns.measures\n this.keys = definition.columns.keys || []\n this.unit = this.measures.find((m) => m.unit)?.unit\n }\n\n withPartialDate = (partialDate?: PartialDate) => {\n this.partialDate = partialDate\n return this\n }\n\n initFromData = () => {\n this.groupKey = DatasetHelper.getGroupKey(\n this.responseData,\n <Array<components['schemas']['DashboardVisualisationColumnDefinition']>>this.keys,\n )\n this.labelId = this.groupKey?.id || ''\n this.timeBlockData = DatasetHelper.groupRowsByTimestamp(this.responseData)\n this.labels = this.getLabels()\n this.datasetCount = this.timeBlockData[0]?.length\n }\n\n buildDatasets = () => {\n this.hexColours = new ChartColours().getHexPallette()\n for (let index = 0; index < this.datasetCount; index += 1) {\n const data = this.timeBlockData.map((timeperiod) => {\n const { raw } = timeperiod[index][this.measures[1].id]\n return raw ? Number(raw) : 0\n })\n const total = data.reduce((a, c) => a + c, 0)\n const rawValue = this.labelId ? this.timeBlockData[0][index][this.labelId].raw : ''\n const label = rawValue ? <string>rawValue : ''\n\n this.datasets.push({\n data,\n label,\n total,\n })\n }\n }\n\n private getLabels = () => {\n return this.timeBlockData.map((d: DashboardDataResponse[]) => <string>d[0]['ts'].raw)\n }\n}\n\nexport { TimeseriesChart }\nexport default TimeseriesChart\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,2BAA0B;AAG1B,0BAA6B;AAC7B,0BAAwB;AAGxB,MAAM,gBAAgB;AAAA,EACpB,SAAmB,CAAC;AAAA,EAEpB,UAA8B;AAAA,EAE9B,WAA4C,CAAC;AAAA,EAE7C;AAAA,EAEA,eAAwC,CAAC;AAAA,EAEzC,WAAmC,CAAC;AAAA,EAEpC,OAAqC,CAAC;AAAA,EAEtC,gBAA2C,CAAC;AAAA,EAE5C;AAAA,EAEA,eAAe;AAAA,EAEf,aAAuB,CAAC;AAAA,EAExB,SAAS,oBAAAA;AAAA,EAET;AAAA,EAEA,WAAW,CAAC,iBAA0C;AACpD,SAAK,eAAe;AACpB,SAAK,aAAa;AAClB,WAAO;AAAA,EACT;AAAA,EAEA,qBAAqB,CAAC,eAA2E;AAC/F,SAAK,WAAW,WAAW,QAAQ;AACnC,SAAK,OAAO,WAAW,QAAQ,QAAQ,CAAC;AACxC,SAAK,OAAO,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG;AAAA,EACjD;AAAA,EAEA,kBAAkB,CAAC,gBAA8B;AAC/C,SAAK,cAAc;AACnB,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,MAAM;AACnB,SAAK,WAAW,qBAAAC,QAAc;AAAA,MAC5B,KAAK;AAAA,MACmE,KAAK;AAAA,IAC/E;AACA,SAAK,UAAU,KAAK,UAAU,MAAM;AACpC,SAAK,gBAAgB,qBAAAA,QAAc,qBAAqB,KAAK,YAAY;AACzE,SAAK,SAAS,KAAK,UAAU;AAC7B,SAAK,eAAe,KAAK,cAAc,CAAC,GAAG;AAAA,EAC7C;AAAA,EAEA,gBAAgB,MAAM;AACpB,SAAK,aAAa,IAAI,iCAAa,EAAE,eAAe;AACpD,aAAS,QAAQ,GAAG,QAAQ,KAAK,cAAc,SAAS,GAAG;AACzD,YAAM,OAAO,KAAK,cAAc,IAAI,CAAC,eAAe;AAClD,cAAM,EAAE,IAAI,IAAI,WAAW,KAAK,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE;AACrD,eAAO,MAAM,OAAO,GAAG,IAAI;AAAA,MAC7B,CAAC;AACD,YAAM,QAAQ,KAAK,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AAC5C,YAAM,WAAW,KAAK,UAAU,KAAK,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM;AACjF,YAAM,QAAQ,WAAmB,WAAW;AAE5C,WAAK,SAAS,KAAK;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEQ,YAAY,MAAM;AACxB,WAAO,KAAK,cAAc,IAAI,CAAC,MAAuC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG;AAAA,EACtF;AACF;AAGA,IAAO,0BAAQ;",
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\n for (let index = 0; index < this.datasetCount; index += 1) {\n const data = this.timeBlockData.map((timeperiod) => {\n const valueId = this.measures[1].id\n const period = timeperiod[index]\n return period && period[valueId].raw ? Number(period[valueId].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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,2BAA0B;AAG1B,0BAA6B;AAC7B,0BAAwB;AAGxB,MAAM,gBAAgB;AAAA,EACpB,SAAmB,CAAC;AAAA,EAEpB,UAA8B;AAAA,EAE9B,WAA4C,CAAC;AAAA,EAE7C;AAAA,EAEA,eAAwC,CAAC;AAAA,EAEzC,WAAmC,CAAC;AAAA,EAEpC,OAAqC,CAAC;AAAA,EAEtC,gBAA2C,CAAC;AAAA,EAE5C;AAAA,EAEA,eAAe;AAAA,EAEf,aAAuB,CAAC;AAAA,EAExB,SAAS,oBAAAA;AAAA,EAET;AAAA,EAEA,WAAW,CAAC,iBAA0C;AACpD,SAAK,eAAe;AACpB,SAAK,aAAa;AAClB,WAAO;AAAA,EACT;AAAA,EAEA,qBAAqB,CAAC,eAA2E;AAC/F,SAAK,WAAW,WAAW,QAAQ;AACnC,SAAK,OAAO,WAAW,QAAQ,QAAQ,CAAC;AACxC,SAAK,OAAO,KAAK,SAAS,KAAK,CAAC,MAAM,EAAE,IAAI,GAAG;AAAA,EACjD;AAAA,EAEA,kBAAkB,CAAC,gBAA8B;AAC/C,SAAK,cAAc;AACnB,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,MAAM;AACnB,SAAK,WAAW,qBAAAC,QAAc;AAAA,MAC5B,KAAK;AAAA,MACmE,KAAK;AAAA,IAC/E;AACA,SAAK,UAAU,KAAK,UAAU,MAAM;AACpC,SAAK,gBAAgB,qBAAAA,QAAc,qBAAqB,KAAK,YAAY;AACzE,SAAK,SAAS,KAAK,UAAU;AAC7B,SAAK,eAAe,KAAK,cAAc,CAAC,GAAG;AAAA,EAC7C;AAAA,EAEA,gBAAgB,MAAM;AACpB,SAAK,aAAa,IAAI,iCAAa,EAAE,eAAe;AAEpD,aAAS,QAAQ,GAAG,QAAQ,KAAK,cAAc,SAAS,GAAG;AACzD,YAAM,OAAO,KAAK,cAAc,IAAI,CAAC,eAAe;AAClD,cAAM,UAAU,KAAK,SAAS,CAAC,EAAE;AACjC,cAAM,SAAS,WAAW,KAAK;AAC/B,eAAO,UAAU,OAAO,OAAO,EAAE,MAAM,OAAO,OAAO,OAAO,EAAE,GAAG,IAAI;AAAA,MACvE,CAAC;AACD,YAAM,QAAQ,KAAK,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AAC5C,YAAM,WAAW,KAAK,UAAU,KAAK,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,MAAM;AACjF,YAAM,QAAQ,WAAmB,WAAW;AAE5C,WAAK,SAAS,KAAK;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEQ,YAAY,MAAM;AACxB,WAAO,KAAK,cAAc,IAAI,CAAC,MAAuC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG;AAAA,EACtF;AACF;AAGA,IAAO,0BAAQ;",
6
6
  "names": ["ChartConfig", "DatasetHelper"]
7
7
  }
@@ -69,10 +69,12 @@ class TimeseriesChart {
69
69
 
70
70
  buildDatasets = () => {
71
71
  this.hexColours = new ChartColours().getHexPallette()
72
+
72
73
  for (let index = 0; index < this.datasetCount; index += 1) {
73
74
  const data = this.timeBlockData.map((timeperiod) => {
74
- const { raw } = timeperiod[index][this.measures[1].id]
75
- return raw ? Number(raw) : 0
75
+ const valueId = this.measures[1].id
76
+ const period = timeperiod[index]
77
+ return period && period[valueId].raw ? Number(period[valueId].raw) : 0
76
78
  })
77
79
  const total = data.reduce((a, c) => a + c, 0)
78
80
  const rawValue = this.labelId ? this.timeBlockData[0][index][this.labelId].raw : ''
@@ -62,6 +62,7 @@ class ChartVisualisation extends import_DprClientClass.DprClientClass {
62
62
  import_auto.default.defaults.font.size = 12;
63
63
  import_auto.default.register(import_chartjs_plugin_datalabels.default);
64
64
  import_auto.default.register(import_chartjs_chart_matrix.MatrixController, import_chartjs_chart_matrix.MatrixElement);
65
+ import_auto.default.defaults.datasets.bar.categoryPercentage = 0.95;
65
66
  this.chart = new import_auto.default(this.chartContext, this.chartData);
66
67
  });
67
68
  this.initChartEvents();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../dpr/components/_charts/chart/clientClass.ts"],
4
- "sourcesContent": ["// @ts-nocheck\n/* eslint-disable class-methods-use-this */\nimport Chart from 'chart.js/auto'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { MatrixController, MatrixElement } from 'chartjs-chart-matrix'\n\nimport { DprClientClass } from '../../../DprClientClass'\n\nclass ChartVisualisation extends DprClientClass {\n setupCanvas() {\n this.chartContext = this.getElement().querySelector('canvas')\n\n // data\n this.id = this.chartContext.getAttribute('id')\n this.chartParams = JSON.parse(this.getElement().getAttribute('data-dpr-chart-data'))\n this.type = this.getElement().getAttribute('data-dpr-chart-type')\n this.setValueSuffix()\n\n // elements\n this.legend = this.getElement().querySelector(`#js-legend-${this.id}`)\n\n // ChartCard elements\n this.tooltipDetailsEl = document.getElementById(`dpr-${this.id}-tooltip-details`)\n this.headlineValuesEl = document.getElementById(`dpr-${this.id}-headline-values`)\n this.labelElement = document.getElementById(`dpr-${this.id}-label`)\n this.valueElement = document.getElementById(`dpr-${this.id}-value`)\n this.legendElement = document.getElementById(`dpr-${this.id}-legend`)\n this.legendElement = document.getElementById(`dpr-${this.id}-legend`)\n\n if (this.chartParams.partialDate) {\n this.partialStart = this.chartParams.partialDate.start || false\n this.partialEnd = this.chartParams.partialDate.end || false\n }\n\n // flags\n this.singleDataset = this.chartParams.datasets.length === 1\n }\n\n initChart() {\n // Prevent font loading issue\n window.addEventListener('load', () => {\n // An example of creating a chart, replace with your code:\n Chart.defaults.font.family = 'GDS Transport'\n Chart.defaults.font.size = 12\n Chart.register(ChartDataLabels)\n Chart.register(MatrixController, MatrixElement)\n this.chart = new Chart(this.chartContext, this.chartData)\n })\n\n this.initChartEvents()\n }\n\n generateChartData(settings) {\n const { datasets, labels, config } = this.chartParams\n const { options, datalabels, plugins, pluginsOptions, toolTipOptions, hoverEvent, styling } = settings\n\n const chartData = {\n type: this.type,\n data: {\n labels,\n datasets: this.createDatasets(datasets, styling),\n },\n options: {\n ...config,\n ...(options && options),\n ...(hoverEvent && hoverEvent),\n plugins: {\n ...config.plugins,\n ...(pluginsOptions && pluginsOptions),\n ...(datalabels && { datalabels }),\n tooltip: {\n ...config.plugins.tooltip,\n ...(toolTipOptions && toolTipOptions),\n },\n },\n },\n plugins: plugins && plugins.length ? [...plugins] : [],\n }\n\n return chartData\n }\n\n createDatasets(datasets, styling) {\n return datasets.map((dataset) => {\n return {\n ...dataset,\n ...(styling && styling),\n }\n })\n }\n\n setHoverValue({ label, value, legend, ctx }) {\n if (ctx.tooltipDetailsEl) {\n ctx.tooltipDetailsEl.style.display = 'block'\n ctx.labelElement.innerHTML = ctx.singleDataset ? `${label}` : `${legend}: ${label}`\n ctx.valueElement.innerHTML = `${value}`\n }\n if (ctx.headlineValuesEl) {\n ctx.headlineValuesEl.style.display = 'none'\n }\n if (!legend) {\n ctx.legendElement.style.display = 'none'\n }\n }\n\n setValueSuffix() {\n this.unit = this.getElement().getAttribute('data-dpr-chart-unit')\n this.suffix = this.unit === 'percentage' ? '%' : ''\n }\n\n isPercentage() {\n return this.unit === 'percentage'\n }\n\n initChartEvents() {\n this.chart.canvas.addEventListener('mouseout', (e) => {\n if (this.tooltipDetailsEl) this.tooltipDetailsEl.style.display = 'none'\n if (this.headlineValuesEl) this.headlineValuesEl.style.display = 'block'\n })\n }\n}\n\nexport { ChartVisualisation }\nexport default ChartVisualisation\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// @ts-nocheck\n/* eslint-disable class-methods-use-this */\nimport Chart from 'chart.js/auto'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { MatrixController, MatrixElement } from 'chartjs-chart-matrix'\n\nimport { DprClientClass } from '../../../DprClientClass'\n\nclass ChartVisualisation extends DprClientClass {\n setupCanvas() {\n this.chartContext = this.getElement().querySelector('canvas')\n\n // data\n this.id = this.chartContext.getAttribute('id')\n this.chartParams = JSON.parse(this.getElement().getAttribute('data-dpr-chart-data'))\n this.type = this.getElement().getAttribute('data-dpr-chart-type')\n this.setValueSuffix()\n\n // elements\n this.legend = this.getElement().querySelector(`#js-legend-${this.id}`)\n\n // ChartCard elements\n this.tooltipDetailsEl = document.getElementById(`dpr-${this.id}-tooltip-details`)\n this.headlineValuesEl = document.getElementById(`dpr-${this.id}-headline-values`)\n this.labelElement = document.getElementById(`dpr-${this.id}-label`)\n this.valueElement = document.getElementById(`dpr-${this.id}-value`)\n this.legendElement = document.getElementById(`dpr-${this.id}-legend`)\n this.legendElement = document.getElementById(`dpr-${this.id}-legend`)\n\n if (this.chartParams.partialDate) {\n this.partialStart = this.chartParams.partialDate.start || false\n this.partialEnd = this.chartParams.partialDate.end || false\n }\n\n // flags\n this.singleDataset = this.chartParams.datasets.length === 1\n }\n\n initChart() {\n // Prevent font loading issue\n window.addEventListener('load', () => {\n // An example of creating a chart, replace with your code:\n Chart.defaults.font.family = 'GDS Transport'\n Chart.defaults.font.size = 12\n Chart.register(ChartDataLabels)\n Chart.register(MatrixController, MatrixElement)\n Chart.defaults.datasets.bar.categoryPercentage = 0.95\n this.chart = new Chart(this.chartContext, this.chartData)\n })\n\n this.initChartEvents()\n }\n\n generateChartData(settings) {\n const { datasets, labels, config } = this.chartParams\n const { options, datalabels, plugins, pluginsOptions, toolTipOptions, hoverEvent, styling } = settings\n\n const chartData = {\n type: this.type,\n data: {\n labels,\n datasets: this.createDatasets(datasets, styling),\n },\n options: {\n ...config,\n ...(options && options),\n ...(hoverEvent && hoverEvent),\n plugins: {\n ...config.plugins,\n ...(pluginsOptions && pluginsOptions),\n ...(datalabels && { datalabels }),\n tooltip: {\n ...config.plugins.tooltip,\n ...(toolTipOptions && toolTipOptions),\n },\n },\n },\n plugins: plugins && plugins.length ? [...plugins] : [],\n }\n\n return chartData\n }\n\n createDatasets(datasets, styling) {\n return datasets.map((dataset) => {\n return {\n ...dataset,\n ...(styling && styling),\n }\n })\n }\n\n setHoverValue({ label, value, legend, ctx }) {\n if (ctx.tooltipDetailsEl) {\n ctx.tooltipDetailsEl.style.display = 'block'\n ctx.labelElement.innerHTML = ctx.singleDataset ? `${label}` : `${legend}: ${label}`\n ctx.valueElement.innerHTML = `${value}`\n }\n if (ctx.headlineValuesEl) {\n ctx.headlineValuesEl.style.display = 'none'\n }\n if (!legend) {\n ctx.legendElement.style.display = 'none'\n }\n }\n\n setValueSuffix() {\n this.unit = this.getElement().getAttribute('data-dpr-chart-unit')\n this.suffix = this.unit === 'percentage' ? '%' : ''\n }\n\n isPercentage() {\n return this.unit === 'percentage'\n }\n\n initChartEvents() {\n this.chart.canvas.addEventListener('mouseout', (e) => {\n if (this.tooltipDetailsEl) this.tooltipDetailsEl.style.display = 'none'\n if (this.headlineValuesEl) this.headlineValuesEl.style.display = 'block'\n })\n }\n}\n\nexport { ChartVisualisation }\nexport default ChartVisualisation\n"],
5
+ "mappings": "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",
6
6
  "names": ["Chart", "ChartDataLabels"]
7
7
  }
@@ -44,6 +44,7 @@ class ChartVisualisation extends DprClientClass {
44
44
  Chart.defaults.font.size = 12
45
45
  Chart.register(ChartDataLabels)
46
46
  Chart.register(MatrixController, MatrixElement)
47
+ Chart.defaults.datasets.bar.categoryPercentage = 0.95
47
48
  this.chart = new Chart(this.chartContext, this.chartData)
48
49
  })
49
50
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../dpr/components/_reports/report-actions/actionsTemplate.ts"],
3
+ "sources": ["../../../../../dpr/components/_reports/report-heading/report-actions/actionsTemplate.ts"],
4
4
  "sourcesContent": ["import { ActionTemplates } from './types'\n\n// eslint-disable-next-line import/prefer-default-export\nexport const actionTemplates: ActionTemplates = {\n refresh: {\n id: 'dpr-button-refresh',\n disabled: false,\n text: 'Refresh',\n ariaLabelText: 'Refresh report',\n },\n printable: {\n id: 'dpr-button-printable',\n disabled: false,\n text: 'Print screen',\n ariaLabelText: 'Print screen',\n },\n sharable: {\n id: 'dpr-button-sharable',\n disabled: true,\n text: 'Email\u00A0report link',\n ariaLabelText: 'Email\u00A0report link',\n },\n copy: {\n id: 'dpr-button-copy',\n disabled: false,\n text: 'Copy report link',\n ariaLabelText: 'Copy report link',\n },\n downloadable: {\n id: 'dpr-button-downloadable',\n disabled: false,\n text: 'Download',\n ariaLabelText: 'download report',\n },\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,kBAAmC;AAAA,EAC9C,SAAS;AAAA,IACP,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,eAAe;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,IACT,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,eAAe;AAAA,EACjB;AAAA,EACA,UAAU;AAAA,IACR,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,eAAe;AAAA,EACjB;AAAA,EACA,MAAM;AAAA,IACJ,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,eAAe;AAAA,EACjB;AAAA,EACA,cAAc;AAAA,IACZ,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,IACN,eAAe;AAAA,EACjB;AACF;",
6
6
  "names": []
@@ -22,7 +22,7 @@ __export(clientClass_exports, {
22
22
  default: () => clientClass_default
23
23
  });
24
24
  module.exports = __toCommonJS(clientClass_exports);
25
- var import_DprClientClass = require("../../../DprClientClass");
25
+ var import_DprClientClass = require("../../../../DprClientClass");
26
26
  class IconButtonList extends import_DprClientClass.DprClientClass {
27
27
  static getModuleName() {
28
28
  return "report-actions";
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../dpr/components/_reports/report-heading/report-actions/clientClass.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport { DprClientClass } from '../../../../DprClientClass'\n\nclass IconButtonList extends DprClientClass {\n static getModuleName() {\n return 'report-actions'\n }\n\n initialise() {\n this.refreshButton = document.getElementById('dpr-button-refresh')\n this.printButton = document.getElementById('dpr-button-printable')\n this.shareButton = document.getElementById('dpr-button-sharable')\n this.downloadButton = document.getElementById('dpr-button-downloadable')\n this.copyButton = document.getElementById('dpr-button-copy')\n\n this.initRefreshEvent()\n this.initPrintButtonEvent()\n this.initShareButtonEvent()\n this.initCopyButtonEvent()\n }\n\n initPrintButtonEvent() {\n if (this.printButton) {\n const disabled = this.printButton.getAttribute('data-disabled')\n this.printButton.addEventListener('click', () => {\n if (disabled !== 'true') {\n window.print()\n }\n })\n\n this.printButton.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n if (disabled !== 'true') {\n window.print()\n }\n }\n })\n }\n }\n\n initShareButtonEvent() {\n if (this.shareButton) {\n const href = this.shareButton.getAttribute('data-href')\n this.shareButton.addEventListener('click', () => {\n window.location = href\n })\n\n this.shareButton.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n window.location = href\n }\n })\n }\n }\n\n initCopyButtonEvent() {\n if (this.copyButton) {\n const href = this.copyButton.getAttribute('data-href')\n this.copyButton.addEventListener('click', () => {\n navigator.clipboard.writeText(href)\n })\n\n this.copyButton.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n navigator.clipboard.writeText(href)\n }\n })\n }\n }\n\n initRefreshEvent() {\n if (this.refreshButton) {\n const href = this.refreshButton.getAttribute('data-href')\n this.refreshButton.addEventListener('click', () => {\n window.location = href\n })\n\n this.refreshButton.addEventListener('keyup', (e) => {\n if (e.key === 'Enter') {\n window.location = href\n }\n })\n }\n }\n}\n\nexport { IconButtonList }\nexport default IconButtonList\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,4BAA+B;AAE/B,MAAM,uBAAuB,qCAAe;AAAA,EAC1C,OAAO,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,SAAK,gBAAgB,SAAS,eAAe,oBAAoB;AACjE,SAAK,cAAc,SAAS,eAAe,sBAAsB;AACjE,SAAK,cAAc,SAAS,eAAe,qBAAqB;AAChE,SAAK,iBAAiB,SAAS,eAAe,yBAAyB;AACvE,SAAK,aAAa,SAAS,eAAe,iBAAiB;AAE3D,SAAK,iBAAiB;AACtB,SAAK,qBAAqB;AAC1B,SAAK,qBAAqB;AAC1B,SAAK,oBAAoB;AAAA,EAC3B;AAAA,EAEA,uBAAuB;AACrB,QAAI,KAAK,aAAa;AACpB,YAAM,WAAW,KAAK,YAAY,aAAa,eAAe;AAC9D,WAAK,YAAY,iBAAiB,SAAS,MAAM;AAC/C,YAAI,aAAa,QAAQ;AACvB,iBAAO,MAAM;AAAA,QACf;AAAA,MACF,CAAC;AAED,WAAK,YAAY,iBAAiB,SAAS,CAAC,MAAM;AAChD,YAAI,EAAE,QAAQ,SAAS;AACrB,cAAI,aAAa,QAAQ;AACvB,mBAAO,MAAM;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,uBAAuB;AACrB,QAAI,KAAK,aAAa;AACpB,YAAM,OAAO,KAAK,YAAY,aAAa,WAAW;AACtD,WAAK,YAAY,iBAAiB,SAAS,MAAM;AAC/C,eAAO,WAAW;AAAA,MACpB,CAAC;AAED,WAAK,YAAY,iBAAiB,SAAS,CAAC,MAAM;AAChD,YAAI,EAAE,QAAQ,SAAS;AACrB,iBAAO,WAAW;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,sBAAsB;AACpB,QAAI,KAAK,YAAY;AACnB,YAAM,OAAO,KAAK,WAAW,aAAa,WAAW;AACrD,WAAK,WAAW,iBAAiB,SAAS,MAAM;AAC9C,kBAAU,UAAU,UAAU,IAAI;AAAA,MACpC,CAAC;AAED,WAAK,WAAW,iBAAiB,SAAS,CAAC,MAAM;AAC/C,YAAI,EAAE,QAAQ,SAAS;AACrB,oBAAU,UAAU,UAAU,IAAI;AAAA,QACpC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,mBAAmB;AACjB,QAAI,KAAK,eAAe;AACtB,YAAM,OAAO,KAAK,cAAc,aAAa,WAAW;AACxD,WAAK,cAAc,iBAAiB,SAAS,MAAM;AACjD,eAAO,WAAW;AAAA,MACpB,CAAC;AAED,WAAK,cAAc,iBAAiB,SAAS,CAAC,MAAM;AAClD,YAAI,EAAE,QAAQ,SAAS;AACrB,iBAAO,WAAW;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAGA,IAAO,sBAAQ;",
6
+ "names": []
7
+ }
@@ -1,5 +1,5 @@
1
1
  // @ts-nocheck
2
- import { DprClientClass } from '../../../DprClientClass'
2
+ import { DprClientClass } from '../../../../DprClientClass'
3
3
 
4
4
  class IconButtonList extends DprClientClass {
5
5
  static getModuleName() {
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../dpr/components/_reports/report-heading/report-actions/types.d.ts"],
4
+ "sourcesContent": ["import { LoadType, ReportType } from '../../../../types/UserReports'\n\nexport interface DownloadActionParams {\n enabled: boolean\n csrfToken: string\n reportId: string\n reportName: string\n name: string\n id: string\n tableId?: string\n columns: string[]\n definitionPath: string\n canDownload: boolean\n loadType: LoadType\n currentUrl: string\n currentQueryParams?: string | undefined\n nestedBaseUrl: string\n sortColumn?: string\n sortedAsc?: string\n}\n\nexport interface ShareActionParams {\n reportName: string\n name: string\n url: string\n}\n\nexport interface RefreshActionParams {\n url: string\n executionId: string\n}\n\nexport interface PrintActionParams {\n enabled: boolean\n}\n\nexport interface CopyActionParams {\n url: string\n}\n\nexport interface GetActionsParams {\n refresh?: RefreshActionParams\n print?: PrintActionParams\n copy?: CopyActionParams\n share?: ShareActionParams\n download?: DownloadActionParams\n}\n\nexport interface ActionTemplate {\n id: string\n disabled: boolean\n text: string\n ariaLabelText: string\n}\n\nexport interface ActionTemplates {\n refresh: ActionTemplate\n printable: ActionTemplate\n sharable: ActionTemplate\n copy: ActionTemplate\n downloadable: ActionTemplate\n}\n\nexport interface ReportAction {\n id: string\n disabled: boolean\n text: string\n ariaLabelText: string\n href?: string\n attributes?: {\n reportId?: string\n id?: string\n csrfToken?: string\n tableId?: string\n type?: ReportType\n reportName?: string\n name?: string\n columns: string[]\n definitionPath: string\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,4 +1,4 @@
1
- import { LoadType, ReportType } from '../../../types/UserReports'
1
+ import { LoadType, ReportType } from '../../../../types/UserReports'
2
2
 
3
3
  export interface DownloadActionParams {
4
4
  enabled: boolean
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../dpr/components/_reports/report-actions/utils.ts"],
3
+ "sources": ["../../../../../dpr/components/_reports/report-heading/report-actions/utils.ts"],
4
4
  "sourcesContent": ["import {\n ActionTemplate,\n CopyActionParams,\n DownloadActionParams,\n GetActionsParams,\n PrintActionParams,\n RefreshActionParams,\n ReportAction,\n ShareActionParams,\n} from './types'\nimport { actionTemplates } from './actionsTemplate'\n\nexport const getActions = ({ refresh, print, share, copy, download }: GetActionsParams): ReportAction[] => {\n const actions: ReportAction[] = []\n\n if (refresh && refresh.url && refresh.executionId) {\n actions.push(setRefreshAction(actionTemplates.refresh, refresh))\n }\n\n if (print) {\n actions.push(setPrintAction(actionTemplates.printable, print))\n }\n\n if (share) {\n actions.push(setShareAction(actionTemplates.sharable, share))\n }\n\n if (copy) {\n actions.push(setCopyAction(actionTemplates.copy, copy))\n }\n\n if (download) {\n actions.push(setDownloadAction(actionTemplates.downloadable, download))\n }\n\n return actions\n}\n\nconst setRefreshAction = (template: ActionTemplate, data: RefreshActionParams) => {\n const { url: href } = data\n\n return {\n ...template,\n href,\n }\n}\n\nconst setShareAction = (template: ActionTemplate, data: ShareActionParams) => {\n const { reportName, name, url } = data\n const href = `mailto:?subject=${reportName}-${name}&body=${encodeURIComponent(url)}`\n\n return {\n ...template,\n href,\n }\n}\n\nconst setCopyAction = (template: ActionTemplate, data: CopyActionParams) => {\n const { url: href } = data\n\n return {\n ...template,\n href,\n }\n}\n\nconst setDownloadAction = (template: ActionTemplate, data: DownloadActionParams) => {\n const { canDownload, enabled } = data\n const { text, ariaLabelText } = template\n\n const ariaLabel = canDownload ? ariaLabelText : 'Enable download'\n\n return {\n ...template,\n text: canDownload ? text : 'Enable download',\n disabled: !enabled,\n attributes: {\n ...data,\n },\n ariaLabelText: !enabled ? `${ariaLabel}, disabled` : ariaLabel,\n }\n}\n\nconst setPrintAction = (template: ActionTemplate, data: PrintActionParams) => {\n const { enabled } = data\n const { ariaLabelText } = template\n\n return {\n ...template,\n disabled: !enabled,\n href: '#',\n ariaLabelText: !enabled ? `${ariaLabelText}, disabled` : ariaLabelText,\n }\n}\n\nexport default {\n getActions,\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,6BAAgC;AAEzB,MAAM,aAAa,CAAC,EAAE,SAAS,OAAO,OAAO,MAAM,SAAS,MAAwC;AACzG,QAAM,UAA0B,CAAC;AAEjC,MAAI,WAAW,QAAQ,OAAO,QAAQ,aAAa;AACjD,YAAQ,KAAK,iBAAiB,uCAAgB,SAAS,OAAO,CAAC;AAAA,EACjE;AAEA,MAAI,OAAO;AACT,YAAQ,KAAK,eAAe,uCAAgB,WAAW,KAAK,CAAC;AAAA,EAC/D;AAEA,MAAI,OAAO;AACT,YAAQ,KAAK,eAAe,uCAAgB,UAAU,KAAK,CAAC;AAAA,EAC9D;AAEA,MAAI,MAAM;AACR,YAAQ,KAAK,cAAc,uCAAgB,MAAM,IAAI,CAAC;AAAA,EACxD;AAEA,MAAI,UAAU;AACZ,YAAQ,KAAK,kBAAkB,uCAAgB,cAAc,QAAQ,CAAC;AAAA,EACxE;AAEA,SAAO;AACT;AAEA,MAAM,mBAAmB,CAAC,UAA0B,SAA8B;AAChF,QAAM,EAAE,KAAK,KAAK,IAAI;AAEtB,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EACF;AACF;AAEA,MAAM,iBAAiB,CAAC,UAA0B,SAA4B;AAC5E,QAAM,EAAE,YAAY,MAAM,IAAI,IAAI;AAClC,QAAM,OAAO,mBAAmB,UAAU,IAAI,IAAI,SAAS,mBAAmB,GAAG,CAAC;AAElF,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EACF;AACF;AAEA,MAAM,gBAAgB,CAAC,UAA0B,SAA2B;AAC1E,QAAM,EAAE,KAAK,KAAK,IAAI;AAEtB,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,EACF;AACF;AAEA,MAAM,oBAAoB,CAAC,UAA0B,SAA+B;AAClF,QAAM,EAAE,aAAa,QAAQ,IAAI;AACjC,QAAM,EAAE,MAAM,cAAc,IAAI;AAEhC,QAAM,YAAY,cAAc,gBAAgB;AAEhD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,MAAM,cAAc,OAAO;AAAA,IAC3B,UAAU,CAAC;AAAA,IACX,YAAY;AAAA,MACV,GAAG;AAAA,IACL;AAAA,IACA,eAAe,CAAC,UAAU,GAAG,SAAS,eAAe;AAAA,EACvD;AACF;AAEA,MAAM,iBAAiB,CAAC,UAA0B,SAA4B;AAC5E,QAAM,EAAE,QAAQ,IAAI;AACpB,QAAM,EAAE,cAAc,IAAI;AAE1B,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,CAAC;AAAA,IACX,MAAM;AAAA,IACN,eAAe,CAAC,UAAU,GAAG,aAAa,eAAe;AAAA,EAC3D;AACF;AAEA,IAAO,gBAAQ;AAAA,EACb;AACF;",
6
6
  "names": []
@@ -1,5 +1,5 @@
1
1
  import { expect } from '@jest/globals'
2
- import { LoadType } from '../../../types/UserReports'
2
+ import { LoadType } from '../../../../types/UserReports'
3
3
  import {
4
4
  CopyActionParams,
5
5
  DownloadActionParams,
@@ -8,7 +8,7 @@ import {
8
8
  ShareActionParams,
9
9
  } from './types'
10
10
  import ReportActionsUtils from './utils'
11
- import { Columns } from '../report-columns-form/types'
11
+ import { Columns } from '../report-columns/report-columns-form/types'
12
12
 
13
13
  describe('ReportActionsUtils', () => {
14
14
  describe('getActions', () => {
@@ -32,7 +32,7 @@ __export(clientClass_exports, {
32
32
  default: () => clientClass_default
33
33
  });
34
34
  module.exports = __toCommonJS(clientClass_exports);
35
- var import_DprQueryParamClass = __toESM(require("../../../DprQueryParamClass"));
35
+ var import_DprQueryParamClass = __toESM(require("../../../../../DprQueryParamClass"));
36
36
  class Columns extends import_DprQueryParamClass.default {
37
37
  static getModuleName() {
38
38
  return "columns";
@@ -51,7 +51,6 @@ class Columns extends import_DprQueryParamClass.default {
51
51
  initSubmitButton() {
52
52
  this.submitButton.addEventListener("click", (e) => {
53
53
  e.preventDefault();
54
- this.loadingHelper.showLoadingAnimation();
55
54
  if (this.embbeddedReportList) {
56
55
  window.location.reload();
57
56
  } else {
@@ -62,7 +61,6 @@ class Columns extends import_DprQueryParamClass.default {
62
61
  initResetButton() {
63
62
  this.resetButton.addEventListener("click", (e) => {
64
63
  e.preventDefault();
65
- this.loadingHelper.showLoadingAnimation();
66
64
  this.clearQueryParams("columns");
67
65
  window.location.reload();
68
66
  });
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../dpr/components/_reports/report-heading/report-columns/report-columns-form/clientClass.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport DprQueryParamClass from '../../../../../DprQueryParamClass'\n\nclass Columns extends DprQueryParamClass {\n static getModuleName() {\n return 'columns'\n }\n\n initialise() {\n this.form = this.getElement()\n this.embbeddedReportList = document.getElementById('dpr-embedded-report-list')\n this.submitButton = this.getElement().querySelector('.dpr-apply-columns-button')\n this.resetButton = this.getElement().querySelector('.dpr-reset-columns-button')\n\n this.initInputsFromQueryParams()\n this.initQueryParamsFromInputs(this.form.elements)\n this.initInputEvents(this.form.elements)\n\n this.initSubmitButton()\n this.initResetButton()\n }\n\n initSubmitButton() {\n this.submitButton.addEventListener('click', (e) => {\n e.preventDefault()\n\n if (this.embbeddedReportList) {\n window.location.reload()\n } else {\n this.form.requestSubmit()\n }\n })\n }\n\n initResetButton() {\n this.resetButton.addEventListener('click', (e) => {\n e.preventDefault()\n this.clearQueryParams('columns')\n window.location.reload()\n })\n }\n}\n\nexport { Columns }\nexport default Columns\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gCAA+B;AAE/B,MAAM,gBAAgB,0BAAAA,QAAmB;AAAA,EACvC,OAAO,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,SAAK,OAAO,KAAK,WAAW;AAC5B,SAAK,sBAAsB,SAAS,eAAe,0BAA0B;AAC7E,SAAK,eAAe,KAAK,WAAW,EAAE,cAAc,2BAA2B;AAC/E,SAAK,cAAc,KAAK,WAAW,EAAE,cAAc,2BAA2B;AAE9E,SAAK,0BAA0B;AAC/B,SAAK,0BAA0B,KAAK,KAAK,QAAQ;AACjD,SAAK,gBAAgB,KAAK,KAAK,QAAQ;AAEvC,SAAK,iBAAiB;AACtB,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,mBAAmB;AACjB,SAAK,aAAa,iBAAiB,SAAS,CAAC,MAAM;AACjD,QAAE,eAAe;AAEjB,UAAI,KAAK,qBAAqB;AAC5B,eAAO,SAAS,OAAO;AAAA,MACzB,OAAO;AACL,aAAK,KAAK,cAAc;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,kBAAkB;AAChB,SAAK,YAAY,iBAAiB,SAAS,CAAC,MAAM;AAChD,QAAE,eAAe;AACjB,WAAK,iBAAiB,SAAS;AAC/B,aAAO,SAAS,OAAO;AAAA,IACzB,CAAC;AAAA,EACH;AACF;AAGA,IAAO,sBAAQ;",
6
+ "names": ["DprQueryParamClass"]
7
+ }
@@ -1,5 +1,5 @@
1
1
  // @ts-nocheck
2
- import DprQueryParamClass from '../../../DprQueryParamClass'
2
+ import DprQueryParamClass from '../../../../../DprQueryParamClass'
3
3
 
4
4
  class Columns extends DprQueryParamClass {
5
5
  static getModuleName() {
@@ -23,7 +23,6 @@ class Columns extends DprQueryParamClass {
23
23
  initSubmitButton() {
24
24
  this.submitButton.addEventListener('click', (e) => {
25
25
  e.preventDefault()
26
- this.loadingHelper.showLoadingAnimation()
27
26
 
28
27
  if (this.embbeddedReportList) {
29
28
  window.location.reload()
@@ -36,7 +35,6 @@ class Columns extends DprQueryParamClass {
36
35
  initResetButton() {
37
36
  this.resetButton.addEventListener('click', (e) => {
38
37
  e.preventDefault()
39
- this.loadingHelper.showLoadingAnimation()
40
38
  this.clearQueryParams('columns')
41
39
  window.location.reload()
42
40
  })
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../dpr/components/_reports/report-columns-form/types.d.ts"],
3
+ "sources": ["../../../../../../dpr/components/_reports/report-heading/report-columns/report-columns-form/types.d.ts"],
4
4
  "sourcesContent": ["export interface Column {\n text: string\n value: string\n disabled: boolean\n}\n\nexport interface Columns {\n name: string\n options: Column[]\n text: string\n value: string[]\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
@@ -24,7 +24,7 @@ __export(utils_exports, {
24
24
  mandatoryColumns: () => mandatoryColumns
25
25
  });
26
26
  module.exports = __toCommonJS(utils_exports);
27
- var import_arrayUtils = require("../../../utils/arrayUtils");
27
+ var import_arrayUtils = require("../../../../../utils/arrayUtils");
28
28
  const mandatoryColumns = (fields) => fields.filter((field) => field.mandatory).map((field) => field.name);
29
29
  const visibleColumns = (fields) => fields.filter((field) => field.visible).map((field) => field.name);
30
30
  const ensureMandatoryColumns = (fields, queryColumns) => {
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../dpr/components/_reports/report-heading/report-columns/report-columns-form/utils.ts"],
4
+ "sourcesContent": ["import { Request } from 'express'\nimport { components } from '../../../../../types/api'\nimport { Column, Columns } from './types'\nimport { distinct } from '../../../../../utils/arrayUtils'\n\nexport const mandatoryColumns = (fields: Array<components['schemas']['FieldDefinition']>) =>\n fields.filter((field) => field.mandatory).map((field) => field.name)\n\nconst visibleColumns = (fields: Array<components['schemas']['FieldDefinition']>) =>\n fields.filter((field) => field.visible).map((field) => field.name)\n\nexport const ensureMandatoryColumns = (\n fields: Array<components['schemas']['FieldDefinition']>,\n queryColumns?: string[] | string,\n) => {\n let queryCols\n if (queryColumns) {\n queryCols = Array.isArray(queryColumns) ? queryColumns : [queryColumns]\n }\n const visibleCols = visibleColumns(fields)\n const mandatoryCols = mandatoryColumns(fields)\n\n const columns = queryCols || visibleCols\n return [...mandatoryCols, ...columns].reduce(distinct, [])\n}\n\n/**\n * Converts the columns from a DPD into a column readable format\n *\n * @param specification\n * @param requestedColumns\n */\nexport const getColumns = (specification: components['schemas']['Specification'], req: Request): Columns => {\n const requestedColumns = <string[] | string | undefined>req.query['columns']\n const { fields } = specification\n\n const options: Column[] = fields\n .filter((field) => !specification.sections || !specification.sections.includes(field.name))\n .map((field) => ({\n text: field.display,\n value: field.name,\n disabled: field.mandatory,\n }))\n\n return {\n name: 'columns',\n options,\n text: 'Select report columns',\n value: ensureMandatoryColumns(fields, requestedColumns),\n }\n}\n\nexport default {\n getColumns,\n ensureMandatoryColumns,\n mandatoryColumns,\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAyB;AAElB,MAAM,mBAAmB,CAAC,WAC/B,OAAO,OAAO,CAAC,UAAU,MAAM,SAAS,EAAE,IAAI,CAAC,UAAU,MAAM,IAAI;AAErE,MAAM,iBAAiB,CAAC,WACtB,OAAO,OAAO,CAAC,UAAU,MAAM,OAAO,EAAE,IAAI,CAAC,UAAU,MAAM,IAAI;AAE5D,MAAM,yBAAyB,CACpC,QACA,iBACG;AACH,MAAI;AACJ,MAAI,cAAc;AAChB,gBAAY,MAAM,QAAQ,YAAY,IAAI,eAAe,CAAC,YAAY;AAAA,EACxE;AACA,QAAM,cAAc,eAAe,MAAM;AACzC,QAAM,gBAAgB,iBAAiB,MAAM;AAE7C,QAAM,UAAU,aAAa;AAC7B,SAAO,CAAC,GAAG,eAAe,GAAG,OAAO,EAAE,OAAO,4BAAU,CAAC,CAAC;AAC3D;AAQO,MAAM,aAAa,CAAC,eAAuD,QAA0B;AAC1G,QAAM,mBAAkD,IAAI,MAAM,SAAS;AAC3E,QAAM,EAAE,OAAO,IAAI;AAEnB,QAAM,UAAoB,OACvB,OAAO,CAAC,UAAU,CAAC,cAAc,YAAY,CAAC,cAAc,SAAS,SAAS,MAAM,IAAI,CAAC,EACzF,IAAI,CAAC,WAAW;AAAA,IACf,MAAM,MAAM;AAAA,IACZ,OAAO,MAAM;AAAA,IACb,UAAU,MAAM;AAAA,EAClB,EAAE;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM;AAAA,IACN,OAAO,uBAAuB,QAAQ,gBAAgB;AAAA,EACxD;AACF;AAEA,IAAO,gBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AACF;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { Request } from 'express'
2
- import { components } from '../../../types/api'
2
+ import { components } from '../../../../../types/api'
3
3
  import { Column, Columns } from './types'
4
- import { distinct } from '../../../utils/arrayUtils'
4
+ import { distinct } from '../../../../../utils/arrayUtils'
5
5
 
6
6
  export const mandatoryColumns = (fields: Array<components['schemas']['FieldDefinition']>) =>
7
7
  fields.filter((field) => field.mandatory).map((field) => field.name)
@@ -1,4 +1,4 @@
1
- {% from "../report-columns-form/view.njk" import dprColumnsForm %}
1
+ {% from "./report-columns-form/view.njk" import dprColumnsForm %}
2
2
  {% from "govuk/components/details/macro.njk" import govukDetails %}
3
3
 
4
4
  {% macro dprReportColumns(columns, csrfToken) %}
@@ -22,7 +22,7 @@ __export(clientClass_exports, {
22
22
  default: () => clientClass_default
23
23
  });
24
24
  module.exports = __toCommonJS(clientClass_exports);
25
- var import_DprClientClass = require("../../../DprClientClass");
25
+ var import_DprClientClass = require("../../../../DprClientClass");
26
26
  class DownloadMessage extends import_DprClientClass.DprClientClass {
27
27
  static getModuleName() {
28
28
  return "download-message";
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../dpr/components/_reports/report-heading/report-download-message/clientClass.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport { DprClientClass } from '../../../../DprClientClass'\n\nclass DownloadMessage extends DprClientClass {\n static getModuleName() {\n return 'download-message'\n }\n\n initialise() {\n this.downloadMessage = this.getElement()\n if (window.location.href.indexOf('download-disabled') > -1) {\n this.downloadMessage.classList.remove('dpr-download-message--hidden')\n }\n }\n}\n\nexport { DownloadMessage }\nexport default DownloadMessage\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,4BAA+B;AAE/B,MAAM,wBAAwB,qCAAe;AAAA,EAC3C,OAAO,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,SAAK,kBAAkB,KAAK,WAAW;AACvC,QAAI,OAAO,SAAS,KAAK,QAAQ,mBAAmB,IAAI,IAAI;AAC1D,WAAK,gBAAgB,UAAU,OAAO,8BAA8B;AAAA,IACtE;AAAA,EACF;AACF;AAGA,IAAO,sBAAQ;",
6
+ "names": []
7
+ }
@@ -1,5 +1,5 @@
1
1
  // @ts-nocheck
2
- import { DprClientClass } from '../../../DprClientClass'
2
+ import { DprClientClass } from '../../../../DprClientClass'
3
3
 
4
4
  class DownloadMessage extends DprClientClass {
5
5
  static getModuleName() {
@@ -1,4 +1,4 @@
1
- {% from "../../_filters/filters-interactive/view.njk" import dprInteractiveFilters %}
1
+ {% from "../../../_filters/filters-interactive/view.njk" import dprInteractiveFilters %}
2
2
 
3
3
  {% macro dprReportFilters(filterData, defaultQuery, csrfToken) %}
4
4
  {% set templateArgs = {
@@ -1,7 +1,7 @@
1
- {% from "../report-actions/view.njk" import dprReportActions %}
2
- {% from "../report-download-message/view.njk" import dprDownloadMessage %}
3
- {% from "../report-columns/view.njk" import dprReportColumns %}
4
- {% from "../report-filters/view.njk" import dprReportFilters %}
1
+ {% from "./report-actions/view.njk" import dprReportActions %}
2
+ {% from "./report-download-message/view.njk" import dprDownloadMessage %}
3
+ {% from "./report-columns/view.njk" import dprReportColumns %}
4
+ {% from "./report-filters/view.njk" import dprReportFilters %}
5
5
 
6
6
  {% from "../../bookmark-toggle/view.njk" import dprBookmarkToggle %}
7
7
  {% from "../../_async/request-details/view.njk" import dprRequestDetails %}
@@ -0,0 +1,10 @@
1
+ {% from "govuk/components/button/macro.njk" import govukButton %}
2
+
3
+ {% macro dprReportPrintMessage(printable) %}
4
+ {% if (printable == false) %}
5
+ <h3 class="govuk-heading-s screen-hide">
6
+ Printing this report has been disabled due to time or content sensitivity.<br/>
7
+ Please speak to your report administrator for further details.
8
+ </h3>
9
+ {% endif %}
10
+ {% endmacro %}
@@ -0,0 +1,8 @@
1
+ .dpr-report-no-data-message {
2
+ text-align: left;
3
+ margin-top: govuk-spacing(6);
4
+
5
+ p {
6
+ margin-bottom: govuk-spacing(3);
7
+ }
8
+ }
@@ -0,0 +1,11 @@
1
+
2
+ {% from "govuk/components/button/macro.njk" import govukButton %}
3
+
4
+ {% macro dprReportNoDataMessage(href) %}
5
+ <div class="dpr-report-no-data-message">
6
+ <p class="govuk-body-l"><strong>No data to display</strong></p>
7
+ {% if href %}
8
+ <a href={{ href }} class='govuk-link govuk-link--no-visited-state' >Make a new request</a>
9
+ {% endif %}
10
+ </div>
11
+ {% endmacro %}
@@ -32,7 +32,7 @@ __export(clientClass_exports, {
32
32
  default: () => clientClass_default
33
33
  });
34
34
  module.exports = __toCommonJS(clientClass_exports);
35
- var import_DprQueryParamClass = __toESM(require("../../../DprQueryParamClass"));
35
+ var import_DprQueryParamClass = __toESM(require("../../../../../DprQueryParamClass"));
36
36
  class Pagination extends import_DprQueryParamClass.default {
37
37
  static getModuleName() {
38
38
  return "pagination";
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../dpr/components/_reports/report-page/report-template/report-pagination/clientClass.ts"],
4
+ "sourcesContent": ["// @ts-nocheck\nimport DprQueryParamClass from '../../../../../DprQueryParamClass'\n\nclass Pagination extends DprQueryParamClass {\n static getModuleName() {\n return 'pagination'\n }\n\n initialise() {\n this.pageSizeSelect = document.getElementById('page-size-select')\n\n this.initInputsFromQueryParams()\n this.initSelectEvent()\n }\n\n initSelectEvent() {\n this.pageSizeSelect.addEventListener('change', () => {\n this.queryParams = new URLSearchParams(window.location.search)\n const { name, value } = this.pageSizeSelect\n this.queryParams.set(name, value)\n this.queryParams.set('selectedPage', '1')\n window.history.replaceState(null, null, `?${this.queryParams.toString()}`)\n window.location.reload()\n })\n }\n}\n\nexport { Pagination }\nexport default Pagination\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gCAA+B;AAE/B,MAAM,mBAAmB,0BAAAA,QAAmB;AAAA,EAC1C,OAAO,gBAAgB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,SAAK,iBAAiB,SAAS,eAAe,kBAAkB;AAEhE,SAAK,0BAA0B;AAC/B,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,kBAAkB;AAChB,SAAK,eAAe,iBAAiB,UAAU,MAAM;AACnD,WAAK,cAAc,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC7D,YAAM,EAAE,MAAM,MAAM,IAAI,KAAK;AAC7B,WAAK,YAAY,IAAI,MAAM,KAAK;AAChC,WAAK,YAAY,IAAI,gBAAgB,GAAG;AACxC,aAAO,QAAQ,aAAa,MAAM,MAAM,IAAI,KAAK,YAAY,SAAS,CAAC,EAAE;AACzE,aAAO,SAAS,OAAO;AAAA,IACzB,CAAC;AAAA,EACH;AACF;AAGA,IAAO,sBAAQ;",
6
+ "names": ["DprQueryParamClass"]
7
+ }
@@ -1,5 +1,5 @@
1
1
  // @ts-nocheck
2
- import DprQueryParamClass from '../../../DprQueryParamClass'
2
+ import DprQueryParamClass from '../../../../../DprQueryParamClass'
3
3
 
4
4
  class Pagination extends DprQueryParamClass {
5
5
  static getModuleName() {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../dpr/components/_reports/report-pagination/types.d.ts"],
3
+ "sources": ["../../../../../../dpr/components/_reports/report-page/report-template/report-pagination/types.d.ts"],
4
4
  "sourcesContent": ["export interface Page {\n number?: number\n current?: boolean\n href?: string\n ellipsis?: boolean\n}\n\nexport interface Pagination {\n next?: string | undefined\n prev?: string | undefined\n pages: Page[]\n pageSize: number\n currentPage: number\n totalRows: number\n sizes: PageSize[]\n}\n\nexport interface PageSize {\n value: number\n text: string\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../dpr/components/_reports/report-pagination/utils.ts"],
3
+ "sources": ["../../../../../../dpr/components/_reports/report-page/report-template/report-pagination/utils.ts"],
4
4
  "sourcesContent": ["import { Url } from 'url'\nimport type { Request } from 'express'\nimport { Page, PageSize, Pagination } from './types'\n\nconst SELECTED_PAGE_PARAM = 'selectedPage'\nconst PAGE_SIZE_PARAM = 'pageSize'\nconst DEFAULT_PAGE = 1\nconst DEFAULT_PAGE_SIZE = 20\n\n/**\n * Creates the pages for the pagination component\n *\n * @param {string} pathname\n * @param {string} search\n * @param {number} totalRows\n * @param pageSize\n * @param currentPage\n * @return {*} {{ pages: page[]; pagesLength: number }}\n */\nconst createPages = (\n pathname: string,\n queryParams: URLSearchParams,\n totalRows: number,\n pageSize: number,\n currentPage: number,\n): { pages: Page[]; pagesLength: number } => {\n const pagesLength = Math.ceil(totalRows / pageSize)\n\n const pages: Page[] = []\n Array(pagesLength)\n .fill(0)\n .forEach((_, index: number) => {\n const pageNumber = index + 1\n queryParams.set(SELECTED_PAGE_PARAM, `${pageNumber}`)\n\n if (\n pageNumber === 1 ||\n pageNumber === pagesLength ||\n (pageNumber >= currentPage - 1 && pageNumber <= currentPage + 1)\n ) {\n pages.push({\n number: pageNumber,\n href: `${pathname}?${queryParams.toString()}`,\n current: pageNumber === currentPage,\n })\n } else if (pageNumber === 2 || pageNumber === pagesLength - 1) {\n pages.push({ ellipsis: true })\n }\n })\n\n return {\n pages,\n pagesLength,\n }\n}\n\n/**\n * Creates the next link\n *\n * @param {string} pathname\n * @param {string} search\n * @param {number} lastPage\n * @param totalRows\n * @param currentPage\n * @return {*} {(string | undefined)}\n */\nconst createNext = (\n pathname: string,\n search: string,\n lastPage: number,\n totalRows: number,\n currentPage: number,\n): string | undefined => {\n const queryParams = new URLSearchParams(search)\n\n if (totalRows > 0) {\n if (currentPage === lastPage) {\n return undefined\n }\n\n const nextPage = currentPage + 1\n queryParams.set(SELECTED_PAGE_PARAM, `${nextPage}`)\n return `${pathname}?${queryParams.toString()}`\n }\n return undefined\n}\n\n/**\n * Creates the previous link\n *\n * @param {string} pathname\n * @param {string} search\n * @param currentPage\n * @return {*} {(string | undefined)}\n */\nconst createPrev = (pathname: string, search: string, currentPage: number): string | undefined => {\n const queryParams = new URLSearchParams(search)\n\n if (currentPage === 1) {\n return undefined\n }\n\n const prevPage = currentPage - 1\n queryParams.set(SELECTED_PAGE_PARAM, `${prevPage}`)\n return `${pathname}?${queryParams.toString()}`\n}\n\n/**\n * Set the select items for the page size component\n *\n * @param {number} totalRows\n * @return {*}\n */\nconst setPageSizes = (totalRows: number): PageSize[] => {\n const pageSizes = [10, 20, 100, 200, totalRows]\n return pageSizes.map((size, i) => {\n if (i === pageSizes.length - 1) {\n return { value: totalRows, text: 'All' }\n }\n return { value: size, text: size.toString() }\n })\n}\n\n/**\n * Init pagination\n *\n * @return {*}\n */\nexport const getPaginationData = (url: Url, totalRows: number, req: Request): Pagination => {\n const search = url.search || ''\n const pathname = search ? req.originalUrl.split(search)[0] : req.originalUrl\n const queryParams = new URLSearchParams(search)\n\n const pageSizeParam = queryParams.get(PAGE_SIZE_PARAM)\n const currentPageParam = queryParams.get(SELECTED_PAGE_PARAM)\n const pageSize = pageSizeParam ? Number(pageSizeParam) : DEFAULT_PAGE_SIZE\n const currentPage = currentPageParam ? Number(currentPageParam) : DEFAULT_PAGE\n\n const { pages, pagesLength } = createPages(pathname, queryParams, totalRows, Number(pageSize), currentPage)\n return {\n next: createNext(pathname, search, pagesLength, totalRows, currentPage),\n prev: createPrev(pathname, search, currentPage),\n pages,\n pageSize,\n currentPage,\n totalRows,\n sizes: setPageSizes(totalRows),\n }\n}\n\nexport default {\n getPaginationData,\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,MAAM,sBAAsB;AAC5B,MAAM,kBAAkB;AACxB,MAAM,eAAe;AACrB,MAAM,oBAAoB;AAY1B,MAAM,cAAc,CAClB,UACA,aACA,WACA,UACA,gBAC2C;AAC3C,QAAM,cAAc,KAAK,KAAK,YAAY,QAAQ;AAElD,QAAM,QAAgB,CAAC;AACvB,QAAM,WAAW,EACd,KAAK,CAAC,EACN,QAAQ,CAAC,GAAG,UAAkB;AAC7B,UAAM,aAAa,QAAQ;AAC3B,gBAAY,IAAI,qBAAqB,GAAG,UAAU,EAAE;AAEpD,QACE,eAAe,KACf,eAAe,eACd,cAAc,cAAc,KAAK,cAAc,cAAc,GAC9D;AACA,YAAM,KAAK;AAAA,QACT,QAAQ;AAAA,QACR,MAAM,GAAG,QAAQ,IAAI,YAAY,SAAS,CAAC;AAAA,QAC3C,SAAS,eAAe;AAAA,MAC1B,CAAC;AAAA,IACH,WAAW,eAAe,KAAK,eAAe,cAAc,GAAG;AAC7D,YAAM,KAAK,EAAE,UAAU,KAAK,CAAC;AAAA,IAC/B;AAAA,EACF,CAAC;AAEH,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAYA,MAAM,aAAa,CACjB,UACA,QACA,UACA,WACA,gBACuB;AACvB,QAAM,cAAc,IAAI,gBAAgB,MAAM;AAE9C,MAAI,YAAY,GAAG;AACjB,QAAI,gBAAgB,UAAU;AAC5B,aAAO;AAAA,IACT;AAEA,UAAM,WAAW,cAAc;AAC/B,gBAAY,IAAI,qBAAqB,GAAG,QAAQ,EAAE;AAClD,WAAO,GAAG,QAAQ,IAAI,YAAY,SAAS,CAAC;AAAA,EAC9C;AACA,SAAO;AACT;AAUA,MAAM,aAAa,CAAC,UAAkB,QAAgB,gBAA4C;AAChG,QAAM,cAAc,IAAI,gBAAgB,MAAM;AAE9C,MAAI,gBAAgB,GAAG;AACrB,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,cAAc;AAC/B,cAAY,IAAI,qBAAqB,GAAG,QAAQ,EAAE;AAClD,SAAO,GAAG,QAAQ,IAAI,YAAY,SAAS,CAAC;AAC9C;AAQA,MAAM,eAAe,CAAC,cAAkC;AACtD,QAAM,YAAY,CAAC,IAAI,IAAI,KAAK,KAAK,SAAS;AAC9C,SAAO,UAAU,IAAI,CAAC,MAAM,MAAM;AAChC,QAAI,MAAM,UAAU,SAAS,GAAG;AAC9B,aAAO,EAAE,OAAO,WAAW,MAAM,MAAM;AAAA,IACzC;AACA,WAAO,EAAE,OAAO,MAAM,MAAM,KAAK,SAAS,EAAE;AAAA,EAC9C,CAAC;AACH;AAOO,MAAM,oBAAoB,CAAC,KAAU,WAAmB,QAA6B;AAC1F,QAAM,SAAS,IAAI,UAAU;AAC7B,QAAM,WAAW,SAAS,IAAI,YAAY,MAAM,MAAM,EAAE,CAAC,IAAI,IAAI;AACjE,QAAM,cAAc,IAAI,gBAAgB,MAAM;AAE9C,QAAM,gBAAgB,YAAY,IAAI,eAAe;AACrD,QAAM,mBAAmB,YAAY,IAAI,mBAAmB;AAC5D,QAAM,WAAW,gBAAgB,OAAO,aAAa,IAAI;AACzD,QAAM,cAAc,mBAAmB,OAAO,gBAAgB,IAAI;AAElE,QAAM,EAAE,OAAO,YAAY,IAAI,YAAY,UAAU,aAAa,WAAW,OAAO,QAAQ,GAAG,WAAW;AAC1G,SAAO;AAAA,IACL,MAAM,WAAW,UAAU,QAAQ,aAAa,WAAW,WAAW;AAAA,IACtE,MAAM,WAAW,UAAU,QAAQ,WAAW;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,aAAa,SAAS;AAAA,EAC/B;AACF;AAEA,IAAO,gBAAQ;AAAA,EACb;AACF;",
6
6
  "names": []