@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.28.8 → 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.
Files changed (194) 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/clientClass.js +1 -0
  7. package/dpr/components/_charts/chart/clientClass.js.map +2 -2
  8. package/dpr/components/_charts/chart/clientClass.ts +1 -0
  9. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.js.map +1 -1
  10. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/clientClass.js +1 -1
  11. package/dpr/components/_reports/report-heading/report-actions/clientClass.js.map +7 -0
  12. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/clientClass.ts +1 -1
  13. package/dpr/components/_reports/report-heading/report-actions/types.d.js.map +7 -0
  14. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/types.d.ts +1 -1
  15. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.js.map +1 -1
  16. package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.test.ts +2 -2
  17. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/clientClass.js +1 -3
  18. package/dpr/components/_reports/report-heading/report-columns/report-columns-form/clientClass.js.map +7 -0
  19. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/clientClass.ts +1 -3
  20. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.js.map +1 -1
  21. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/utils.js +1 -1
  22. package/dpr/components/_reports/report-heading/report-columns/report-columns-form/utils.js.map +7 -0
  23. package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/utils.ts +2 -2
  24. package/dpr/components/_reports/{report-columns → report-heading/report-columns}/view.njk +1 -1
  25. package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/clientClass.js +1 -1
  26. package/dpr/components/_reports/report-heading/report-download-message/clientClass.js.map +7 -0
  27. package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/clientClass.ts +1 -1
  28. package/dpr/components/_reports/{report-filters → report-heading/report-filters}/view.njk +1 -1
  29. package/dpr/components/_reports/report-heading/view.njk +4 -4
  30. package/dpr/components/_reports/report-page/report-print-message/view.njk +10 -0
  31. package/dpr/components/_reports/report-page/report-template/report-no-data-message/styles.scss +8 -0
  32. package/dpr/components/_reports/report-page/report-template/report-no-data-message/view.njk +11 -0
  33. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/clientClass.js +1 -1
  34. package/dpr/components/_reports/report-page/report-template/report-pagination/clientClass.js.map +7 -0
  35. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/clientClass.ts +1 -1
  36. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/types.d.js.map +1 -1
  37. package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.js.map +1 -1
  38. package/dpr/components/_reports/report-page/report-template/report-section/parent-child-template/styles.scss +88 -0
  39. package/dpr/components/_reports/report-page/report-template/report-section/parent-child-template/view.njk +29 -0
  40. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/clientClass.js +17 -10
  41. package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/clientClass.js.map +7 -0
  42. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/clientClass.ts +20 -10
  43. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/style.scss +35 -185
  44. package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/types.d.js.map +7 -0
  45. package/dpr/components/_reports/{report-data-table → report-page/report-template/report-section/report-data-table}/types.d.ts +2 -2
  46. package/dpr/components/_reports/report-page/report-template/report-section/report-data-table/view.njk +27 -0
  47. package/dpr/components/_reports/report-page/report-template/report-section/styles.scss +33 -0
  48. package/dpr/components/_reports/report-page/report-template/report-section/view.njk +58 -0
  49. package/dpr/components/_reports/{report-summary-table → report-page/report-template/report-summary-table}/styles.scss +21 -4
  50. package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.js.map +1 -1
  51. package/dpr/components/_reports/report-page/report-template/styles.scss +5 -0
  52. package/dpr/components/_reports/report-page/report-template/template-config.js +66 -0
  53. package/dpr/components/_reports/report-page/report-template/template-config.js.map +7 -0
  54. package/dpr/components/_reports/report-page/report-template/template-config.ts +45 -0
  55. package/dpr/components/_reports/report-page/report-template/utils.js +82 -0
  56. package/dpr/components/_reports/report-page/report-template/utils.js.map +7 -0
  57. package/dpr/components/_reports/report-page/report-template/utils.ts +100 -0
  58. package/dpr/components/_reports/report-page/report-template/view.njk +61 -0
  59. package/dpr/components/_reports/{report-wrapper → report-page}/styles.scss +7 -5
  60. package/dpr/components/_reports/report-page/view.njk +26 -0
  61. package/dpr/components/card-group/view.njk +0 -4
  62. package/dpr/components/report-list/utils.js +11 -3
  63. package/dpr/components/report-list/utils.js.map +2 -2
  64. package/dpr/components/report-list/utils.ts +11 -1
  65. package/dpr/components/report-list/view.njk +2 -2
  66. package/dpr/components/show-more/style.scss +3 -4
  67. package/dpr/data/reportingClient.js.map +2 -2
  68. package/dpr/data/reportingClient.ts +4 -4
  69. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  70. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +1 -1
  71. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +1 -1
  72. package/dpr/routes/journeys/view-report/async/report/controller.js.map +2 -2
  73. package/dpr/routes/journeys/view-report/async/report/controller.ts +0 -1
  74. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js +207 -56
  75. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +2 -2
  76. package/dpr/routes/journeys/view-report/async/report/report-variants.cy.ts +333 -64
  77. package/dpr/routes/journeys/view-report/async/report/utils.js +9 -17
  78. package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
  79. package/dpr/routes/journeys/view-report/async/report/utils.ts +12 -22
  80. package/dpr/routes/journeys/view-report/report.njk +2 -2
  81. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +1 -1
  82. package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +1 -1
  83. package/dpr/routes/journeys/view-report/sync/dashboard/utils.ts +1 -1
  84. package/dpr/routes/journeys/view-report/sync/report/utils.js +38 -11
  85. package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
  86. package/dpr/routes/journeys/view-report/sync/report/utils.ts +39 -14
  87. package/dpr/routes/journeys/view-report/utils.js +1 -1
  88. package/dpr/routes/journeys/view-report/utils.js.map +1 -1
  89. package/dpr/routes/journeys/view-report/utils.ts +1 -1
  90. package/dpr/services/reportingService.js.map +2 -2
  91. package/dpr/services/reportingService.ts +2 -2
  92. package/dpr/types/ReportQuery.js +1 -1
  93. package/dpr/types/ReportQuery.js.map +1 -1
  94. package/dpr/types/ReportQuery.ts +1 -1
  95. package/dpr/types/UserReports.js.map +1 -1
  96. package/dpr/types/UserReports.ts +3 -3
  97. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.js +193 -0
  98. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.js.map +7 -0
  99. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/ParentChildDataBuilder.ts +203 -0
  100. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/types.d.js.map +7 -0
  101. package/dpr/utils/TemplateBuilder/ParentChildDataBuilder/types.d.ts +36 -0
  102. package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.js +114 -0
  103. package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.js.map +7 -0
  104. package/dpr/utils/TemplateBuilder/ReportBuilder/ReportBuilder.ts +117 -0
  105. package/dpr/utils/TemplateBuilder/ReportBuilder/types.d.js.map +7 -0
  106. package/dpr/utils/TemplateBuilder/ReportBuilder/types.d.ts +6 -0
  107. package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.js +202 -0
  108. package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.js.map +7 -0
  109. package/dpr/utils/TemplateBuilder/SectionedDataHelper/SectionedDataHelper.ts +246 -0
  110. package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.js +17 -0
  111. package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.js.map +7 -0
  112. package/dpr/utils/TemplateBuilder/SectionedDataHelper/types.ts +41 -0
  113. package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.js → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.js} +6 -8
  114. package/dpr/utils/TemplateBuilder/SummaryDataHelper/SummaryDataHelper.js.map +7 -0
  115. package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.test.ts} +4 -4
  116. package/dpr/utils/{CollatedSummaryBuilder/CollatedSummaryBuilder.ts → TemplateBuilder/SummaryDataHelper/SummaryDataHelper.ts} +6 -9
  117. package/dpr/utils/TemplateBuilder/TemplateBuilder.js +74 -0
  118. package/dpr/utils/TemplateBuilder/TemplateBuilder.js.map +7 -0
  119. package/dpr/utils/TemplateBuilder/TemplateBuilder.ts +68 -0
  120. package/dpr/utils/definitionUtils.js +22 -2
  121. package/dpr/utils/definitionUtils.js.map +2 -2
  122. package/dpr/utils/definitionUtils.ts +26 -1
  123. package/package.json +1 -1
  124. package/dpr/DprLoadingHelper.js +0 -51
  125. package/dpr/DprLoadingHelper.js.map +0 -7
  126. package/dpr/DprLoadingHelper.ts +0 -27
  127. package/dpr/components/_reports/report/view.njk +0 -40
  128. package/dpr/components/_reports/report-actions/clientClass.js.map +0 -7
  129. package/dpr/components/_reports/report-actions/types.d.js.map +0 -7
  130. package/dpr/components/_reports/report-columns-form/clientClass.js.map +0 -7
  131. package/dpr/components/_reports/report-columns-form/utils.js.map +0 -7
  132. package/dpr/components/_reports/report-data-table/clientClass.js.map +0 -7
  133. package/dpr/components/_reports/report-data-table/types.d.js.map +0 -7
  134. package/dpr/components/_reports/report-data-table/utils.js +0 -123
  135. package/dpr/components/_reports/report-data-table/utils.js.map +0 -7
  136. package/dpr/components/_reports/report-data-table/utils.test.ts +0 -604
  137. package/dpr/components/_reports/report-data-table/utils.ts +0 -150
  138. package/dpr/components/_reports/report-data-table/view.njk +0 -24
  139. package/dpr/components/_reports/report-data-table-wrapper/view.njk +0 -27
  140. package/dpr/components/_reports/report-download-message/clientClass.js.map +0 -7
  141. package/dpr/components/_reports/report-no-data-message/styles.scss +0 -4
  142. package/dpr/components/_reports/report-no-data-message/view.njk +0 -13
  143. package/dpr/components/_reports/report-pagination/clientClass.js.map +0 -7
  144. package/dpr/components/_reports/report-print-message/view.njk +0 -8
  145. package/dpr/components/_reports/report-template/view.njk +0 -44
  146. package/dpr/components/_reports/report-wrapper/view.njk +0 -19
  147. package/dpr/components/loading-anim/styles.scss +0 -117
  148. package/dpr/components/loading-anim/view.njk +0 -18
  149. package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +0 -7
  150. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +0 -202
  151. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +0 -7
  152. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +0 -503
  153. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +0 -224
  154. package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +0 -7
  155. package/dpr/utils/ParentChildDataTableBuilder/types.d.ts +0 -11
  156. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +0 -311
  157. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +0 -7
  158. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +0 -492
  159. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +0 -342
  160. package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +0 -7
  161. package/dpr/utils/SectionedDataTableBuilder/types.d.ts +0 -5
  162. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +0 -146
  163. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +0 -7
  164. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +0 -140
  165. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +0 -150
  166. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.js +0 -0
  167. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/actionsTemplate.ts +0 -0
  168. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/style.scss +0 -0
  169. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/types.d.js +0 -0
  170. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.js +0 -0
  171. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/utils.ts +0 -0
  172. /package/dpr/components/_reports/{report-actions → report-heading/report-actions}/view.njk +0 -0
  173. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/style.scss +0 -0
  174. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.js +0 -0
  175. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/types.d.ts +0 -0
  176. /package/dpr/components/_reports/{report-columns-form → report-heading/report-columns/report-columns-form}/view.njk +0 -0
  177. /package/dpr/components/_reports/{report-columns → report-heading/report-columns}/styles.scss +0 -0
  178. /package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/style.scss +0 -0
  179. /package/dpr/components/_reports/{report-download-message → report-heading/report-download-message}/view.njk +0 -0
  180. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/style.scss +0 -0
  181. /package/dpr/components/_reports/{report-data-table → report-page/report-template/report-pagination}/types.d.js +0 -0
  182. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/types.d.ts +0 -0
  183. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.js +0 -0
  184. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.test.ts +0 -0
  185. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/utils.ts +0 -0
  186. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-pagination}/view.njk +0 -0
  187. /package/dpr/components/_reports/{report-pagination → report-page/report-template/report-section/report-data-table}/types.d.js +0 -0
  188. /package/dpr/components/_reports/{report-summary-table → report-page/report-template/report-summary-table}/view.njk +0 -0
  189. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/style.scss +0 -0
  190. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.js +0 -0
  191. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/utils.ts +0 -0
  192. /package/dpr/components/_reports/{report-totals → report-page/report-template/report-totals}/view.njk +0 -0
  193. /package/dpr/utils/{ParentChildDataTableBuilder → TemplateBuilder/ParentChildDataBuilder}/types.d.js +0 -0
  194. /package/dpr/utils/{SectionedDataTableBuilder → TemplateBuilder/ReportBuilder}/types.d.js +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../dpr/components/_reports/report-data-table/utils.ts"],
4
- "sourcesContent": ["import { components } from '../../../types/api'\nimport Dict = NodeJS.Dict\nimport ReportQuery from '../../../types/ReportQuery'\nimport { AsyncSummary } from '../../../types/UserReports'\nimport CollatedSummaryBuilder from '../../../utils/CollatedSummaryBuilder/CollatedSummaryBuilder'\nimport DataTableBuilder from '../../../utils/DataTableBuilder/DataTableBuilder'\nimport { Columns } from '../report-columns-form/types'\nimport { ChildData } from '../../../utils/ParentChildDataTableBuilder/types'\nimport ParentChildDataTableBuilder from '../../../utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder'\nimport SectionedDataTableBuilder from '../../../utils/SectionedDataTableBuilder/SectionedDataTableBuilder'\nimport SectionedFieldsDataTableBuilder from '../../../utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder'\nimport { DataTable } from '../../../utils/DataTableBuilder/types'\nimport type { Template } from '../../../types/Templates'\n\nconst validateDefinition = (definition: components['schemas']['SingleVariantReportDefinition']) => {\n const { variant } = definition\n const { specification } = variant\n\n if (!specification) {\n throw new Error('No specification in definition')\n }\n\n return { variant, specification }\n}\n\nconst buildListTable = (\n definition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n reportData: Dict<string>[],\n summariesData: AsyncSummary[],\n reportQuery: ReportQuery,\n): DataTable => {\n const { variant, specification } = validateDefinition(definition)\n const { interactive } = variant\n\n const collatedSummaryBuilder = new CollatedSummaryBuilder(specification, summariesData)\n return new DataTableBuilder(specification.fields)\n .withSummaries(collatedSummaryBuilder.collateDataTableSummaries())\n .withHeaderOptions({\n columns: columns.value,\n reportQuery,\n interactive: Boolean(interactive),\n })\n .buildTable(reportData)\n}\n\nconst buildParentChildTable = (\n definition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n reportData: Dict<string>[],\n childData: ChildData[],\n): DataTable => {\n return new ParentChildDataTableBuilder(definition.variant)\n .withNoHeaderOptions(columns.value)\n .withChildData(childData)\n .buildTable(reportData)\n}\n\nconst buildSummarySectionTable = (\n definition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n reportData: Dict<string>[],\n summariesData: AsyncSummary[],\n reportQuery: ReportQuery,\n): DataTable => {\n const { variant, specification } = validateDefinition(definition)\n const { interactive } = variant\n\n const collatedSummaryBuilder = new CollatedSummaryBuilder(specification, summariesData)\n return new SectionedDataTableBuilder(specification)\n .withSummaries(collatedSummaryBuilder.collateDataTableSummaries())\n .withHeaderOptions({\n columns: columns.value,\n reportQuery,\n interactive: Boolean(interactive),\n })\n .buildTable(reportData)\n}\n\nconst buildRowSectionedTable = (\n definition: components['schemas']['SingleVariantReportDefinition'],\n reportData: Dict<string>[],\n childData: ChildData[],\n): DataTable[] => {\n const { variant } = definition\n const { interactive } = variant\n\n return reportData.map((rowData) => {\n return new SectionedFieldsDataTableBuilder(variant)\n .withHeaderOptions({\n columns: new Array(2),\n interactive: Boolean(interactive),\n })\n .withChildData(childData)\n .buildTable([rowData])\n })\n}\n\nexport const createDataTable = (\n definition: components['schemas']['SingleVariantReportDefinition'],\n columns: Columns,\n reportData: Dict<string>[],\n childData: ChildData[],\n summariesData: AsyncSummary[],\n reportQuery: ReportQuery,\n): DataTable[] => {\n let dataTables: DataTable[] = []\n const { specification } = validateDefinition(definition)\n const { template } = specification\n\n switch (template as Template) {\n case 'summary-section':\n case 'list-section': {\n const dataTable = buildSummarySectionTable(definition, columns, reportData, summariesData, reportQuery)\n dataTables.push(dataTable)\n break\n }\n\n case 'parent-child':\n case 'parent-child-section': {\n const dataTable = buildParentChildTable(definition, columns, reportData, childData)\n dataTables.push(dataTable)\n break\n }\n\n case 'list': {\n const dataTable = buildListTable(definition, columns, reportData, summariesData, reportQuery)\n dataTables.push(dataTable)\n break\n }\n\n case 'row-section-child':\n case 'row-section': {\n dataTables = buildRowSectionedTable(definition, reportData, childData)\n break\n }\n\n default: {\n const dataTable = buildListTable(definition, columns, reportData, summariesData, reportQuery)\n dataTables.push(dataTable)\n break\n }\n }\n\n return dataTables\n}\n\nexport default {\n createDataTable,\n}\n"],
5
- "mappings": "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",
6
- "names": ["CollatedSummaryBuilder", "DataTableBuilder", "ParentChildDataTableBuilder", "SectionedDataTableBuilder", "SectionedFieldsDataTableBuilder"]
7
- }
@@ -1,604 +0,0 @@
1
- import { expect, jest } from '@jest/globals'
2
- import { Url } from 'url'
3
- import Dict = NodeJS.Dict
4
-
5
- // types
6
- import ReportQuery from '../../../types/ReportQuery'
7
- import type { components } from '../../../types/api'
8
- import type { AsyncSummary } from '../../../types/UserReports'
9
- import type { Columns } from '../report-columns-form/types'
10
- import type { Template } from '../../../types/Templates'
11
-
12
- // Utils
13
- import ReportDataTableUtils from './utils'
14
-
15
- // Mocked
16
- import createMockData from '../../../../../test-app/mocks/mockClients/reports/mockAsyncData'
17
-
18
- // Services
19
- import variant2 = require('../../../../../test-app/mocks/mockClients/reports/mockVariants/request-examples/fail-status')
20
- import variant26 = require('../../../../../test-app/mocks/mockClients/reports/mockVariants/report-templates/parent-child')
21
- import { ChildData } from '../../../utils/ParentChildDataTableBuilder/types'
22
- import variant10 = require('../../../../../test-app/mocks/mockClients/reports/mockVariants/report-templates/list-section-wtih-summaries')
23
- import { MoJTableHead } from '../../_dashboards/dashboard-visualisation/types'
24
-
25
- jest.mock('parseurl', () => ({
26
- __esModule: true,
27
- default: jest.fn().mockImplementation(() => ({ pathname: 'pathname', search: 'search' } as Url)),
28
- }))
29
-
30
- describe('AsyncReportListUtils', () => {
31
- describe('getTableData', () => {
32
- let definition: components['schemas']['SingleVariantReportDefinition']
33
- let columns: Columns
34
- let reportData: Dict<string>[]
35
- let childData: ChildData[]
36
- let summariesData: AsyncSummary[]
37
- let reportQuery: ReportQuery
38
-
39
- beforeEach(() => {
40
- columns = {
41
- name: 'columns',
42
- options: [
43
- {
44
- text: 'Field 1',
45
- value: 'field1',
46
- disabled: false,
47
- },
48
- ],
49
- text: 'Select report columns',
50
- value: ['field1'],
51
- }
52
-
53
- reportData = createMockData(5)
54
- })
55
-
56
- it('should get the table data for a list table', () => {
57
- definition = {
58
- id: 'test-report-3',
59
- name: 'C Test Report',
60
- variant: variant2,
61
- } as unknown as components['schemas']['SingleVariantReportDefinition']
62
-
63
- const template = definition.variant.specification?.template
64
-
65
- reportQuery = new ReportQuery({
66
- fields: definition.variant.specification?.fields || [],
67
- template: template || ('list' as Template),
68
- queryParams: {},
69
- definitionsPath: 'dataProductDefinitionsPath',
70
- })
71
-
72
- const expectedTable = [
73
- {
74
- colCount: 1,
75
- head: [{ text: 'Field 1' }],
76
- rowCount: 5,
77
- rows: [
78
- [
79
- {
80
- classes: '',
81
- fieldName: 'field1',
82
- format: 'string',
83
- text: 'Value 1',
84
- },
85
- ],
86
- [
87
- {
88
- classes: '',
89
- fieldName: 'field1',
90
- format: 'string',
91
- text: 'Value 1',
92
- },
93
- ],
94
- [
95
- {
96
- classes: '',
97
- fieldName: 'field1',
98
- format: 'string',
99
- text: 'Value 1',
100
- },
101
- ],
102
- [
103
- {
104
- classes: '',
105
- fieldName: 'field1',
106
- format: 'string',
107
- text: 'Value 1',
108
- },
109
- ],
110
- [
111
- {
112
- classes: '',
113
- fieldName: 'field1',
114
- format: 'string',
115
- text: 'Value 1',
116
- },
117
- ],
118
- ],
119
- },
120
- ]
121
-
122
- const dataTable = ReportDataTableUtils.createDataTable(definition, columns, reportData, [], [], reportQuery)
123
- expect(dataTable).toEqual(expectedTable)
124
- })
125
-
126
- it('should get the table data for a summary table', () => {
127
- definition = {
128
- id: 'test-report-2',
129
- name: 'B Test Report',
130
- variant: variant10,
131
- } as unknown as components['schemas']['SingleVariantReportDefinition']
132
-
133
- const template = definition.variant.specification?.template
134
-
135
- reportQuery = new ReportQuery({
136
- fields: definition.variant.specification?.fields || [],
137
- template: template || ('list' as Template),
138
- queryParams: {},
139
- definitionsPath: 'dataProductDefinitionsPath',
140
- })
141
-
142
- summariesData = [
143
- {
144
- id: 'summary1',
145
- template: 'page-header',
146
- fields: [
147
- {
148
- name: 'total',
149
- display: 'Total',
150
- },
151
- ],
152
- data: [
153
- {
154
- total: '52',
155
- },
156
- ],
157
- },
158
- {
159
- id: 'summary3',
160
- template: 'page-footer',
161
- fields: [
162
- {
163
- name: 'percentGood',
164
- display: 'Good (%)',
165
- },
166
- {
167
- name: 'percentBad',
168
- display: 'Bad (%)',
169
- },
170
- {
171
- name: 'percentUgly',
172
- display: 'Ugly (%)',
173
- },
174
- ],
175
- data: [
176
- {
177
- percentGood: '1',
178
- percentBad: '10',
179
- percentUgly: '98',
180
- },
181
- ],
182
- },
183
- {
184
- id: 'summary6',
185
- template: 'table-header',
186
- fields: [
187
- {
188
- name: 'field1',
189
- display: 'Field 1',
190
- type: 'string',
191
- },
192
- {
193
- name: 'field2',
194
- display: 'Field 1',
195
- type: 'string',
196
- },
197
- {
198
- name: 'field3',
199
- display: 'Field 1',
200
- type: 'string',
201
- },
202
- {
203
- name: 'field4',
204
- display: 'Field 1',
205
- type: 'string',
206
- },
207
- ],
208
- data: [
209
- {
210
- section1: 'One',
211
- section2: 'A',
212
- field1: 'Section One A Header',
213
- field2: '1',
214
- field3: '12219380923',
215
- field4: '4 Freds',
216
- },
217
- {
218
- section1: 'Two',
219
- section2: 'A',
220
- field1: 'Section Two A Header',
221
- field2: '1',
222
- field3: '12219380923',
223
- field4: '5 Freds',
224
- },
225
- ],
226
- },
227
- {
228
- id: 'summary7',
229
- template: 'table-footer',
230
- fields: [
231
- {
232
- name: 'field1',
233
- display: 'Field 1',
234
- type: 'string',
235
- },
236
- {
237
- name: 'field2',
238
- display: 'Field 1',
239
- type: 'string',
240
- },
241
- {
242
- name: 'field3',
243
- display: 'Field 1',
244
- type: 'string',
245
- },
246
- {
247
- name: 'field4',
248
- display: 'Field 1',
249
- type: 'string',
250
- },
251
- ],
252
- data: [
253
- {
254
- section1: 'One',
255
- section2: 'A',
256
- field1: 'Section One A Footer',
257
- field2: '1',
258
- field3: '12219380923',
259
- field4: '6 Freds',
260
- },
261
- {
262
- section1: 'One',
263
- section2: 'B',
264
- field1: 'Section One B Footer',
265
- field2: '1',
266
- field3: '12219380923',
267
- field4: '7 Freds',
268
- },
269
- ],
270
- },
271
- ]
272
-
273
- const expectedTable = [
274
- {
275
- head: <MoJTableHead | null>null,
276
- rows: [
277
- [
278
- {
279
- classes: 'dpr-section-header',
280
- colspan: 1,
281
- html: '<h2 class="govuk-heading-m">First: One, Second: A <span class=\'govuk-caption-m\'>1 result</span></h2>',
282
- },
283
- ],
284
- [
285
- {
286
- classes: 'dpr-section-header-spacer-bottom',
287
- colspan: 1,
288
- text: '',
289
- },
290
- ],
291
- [
292
- {
293
- text: 'Field 1',
294
- classes: 'govuk-table__header',
295
- },
296
- ],
297
- [
298
- {
299
- fieldName: 'field1',
300
- text: 'Section One A Header',
301
- format: 'string',
302
- classes: 'dpr-report-summary-cell dpr-report-summary-cell-table-header',
303
- },
304
- ],
305
- [
306
- {
307
- fieldName: 'field1',
308
- text: 'Value 1',
309
- format: 'string',
310
- classes: '',
311
- },
312
- ],
313
- [
314
- {
315
- fieldName: 'field1',
316
- text: 'Section One A Footer',
317
- format: 'string',
318
- classes: 'dpr-report-summary-cell dpr-report-summary-cell-table-footer',
319
- },
320
- ],
321
- [
322
- {
323
- classes: 'dpr-section-header-spacer',
324
- colspan: 1,
325
- text: '',
326
- },
327
- ],
328
- [
329
- {
330
- classes: 'dpr-section-header',
331
- colspan: 1,
332
- html: '<h2 class="govuk-heading-m">First: One, Second: B <span class=\'govuk-caption-m\'>2 results</span></h2>',
333
- },
334
- ],
335
- [
336
- {
337
- classes: 'dpr-section-header-spacer-bottom',
338
- colspan: 1,
339
- text: '',
340
- },
341
- ],
342
- [
343
- {
344
- text: 'Field 1',
345
- classes: 'govuk-table__header',
346
- },
347
- ],
348
- [
349
- {
350
- fieldName: 'field1',
351
- text: 'Value 1',
352
- format: 'string',
353
- classes: '',
354
- },
355
- ],
356
- [
357
- {
358
- fieldName: 'field1',
359
- text: 'Value 1',
360
- format: 'string',
361
- classes: '',
362
- },
363
- ],
364
- [
365
- {
366
- fieldName: 'field1',
367
- text: 'Section One B Footer',
368
- format: 'string',
369
- classes: 'dpr-report-summary-cell dpr-report-summary-cell-table-footer',
370
- },
371
- ],
372
- [
373
- {
374
- classes: 'dpr-section-header-spacer',
375
- colspan: 1,
376
- text: '',
377
- },
378
- ],
379
- [
380
- {
381
- classes: 'dpr-section-header',
382
- colspan: 1,
383
- html: '<h2 class="govuk-heading-m">First: Two, Second: A <span class=\'govuk-caption-m\'>1 result</span></h2>',
384
- },
385
- ],
386
- [
387
- {
388
- classes: 'dpr-section-header-spacer-bottom',
389
- colspan: 1,
390
- text: '',
391
- },
392
- ],
393
- [
394
- {
395
- text: 'Field 1',
396
- classes: 'govuk-table__header',
397
- },
398
- ],
399
- [
400
- {
401
- fieldName: 'field1',
402
- text: 'Section Two A Header',
403
- format: 'string',
404
- classes: 'dpr-report-summary-cell dpr-report-summary-cell-table-header',
405
- },
406
- ],
407
- [
408
- {
409
- fieldName: 'field1',
410
- text: 'Value 1',
411
- format: 'string',
412
- classes: '',
413
- },
414
- ],
415
- [
416
- {
417
- classes: 'dpr-section-header-spacer',
418
- colspan: 1,
419
- text: '',
420
- },
421
- ],
422
- [
423
- {
424
- classes: 'dpr-section-header',
425
- colspan: 1,
426
- html: '<h2 class="govuk-heading-m">First: Two, Second: B <span class=\'govuk-caption-m\'>1 result</span></h2>',
427
- },
428
- ],
429
- [
430
- {
431
- classes: 'dpr-section-header-spacer-bottom',
432
- colspan: 1,
433
- text: '',
434
- },
435
- ],
436
- [
437
- {
438
- text: 'Field 1',
439
- classes: 'govuk-table__header',
440
- },
441
- ],
442
- [
443
- {
444
- fieldName: 'field1',
445
- text: 'Value 1',
446
- format: 'string',
447
- classes: '',
448
- },
449
- ],
450
- ],
451
- rowCount: 5,
452
- colCount: 1,
453
- },
454
- ]
455
-
456
- const dataTable = ReportDataTableUtils.createDataTable(
457
- definition,
458
- columns,
459
- reportData,
460
- [],
461
- summariesData,
462
- reportQuery,
463
- )
464
-
465
- expect(dataTable).toEqual(expectedTable)
466
- })
467
-
468
- it('should get the table data for a parent/child table', () => {
469
- definition = {
470
- id: 'report-template-examples',
471
- name: 'Report templates',
472
- variant: variant26,
473
- } as unknown as components['schemas']['SingleVariantReportDefinition']
474
-
475
- const template = definition.variant.specification?.template
476
- reportQuery = new ReportQuery({
477
- fields: definition.variant.specification?.fields || [],
478
- template: template || ('list' as Template),
479
- queryParams: {},
480
- definitionsPath: 'dataProductDefinitionsPath',
481
- })
482
-
483
- childData = [
484
- {
485
- id: 'report-template-example-parent-child_child',
486
- data: [
487
- {
488
- field1: 'Value 1',
489
- field2: 'Value 2',
490
- field3: '2003-02-01T01:00',
491
- field4: 'Value 4',
492
- field5: 'Value 5',
493
- field6: '<a href="#" target="_blank">Value 6</a>',
494
- field7: '2003-02-01T01:00',
495
- section1: 'One',
496
- section2: 'A',
497
- },
498
- {
499
- field1: 'Value 1',
500
- field2: 'Value 2',
501
- field3: '2003-02-01T01:00',
502
- field4: 'Value 4',
503
- field5: 'Value 5',
504
- field6: '<a href="#" target="_blank">Value 6</a>',
505
- field7: '2003-02-01T01:00',
506
- section1: 'Two',
507
- section2: 'B',
508
- },
509
- {
510
- field1: 'Value 1',
511
- field2: 'Value 2',
512
- field3: '2003-02-01T01:00',
513
- field4: 'Value 4',
514
- field5: 'Value 5',
515
- field6: '<a href="#" target="_blank">Value 6</a>',
516
- field7: '2003-02-01T01:00',
517
- section1: 'One',
518
- section2: 'B',
519
- },
520
- ],
521
- },
522
- ]
523
-
524
- const expectedTable = [
525
- {
526
- colCount: 1,
527
- head: <MoJTableHead | null>null,
528
- rowCount: 5,
529
- rows: [
530
- [{ classes: 'govuk-table__header', text: 'Second' }],
531
- [
532
- {
533
- classes: 'dpr-parent-cell',
534
- fieldName: 'field1',
535
- format: 'string',
536
- text: 'Value 1',
537
- },
538
- ],
539
- [
540
- {
541
- classes: 'dpr-parent-cell',
542
- fieldName: 'field1',
543
- format: 'string',
544
- text: 'Value 1',
545
- },
546
- ],
547
- [
548
- {
549
- classes: 'dpr-parent-cell',
550
- fieldName: 'field1',
551
- format: 'string',
552
- text: 'Value 1',
553
- },
554
- ],
555
- [
556
- {
557
- classes: 'dpr-child-report-cell',
558
- colspan: 1,
559
- format: 'string',
560
- html: "<div class='dpr-child-report'><h2 class=\"govuk-heading-s\">Child Report</h2><div class=\"dpr-child-report_table\"><table class='govuk-table'><thead class='govuk-table__head'><th scope='col' class='govuk-table__header'>Field2</th><th scope='col' class='govuk-table__header'>Field3</th></thead><tbody class='govuk-table__body'><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Value 2</td><td class='govuk-table__cell govuk-table__cell--string '>2003-02-01T01:00</td></tr><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Value 2</td><td class='govuk-table__cell govuk-table__cell--string '>2003-02-01T01:00</td></tr></tbody></table></div></div>",
561
- },
562
- ],
563
- [{ classes: 'govuk-table__header', text: 'Second' }],
564
- [
565
- {
566
- classes: 'dpr-parent-cell',
567
- fieldName: 'field1',
568
- format: 'string',
569
- text: 'Value 1',
570
- },
571
- ],
572
- [
573
- {
574
- classes: 'dpr-parent-cell',
575
- fieldName: 'field1',
576
- format: 'string',
577
- text: 'Value 1',
578
- },
579
- ],
580
- [
581
- {
582
- classes: 'dpr-child-report-cell',
583
- colspan: 1,
584
- format: 'string',
585
- html: "<div class='dpr-child-report'><h2 class=\"govuk-heading-s\">Child Report</h2><div class=\"dpr-child-report_table\"><table class='govuk-table'><thead class='govuk-table__head'><th scope='col' class='govuk-table__header'>Field2</th><th scope='col' class='govuk-table__header'>Field3</th></thead><tbody class='govuk-table__body'><tr class='govuk-table__row'><td class='govuk-table__cell govuk-table__cell--string '>Value 2</td><td class='govuk-table__cell govuk-table__cell--string '>2003-02-01T01:00</td></tr></tbody></table></div></div>",
586
- },
587
- ],
588
- ],
589
- },
590
- ]
591
-
592
- const dataTable = ReportDataTableUtils.createDataTable(
593
- definition,
594
- columns,
595
- reportData,
596
- childData,
597
- [],
598
- reportQuery,
599
- )
600
-
601
- expect(dataTable).toEqual(expectedTable)
602
- })
603
- })
604
- })