@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.28.7 → 4.29.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.
- package/dpr/all.js +6 -8
- package/dpr/all.js.map +3 -3
- package/dpr/all.scss +296 -414
- package/dpr/all.ts +6 -11
- package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -1
- package/dpr/components/_charts/chart/clientClass.js +1 -0
- package/dpr/components/_charts/chart/clientClass.js.map +2 -2
- package/dpr/components/_charts/chart/clientClass.ts +1 -0
- package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.js.map +1 -1
- package/dpr/components/_reports/{report-actions → report-heading/report-actions}/clientClass.js +1 -1
- package/dpr/components/_reports/report-heading/report-actions/clientClass.js.map +7 -0
- package/dpr/components/_reports/{report-actions → report-heading/report-actions}/clientClass.ts +1 -1
- package/dpr/components/_reports/report-heading/report-actions/types.d.js.map +7 -0
- package/dpr/components/_reports/{report-actions → report-heading/report-actions}/types.d.ts +1 -1
- package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.js.map +1 -1
- package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.test.ts +2 -2
- package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/clientClass.js +1 -3
- package/dpr/components/_reports/report-heading/report-columns/report-columns-form/clientClass.js.map +7 -0
- package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/clientClass.ts +1 -3
- package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.js.map +1 -1
- package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/utils.js +1 -1
- package/dpr/components/_reports/report-heading/report-columns/report-columns-form/utils.js.map +7 -0
- package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/utils.ts +2 -2
- package/dpr/components/_reports/{report-columns → report-heading/report-columns}/view.njk +1 -1
- package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/clientClass.js +1 -1
- package/dpr/components/_reports/report-heading/report-download-message/clientClass.js.map +7 -0
- package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/clientClass.ts +1 -1
- package/dpr/components/_reports/{report-filters → report-heading/report-filters}/view.njk +1 -1
- package/dpr/components/_reports/report-heading/view.njk +4 -4
- package/dpr/components/_reports/report-page/report-print-message/view.njk +10 -0
- package/dpr/components/_reports/report-page/report-template/report-no-data-message/styles.scss +8 -0
- package/dpr/components/_reports/report-page/report-template/report-no-data-message/view.njk +11 -0
- package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/clientClass.js +1 -1
- package/dpr/components/_reports/report-page/report-template/report-pagination/clientClass.js.map +7 -0
- package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/clientClass.ts +1 -1
- package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/types.d.js.map +1 -1
- package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.js.map +1 -1
- package/dpr/components/_reports/report-page/report-template/report-section/parent-child-template/styles.scss +88 -0
- package/dpr/components/_reports/report-page/report-template/report-section/parent-child-template/view.njk +29 -0
- package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/clientClass.js +17 -10
- package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/clientClass.js.map +7 -0
- package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/clientClass.ts +20 -10
- package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/style.scss +35 -185
- package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/types.d.js.map +7 -0
- package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/types.d.ts +2 -2
- package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/view.njk +27 -0
- package/dpr/components/_reports/report-page/report-template/report-section/styles.scss +33 -0
- package/dpr/components/_reports/report-page/report-template/report-section/view.njk +58 -0
- package/dpr/components/_reports/{report-summary-table → report-page/report-template/report-summary-table}/styles.scss +21 -4
- package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.js.map +1 -1
- package/dpr/components/_reports/report-page/report-template/styles.scss +5 -0
- package/dpr/components/_reports/report-page/report-template/template-config.js +66 -0
- package/dpr/components/_reports/report-page/report-template/template-config.js.map +7 -0
- package/dpr/components/_reports/report-page/report-template/template-config.ts +45 -0
- package/dpr/components/_reports/report-page/report-template/utils.js +82 -0
- package/dpr/components/_reports/report-page/report-template/utils.js.map +7 -0
- package/dpr/components/_reports/report-page/report-template/utils.ts +100 -0
- package/dpr/components/_reports/report-page/report-template/view.njk +61 -0
- package/dpr/components/_reports/{report-wrapper → report-page}/styles.scss +7 -5
- package/dpr/components/_reports/report-page/view.njk +26 -0
- package/dpr/components/card-group/view.njk +0 -4
- package/dpr/components/report-list/utils.js +11 -3
- package/dpr/components/report-list/utils.js.map +2 -2
- package/dpr/components/report-list/utils.ts +11 -1
- package/dpr/components/report-list/view.njk +2 -2
- package/dpr/components/show-more/style.scss +3 -4
- package/dpr/data/reportingClient.js.map +2 -2
- package/dpr/data/reportingClient.ts +4 -4
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +1 -1
- package/dpr/routes/journeys/view-report/async/report/controller.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/controller.ts +0 -1
- package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js +207 -56
- package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/report-variants.cy.ts +333 -64
- package/dpr/routes/journeys/view-report/async/report/utils.js +9 -17
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/utils.ts +12 -22
- package/dpr/routes/journeys/view-report/report.njk +2 -2
- package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +2 -2
- package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/utils.ts +2 -2
- package/dpr/routes/journeys/view-report/sync/report/utils.js +38 -11
- package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/report/utils.ts +39 -14
- package/dpr/routes/journeys/view-report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/utils.ts +1 -1
- package/dpr/services/reportingService.js.map +2 -2
- package/dpr/services/reportingService.ts +2 -2
- package/dpr/types/ReportQuery.js +1 -1
- package/dpr/types/ReportQuery.js.map +1 -1
- package/dpr/types/ReportQuery.ts +1 -1
- package/dpr/types/UserReports.js.map +1 -1
- package/dpr/types/UserReports.ts +3 -3
- package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.js +193 -0
- package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.js.map +7 -0
- package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.ts +203 -0
- package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/types.d.js.map +7 -0
- package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/types.d.ts +36 -0
- package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.js +114 -0
- package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.js.map +7 -0
- package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.ts +117 -0
- package/dpr/utils/TemplateBuilder/ReportBuilder/types.d.js.map +7 -0
- package/dpr/utils/TemplateBuilder/ReportBuilder/types.d.ts +6 -0
- package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.js +202 -0
- package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.js.map +7 -0
- package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.ts +246 -0
- package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.js +17 -0
- package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.js.map +7 -0
- package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.ts +41 -0
- package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.js → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.js} +6 -8
- package/dpr/utils/TemplateBuilder/SummaryDataHelper/SummaryDataHelper.js.map +7 -0
- package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.test.ts} +4 -4
- package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.ts → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.ts} +6 -9
- package/dpr/utils/TemplateBuilder/TemplateBuilder.js +74 -0
- package/dpr/utils/TemplateBuilder/TemplateBuilder.js.map +7 -0
- package/dpr/utils/TemplateBuilder/TemplateBuilder.ts +68 -0
- package/dpr/utils/definitionUtils.js +22 -2
- package/dpr/utils/definitionUtils.js.map +2 -2
- package/dpr/utils/definitionUtils.ts +26 -1
- package/package.json +1 -1
- package/dpr/DprLoadingHelper.js +0 -51
- package/dpr/DprLoadingHelper.js.map +0 -7
- package/dpr/DprLoadingHelper.ts +0 -27
- package/dpr/components/_reports/report/view.njk +0 -40
- package/dpr/components/_reports/report-actions/clientClass.js.map +0 -7
- package/dpr/components/_reports/report-actions/types.d.js.map +0 -7
- package/dpr/components/_reports/report-columns-form/clientClass.js.map +0 -7
- package/dpr/components/_reports/report-columns-form/utils.js.map +0 -7
- package/dpr/components/_reports/report-data-table/clientClass.js.map +0 -7
- package/dpr/components/_reports/report-data-table/types.d.js.map +0 -7
- package/dpr/components/_reports/report-data-table/utils.js +0 -123
- package/dpr/components/_reports/report-data-table/utils.js.map +0 -7
- package/dpr/components/_reports/report-data-table/utils.test.ts +0 -604
- package/dpr/components/_reports/report-data-table/utils.ts +0 -150
- package/dpr/components/_reports/report-data-table/view.njk +0 -24
- package/dpr/components/_reports/report-data-table-wrapper/view.njk +0 -27
- package/dpr/components/_reports/report-download-message/clientClass.js.map +0 -7
- package/dpr/components/_reports/report-no-data-message/styles.scss +0 -4
- package/dpr/components/_reports/report-no-data-message/view.njk +0 -13
- package/dpr/components/_reports/report-pagination/clientClass.js.map +0 -7
- package/dpr/components/_reports/report-print-message/view.njk +0 -8
- package/dpr/components/_reports/report-template/view.njk +0 -44
- package/dpr/components/_reports/report-wrapper/view.njk +0 -19
- package/dpr/components/loading-anim/styles.scss +0 -117
- package/dpr/components/loading-anim/view.njk +0 -18
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +0 -7
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +0 -202
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +0 -7
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +0 -503
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +0 -224
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +0 -7
- package/dpr/utils/ParentChildDataTableBuilder/types.d.ts +0 -11
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +0 -311
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +0 -7
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +0 -492
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +0 -342
- package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +0 -7
- package/dpr/utils/SectionedDataTableBuilder/types.d.ts +0 -5
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +0 -146
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +0 -7
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +0 -140
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +0 -150
- /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.js +0 -0
- /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.ts +0 -0
- /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/style.scss +0 -0
- /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/types.d.js +0 -0
- /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.js +0 -0
- /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.ts +0 -0
- /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/view.njk +0 -0
- /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/style.scss +0 -0
- /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.js +0 -0
- /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.ts +0 -0
- /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/view.njk +0 -0
- /package/dpr/components/_reports/{report-columns → report-heading/report-columns}/styles.scss +0 -0
- /package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/style.scss +0 -0
- /package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/view.njk +0 -0
- /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/style.scss +0 -0
- /package/dpr/components/_reports/{report-data-table → report-page/report-template/report-pagination}/types.d.js +0 -0
- /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/types.d.ts +0 -0
- /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.js +0 -0
- /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.test.ts +0 -0
- /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.ts +0 -0
- /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/view.njk +0 -0
- /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-section/report-data-table}/types.d.js +0 -0
- /package/dpr/components/_reports/{report-summary-table → report-page/report-template/report-summary-table}/view.njk +0 -0
- /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/style.scss +0 -0
- /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.js +0 -0
- /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.ts +0 -0
- /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/view.njk +0 -0
- /package/dpr/utils/{ParentChildDataTableBuilder → TemplateBuilder/ParentChildDataBuilder}/types.d.js +0 -0
- /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
|
|
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(
|
|
33
|
+
expect(reportsTableData.rows.length).toEqual(78)
|
|
34
34
|
})
|
|
35
35
|
})
|
|
36
36
|
})
|
|
@@ -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": ["
|
|
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": []
|
package/dpr/components/_reports/{report-actions → report-heading/report-actions}/clientClass.js
RENAMED
|
@@ -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("
|
|
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
|
+
}
|
|
@@ -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
|
+
}
|
package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.js.map
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
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": []
|
package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.test.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expect } from '@jest/globals'
|
|
2
|
-
import { LoadType } from '
|
|
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("
|
|
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
|
});
|
package/dpr/components/_reports/report-heading/report-columns/report-columns-form/clientClass.js.map
ADDED
|
@@ -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 '
|
|
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": ["
|
|
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("
|
|
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) => {
|
package/dpr/components/_reports/report-heading/report-columns/report-columns-form/utils.js.map
ADDED
|
@@ -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 '
|
|
2
|
+
import { components } from '../../../../../types/api'
|
|
3
3
|
import { Column, Columns } from './types'
|
|
4
|
-
import { distinct } from '
|
|
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)
|
|
@@ -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("
|
|
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,4 +1,4 @@
|
|
|
1
|
-
{% from "
|
|
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 "
|
|
2
|
-
{% from "
|
|
3
|
-
{% from "
|
|
4
|
-
{% from "
|
|
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,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("
|
|
35
|
+
var import_DprQueryParamClass = __toESM(require("../../../../../DprQueryParamClass"));
|
|
36
36
|
class Pagination extends import_DprQueryParamClass.default {
|
|
37
37
|
static getModuleName() {
|
|
38
38
|
return "pagination";
|
package/dpr/components/_reports/report-page/report-template/report-pagination/clientClass.js.map
ADDED
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
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": ["
|
|
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": []
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
.dpr-parent-child-data {
|
|
2
|
+
padding-bottom: govuk-spacing(4);
|
|
3
|
+
|
|
4
|
+
.govuk-table {
|
|
5
|
+
tr:last-child {
|
|
6
|
+
td {
|
|
7
|
+
border-bottom: none;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.dpr-parent-child-data__parent {
|
|
13
|
+
margin-bottom: govuk-spacing(3);
|
|
14
|
+
|
|
15
|
+
.govuk-table {
|
|
16
|
+
margin-bottom: govuk-spacing(0);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.dpr-parent-child-data__child {
|
|
21
|
+
.dpr-parent-child-data__child-table {
|
|
22
|
+
padding: govuk-spacing(3);
|
|
23
|
+
padding-top: govuk-spacing(1);
|
|
24
|
+
padding-bottom: govuk-spacing(1);
|
|
25
|
+
|
|
26
|
+
.govuk-table {
|
|
27
|
+
margin-bottom: 0px;
|
|
28
|
+
|
|
29
|
+
tr:last-child {
|
|
30
|
+
td {
|
|
31
|
+
border-bottom: none;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
margin-bottom: govuk-spacing(6);
|
|
38
|
+
border: solid 1px #b1b4b6;
|
|
39
|
+
border-left: solid 4px govuk-colour('light-blue');
|
|
40
|
+
|
|
41
|
+
h2 {
|
|
42
|
+
background-color: #f3f2f1;
|
|
43
|
+
margin-bottom: 0px;
|
|
44
|
+
padding: govuk-spacing(2);
|
|
45
|
+
padding-left: govuk-spacing(3);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@media print {
|
|
51
|
+
.dpr-parent-child-data {
|
|
52
|
+
padding-bottom: govuk-spacing(2);
|
|
53
|
+
|
|
54
|
+
.dpr-parent-child-data__parent {
|
|
55
|
+
.dpr-table-container {
|
|
56
|
+
.dpr-table-wrapper {
|
|
57
|
+
.govuk-table__cell--content.print-header-footer--footer {
|
|
58
|
+
display: none;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.dpr-parent-child-data__child {
|
|
65
|
+
.dpr-parent-child-data__child-table {
|
|
66
|
+
padding: govuk-spacing(1);
|
|
67
|
+
padding-bottom: 0px;
|
|
68
|
+
padding-top: 0px;
|
|
69
|
+
|
|
70
|
+
.dpr-table-container {
|
|
71
|
+
.dpr-table-wrapper {
|
|
72
|
+
.govuk-table__cell--content.print-header-footer {
|
|
73
|
+
display: none;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
border-left: solid 1px govuk-colour('mid-grey');
|
|
80
|
+
margin-bottom: govuk-spacing(2);
|
|
81
|
+
|
|
82
|
+
h2 {
|
|
83
|
+
font-size: 12px;
|
|
84
|
+
padding: govuk-spacing(1);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{% from "govuk/components/table/macro.njk" import govukTable %}
|
|
2
|
+
{% from "../report-data-table/view.njk" import dprDataTable %}
|
|
3
|
+
|
|
4
|
+
{% macro dprParentChildTemplate(data, classification, template, lableId) %}
|
|
5
|
+
<div class="dpr-parent-child-group" aria-labelledby="{{ lableId }}">
|
|
6
|
+
{% for dataset in data %}
|
|
7
|
+
{% set parent = dataset.parent %}
|
|
8
|
+
{% set children = dataset.children %}
|
|
9
|
+
{% set parentLabelId = "parent-id-" + loop.index %}
|
|
10
|
+
|
|
11
|
+
<div id="dpr-parent-child-data-{{ loop.index }}" class="dpr-parent-child-data" aria-labelledby="{{ parentLabelId }}">
|
|
12
|
+
<h2 id="{{ parentLabelId }}" class="govuk-visually-hidden">Parent {{ loop.index }}</h2>
|
|
13
|
+
<div class="dpr-parent-child-data__parent">
|
|
14
|
+
{{ dprDataTable(parent, classification, template, parentLabelId, loop.index) }}
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
{% for child in children %}
|
|
18
|
+
{% set childLabelId = "child-id-" + loop.index %}
|
|
19
|
+
<div id="dpr-parent-child-data__child-{{ loop.index }}" class="dpr-parent-child-data__child" aria-labelledby="{{ childLabelId }}">
|
|
20
|
+
<h2 id="{{ childLabelId }}" class="govuk-heading-s">{{ child.title }}</h2>
|
|
21
|
+
<div class="dpr-parent-child-data__child-table">
|
|
22
|
+
{{ dprDataTable(child, classification, template, childLabelId, loop.index) }}
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
{% endfor %}
|
|
26
|
+
</div>
|
|
27
|
+
{% endfor %}
|
|
28
|
+
</div>
|
|
29
|
+
{% endmacro %}
|