@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.4 → 4.17.6
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/assets/app.js.map +1 -1
- package/dpr/components/_async/async-filters-form/sortByTemplate.js +1 -1
- package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +1 -1
- package/dpr/components/_async/async-filters-form/types.d.js +1 -1
- package/dpr/components/_async/async-filters-form/types.d.js.map +1 -1
- package/dpr/components/_async/async-filters-form/utils.js +1 -1
- package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
- package/dpr/components/_async/async-filters-form/utils.test.ts +9 -9
- package/dpr/components/_async/async-filters-form/utils.ts +1 -1
- package/dpr/components/_async/async-filters-form/view.njk +6 -3
- package/dpr/components/_catalogue/catalogue/types.js +1 -1
- package/dpr/components/_catalogue/catalogue/types.js.map +1 -1
- package/dpr/components/_catalogue/catalogue/utils.js +1 -1
- package/dpr/components/_catalogue/catalogue/utils.js.map +2 -2
- package/dpr/components/_catalogue/catalogue/utils.test.ts +6 -3
- package/dpr/components/_catalogue/catalogue/utils.ts +1 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js +1 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
- package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -0
- package/dpr/components/_catalogue/catalogue-list/utils.ts +5 -5
- package/dpr/components/_charts/chart/Buckets.js +1 -1
- package/dpr/components/_charts/chart/Buckets.js.map +3 -3
- package/dpr/components/_charts/chart/Buckets.ts +3 -3
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +3 -3
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +1 -13
- package/dpr/components/_charts/chart/heatmap/types.js +1 -1
- package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/types.ts +1 -1
- package/dpr/components/_charts/utils.js +1 -1
- package/dpr/components/_charts/utils.js.map +3 -3
- package/dpr/components/_charts/utils.test.ts +1 -0
- package/dpr/components/_charts/utils.ts +84 -43
- package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-list/utils.test.ts +1 -0
- package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -11
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/types.js +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-visualisation/types.ts +8 -8
- package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/Scorecard.ts +8 -8
- package/dpr/components/_dashboards/scorecard/types.js +1 -1
- package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/types.ts +12 -10
- package/dpr/components/_dashboards/scorecard/utils.js +1 -1
- package/dpr/components/_dashboards/scorecard/utils.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/utils.test.ts +1 -0
- package/dpr/components/_filters/filter-input/enum.js +1 -1
- package/dpr/components/_filters/filter-input/enum.js.map +1 -1
- package/dpr/components/_filters/filter-input/filters.js +1 -1
- package/dpr/components/_filters/filter-input/filters.js.map +1 -1
- package/dpr/components/_filters/filter-input/filters.test.ts +1 -0
- package/dpr/components/_filters/filter-input/types.d.js +1 -1
- package/dpr/components/_filters/filter-input/types.d.js.map +1 -1
- package/dpr/components/_filters/filters-selected/utils.js +1 -1
- package/dpr/components/_filters/filters-selected/utils.js.map +3 -3
- package/dpr/components/_filters/filters-selected/utils.test.ts +7 -4
- package/dpr/components/_filters/filters-selected/utils.ts +1 -1
- package/dpr/components/_filters/filtersTypeEnum.js +1 -1
- package/dpr/components/_filters/filtersTypeEnum.js.map +1 -1
- package/dpr/components/_filters/types.d.js +1 -1
- package/dpr/components/_filters/types.d.js.map +2 -2
- package/dpr/components/_filters/types.d.ts +5 -5
- package/dpr/components/_filters/utils.js +1 -1
- package/dpr/components/_filters/utils.js.map +2 -2
- package/dpr/components/_filters/utils.test.ts +54 -49
- package/dpr/components/_filters/utils.ts +16 -20
- package/dpr/components/_inputs/date-input/utils.js +1 -1
- package/dpr/components/_inputs/date-input/utils.js.map +1 -1
- package/dpr/components/_inputs/date-input/utils.test.ts +1 -0
- package/dpr/components/_inputs/date-range/clientClass.mjs +2 -2
- package/dpr/components/_inputs/date-range/types.js +1 -1
- package/dpr/components/_inputs/date-range/types.js.map +2 -2
- package/dpr/components/_inputs/date-range/types.ts +2 -2
- package/dpr/components/_inputs/date-range/utils.js +1 -1
- package/dpr/components/_inputs/date-range/utils.js.map +2 -2
- package/dpr/components/_inputs/date-range/utils.test.ts +5 -7
- package/dpr/components/_inputs/date-range/utils.ts +4 -4
- package/dpr/components/_inputs/date-range/view.njk +1 -0
- package/dpr/components/_inputs/granular-date-range/types.js +1 -1
- package/dpr/components/_inputs/granular-date-range/types.js.map +1 -1
- package/dpr/components/_inputs/granular-date-range/utils.js +1 -1
- package/dpr/components/_inputs/granular-date-range/utils.js.map +1 -1
- package/dpr/components/_inputs/granular-date-range/utils.test.ts +1 -0
- package/dpr/components/_inputs/multi-select/utils.js +1 -1
- package/dpr/components/_inputs/multi-select/utils.js.map +3 -3
- package/dpr/components/_inputs/multi-select/utils.ts +1 -1
- package/dpr/components/_inputs/multi-select/utilt.test.ts +29 -14
- package/dpr/components/_inputs/start-end-date/utils.js +1 -1
- package/dpr/components/_inputs/start-end-date/utils.js.map +1 -1
- package/dpr/components/_inputs/start-end-date/utils.test.ts +1 -0
- package/dpr/components/_reports/report-actions/actionsTemplate.js +1 -1
- package/dpr/components/_reports/report-actions/actionsTemplate.js.map +1 -1
- package/dpr/components/_reports/report-actions/types.d.js +1 -1
- package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
- package/dpr/components/_reports/report-actions/types.d.ts +1 -1
- package/dpr/components/_reports/report-actions/utils.js +1 -1
- package/dpr/components/_reports/report-actions/utils.js.map +1 -1
- package/dpr/components/_reports/report-actions/utils.test.ts +8 -4
- package/dpr/components/_reports/report-columns-form/types.d.js +1 -1
- package/dpr/components/_reports/report-columns-form/types.d.js.map +1 -1
- package/dpr/components/_reports/report-columns-form/utils.js +1 -1
- package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
- package/dpr/components/_reports/report-columns-form/utils.ts +1 -1
- package/dpr/components/_reports/report-data-table/types.d.js +1 -1
- package/dpr/components/_reports/report-data-table/types.d.js.map +1 -1
- package/dpr/components/_reports/report-data-table/utils.js +1 -1
- package/dpr/components/_reports/report-data-table/utils.js.map +3 -3
- package/dpr/components/_reports/report-data-table/utils.test.ts +15 -8
- package/dpr/components/_reports/report-data-table/utils.ts +20 -8
- package/dpr/components/_reports/report-pagination/types.d.js +1 -1
- package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
- package/dpr/components/_reports/report-pagination/types.d.ts +2 -2
- package/dpr/components/_reports/report-pagination/utils.js +1 -1
- package/dpr/components/_reports/report-pagination/utils.js.map +1 -1
- package/dpr/components/_reports/report-pagination/utils.test.ts +1 -0
- package/dpr/components/_reports/report-totals/utils.js +1 -1
- package/dpr/components/_reports/report-totals/utils.js.map +1 -1
- package/dpr/components/card-group/utils.js +1 -1
- package/dpr/components/card-group/utils.js.map +1 -1
- package/dpr/components/card-group/utils.test.ts +7 -0
- package/dpr/components/report-list/defaultTokenProvider.js +1 -1
- package/dpr/components/report-list/defaultTokenProvider.js.map +3 -3
- package/dpr/components/report-list/defaultTokenProvider.ts +3 -3
- package/dpr/components/report-list/types.d.js +1 -1
- package/dpr/components/report-list/types.d.js.map +1 -1
- package/dpr/components/report-list/utils.js +1 -1
- package/dpr/components/report-list/utils.js.map +2 -2
- package/dpr/components/report-list/utils.test.ts +6 -4
- package/dpr/components/report-list/utils.ts +5 -5
- package/dpr/components/show-more/utils.js +1 -1
- package/dpr/components/show-more/utils.js.map +1 -1
- package/dpr/components/user-reports/bookmarks/utils.js +1 -1
- package/dpr/components/user-reports/bookmarks/utils.js.map +3 -3
- package/dpr/components/user-reports/bookmarks/utils.test.ts +14 -11
- package/dpr/components/user-reports/bookmarks/utils.ts +26 -31
- package/dpr/components/user-reports/requested/utils.js +1 -1
- package/dpr/components/user-reports/requested/utils.js.map +3 -3
- package/dpr/components/user-reports/requested/utils.test.ts +4 -3
- package/dpr/components/user-reports/requested/utils.ts +4 -3
- package/dpr/components/user-reports/types.d.js +1 -1
- package/dpr/components/user-reports/types.d.js.map +2 -2
- package/dpr/components/user-reports/types.d.ts +1 -1
- package/dpr/components/user-reports/utils.js +1 -1
- package/dpr/components/user-reports/utils.js.map +3 -3
- package/dpr/components/user-reports/utils.test.ts +48 -47
- package/dpr/components/user-reports/utils.ts +51 -57
- package/dpr/components/user-reports/viewed/utils.js +1 -1
- package/dpr/components/user-reports/viewed/utils.js.map +2 -2
- package/dpr/components/user-reports/viewed/utils.ts +5 -4
- package/dpr/data/agentConfig.js +1 -1
- package/dpr/data/agentConfig.js.map +1 -1
- package/dpr/data/dashboardClient.js +1 -1
- package/dpr/data/dashboardClient.js.map +2 -2
- package/dpr/data/dashboardClient.ts +2 -2
- package/dpr/data/dprReportingClient.js +1 -1
- package/dpr/data/dprReportingClient.js.map +3 -3
- package/dpr/data/dprReportingClient.ts +3 -3
- package/dpr/data/missingReportClient.js +2 -0
- package/dpr/data/missingReportClient.js.map +7 -0
- package/dpr/{services/missingReport → data}/missingReportClient.ts +4 -4
- package/dpr/data/productCollectionClient.js +2 -0
- package/dpr/data/productCollectionClient.js.map +7 -0
- package/dpr/data/productCollectionClient.ts +28 -0
- package/dpr/data/reportDataStore.js +1 -1
- package/dpr/data/reportDataStore.js.map +1 -1
- package/dpr/data/reportingClient.js +1 -1
- package/dpr/data/reportingClient.js.map +3 -3
- package/dpr/data/reportingClient.ts +7 -9
- package/dpr/data/restClient.js +1 -1
- package/dpr/data/restClient.js.map +2 -2
- package/dpr/data/restClient.ts +5 -5
- package/dpr/data/types.d.js +1 -1
- package/dpr/data/types.d.js.map +2 -2
- package/dpr/data/types.d.ts +1 -1
- package/dpr/middleware/reportAuthoriser.js +1 -1
- package/dpr/middleware/reportAuthoriser.js.map +2 -2
- package/dpr/middleware/reportAuthoriser.ts +2 -2
- package/dpr/middleware/setUpDprResources.js +1 -1
- package/dpr/middleware/setUpDprResources.js.map +2 -2
- package/dpr/middleware/setUpDprResources.test.ts +59 -20
- package/dpr/middleware/setUpDprResources.ts +30 -29
- package/dpr/middleware/setUpNestedRoute.js +1 -1
- package/dpr/middleware/setUpNestedRoute.js.map +2 -2
- package/dpr/middleware/setUpNestedRoute.ts +1 -1
- package/dpr/routes/index.js +1 -1
- package/dpr/routes/index.js.map +2 -2
- package/dpr/routes/index.ts +1 -2
- package/dpr/routes/journeys/download-report/controller.js +1 -1
- package/dpr/routes/journeys/download-report/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/controller.ts +7 -6
- package/dpr/routes/journeys/download-report/request-download/form/controller.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/request-download/form/controller.ts +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/routes.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.ts +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/routes.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/routes.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/service.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/service.js.map +3 -3
- package/dpr/routes/journeys/download-report/request-download/service.ts +20 -8
- package/dpr/routes/journeys/download-report/routes.js +1 -1
- package/dpr/routes/journeys/download-report/routes.js.map +3 -3
- package/dpr/routes/journeys/download-report/routes.ts +1 -4
- package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/tests.cy.ts +4 -1
- package/dpr/routes/journeys/download-report/utils.js +1 -1
- package/dpr/routes/journeys/download-report/utils.js.map +2 -2
- package/dpr/routes/journeys/download-report/utils.ts +2 -4
- package/dpr/routes/journeys/my-reports/bookmarks/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.ts +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -2
- package/dpr/routes/journeys/my-reports/bookmarks/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/service.js +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/service.ts +31 -18
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +26 -26
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/utils.ts +10 -11
- package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +3 -3
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.ts +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +7 -4
- package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/service.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +3 -3
- package/dpr/routes/journeys/my-reports/recently-viewed/service.ts +0 -2
- package/dpr/routes/journeys/my-reports/requested-reports/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +3 -3
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.ts +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/service.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +3 -3
- package/dpr/routes/journeys/my-reports/requested-reports/service.ts +25 -17
- package/dpr/routes/journeys/my-reports/routes.js +1 -1
- package/dpr/routes/journeys/my-reports/routes.js.map +3 -3
- package/dpr/routes/journeys/my-reports/routes.ts +0 -3
- package/dpr/routes/journeys/product-collection/routes.js +1 -1
- package/dpr/routes/journeys/product-collection/routes.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/controller.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/controller.js.map +2 -2
- package/dpr/routes/journeys/product-collection/selected/controller.ts +1 -1
- package/dpr/routes/journeys/product-collection/selected/routes.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/routes.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/tests.cy.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/product-collection/selected/tests.cy.ts +6 -4
- package/dpr/routes/journeys/product-collection/selected/validation.js +1 -1
- package/dpr/routes/journeys/product-collection/selected/validation.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/form/controller.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/controller.js.map +3 -3
- package/dpr/routes/journeys/request-missing-report/form/controller.ts +21 -19
- package/dpr/routes/journeys/request-missing-report/form/routes.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/routes.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/form/validation.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/validation.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/routes.js +1 -1
- package/dpr/routes/journeys/request-missing-report/routes.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/controller.js +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/routes.js +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/tests.cy.ts +1 -1
- package/dpr/routes/journeys/request-report/controller.js +1 -1
- package/dpr/routes/journeys/request-report/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/controller.ts +1 -1
- package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
- package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/controller.ts +7 -8
- package/dpr/routes/journeys/request-report/filters/routes.js +1 -1
- package/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/utils.ts +38 -23
- package/dpr/routes/journeys/request-report/filters/view.njk +2 -1
- package/dpr/routes/journeys/request-report/routes.js +1 -1
- package/dpr/routes/journeys/request-report/routes.js.map +2 -2
- package/dpr/routes/journeys/request-report/routes.ts +2 -2
- package/dpr/routes/journeys/request-report/status/controller.js +1 -1
- package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/status/controller.ts +4 -4
- package/dpr/routes/journeys/request-report/status/routes.js +1 -1
- package/dpr/routes/journeys/request-report/status/routes.js.map +1 -1
- package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/status/tests.cy.ts +9 -4
- package/dpr/routes/journeys/request-report/status/utils.js +1 -1
- package/dpr/routes/journeys/request-report/status/utils.js.map +3 -3
- package/dpr/routes/journeys/request-report/status/utils.ts +10 -13
- package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/tests.cy.ts +14 -11
- package/dpr/routes/journeys/routes.js +1 -1
- package/dpr/routes/journeys/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/controller.ts +4 -4
- package/dpr/routes/journeys/view-report/async/dashboard/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/dashboard/controller.ts +4 -4
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +6 -8
- package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/controller.ts +5 -5
- package/dpr/routes/journeys/view-report/async/report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +9 -7
- package/dpr/routes/journeys/view-report/async/report/types.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/types.ts +8 -8
- package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/utils.ts +16 -18
- package/dpr/routes/journeys/view-report/async/routes.js +1 -1
- package/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/routes.ts +6 -3
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/load-report/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/sync/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/report/controller.ts +6 -6
- package/dpr/routes/journeys/view-report/sync/report/routes.js +1 -1
- package/dpr/routes/journeys/view-report/sync/report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/sync/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/report/utils.ts +29 -19
- package/dpr/routes/journeys/view-report/sync/routes.js +1 -1
- package/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/tests.cy.ts +1 -1
- package/dpr/routes/journeys/view-report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/utils.ts +22 -12
- package/dpr/services/dashboardService.js +1 -1
- package/dpr/services/dashboardService.js.map +3 -3
- package/dpr/services/dashboardService.ts +1 -3
- package/dpr/services/defaultFilterValuesService.js +1 -1
- package/dpr/services/defaultFilterValuesService.js.map +3 -3
- package/dpr/services/defaultFilterValuesService.ts +34 -15
- package/dpr/services/index.js +1 -1
- package/dpr/services/index.js.map +1 -1
- package/dpr/services/missingReport/missingReportService.js +2 -0
- package/dpr/services/missingReport/missingReportService.js.map +7 -0
- package/dpr/services/missingReport/missingReportService.ts +26 -0
- package/dpr/services/productCollection/productCollectionService.js +1 -1
- package/dpr/services/productCollection/productCollectionService.js.map +3 -3
- package/dpr/services/productCollection/productCollectionService.ts +19 -14
- package/dpr/services/productCollection/productCollectionStoreService.js +1 -1
- package/dpr/services/productCollection/productCollectionStoreService.js.map +3 -3
- package/dpr/services/productCollection/productCollectionStoreService.ts +9 -3
- package/dpr/services/reportStoreService.js +1 -1
- package/dpr/services/reportStoreService.js.map +2 -2
- package/dpr/services/reportStoreService.ts +1 -1
- package/dpr/services/reportingService.js +1 -1
- package/dpr/services/reportingService.js.map +3 -3
- package/dpr/services/reportingService.ts +1 -3
- package/dpr/setUpNunjucksFilters.js +1 -1
- package/dpr/setUpNunjucksFilters.js.map +1 -1
- package/dpr/types/AsyncReportUtils.js +1 -1
- package/dpr/types/AsyncReportUtils.js.map +2 -2
- package/dpr/types/AsyncReportUtils.ts +2 -1
- package/dpr/types/Bookmark.js +1 -1
- package/dpr/types/Bookmark.js.map +2 -2
- package/dpr/types/Bookmark.ts +9 -3
- package/dpr/types/Charts.js +1 -1
- package/dpr/types/Charts.js.map +1 -1
- package/dpr/types/Download.js +1 -1
- package/dpr/types/Download.js.map +1 -1
- package/dpr/types/DprConfig.js +1 -1
- package/dpr/types/DprConfig.js.map +2 -2
- package/dpr/types/DprConfig.ts +8 -0
- package/dpr/types/DprUser.js +1 -1
- package/dpr/types/DprUser.js.map +2 -2
- package/dpr/types/DprUser.ts +2 -2
- package/dpr/types/EmbeddedReportUtils.js +1 -1
- package/dpr/types/EmbeddedReportUtils.js.map +1 -1
- package/dpr/types/ExecutionData.d.js +1 -1
- package/dpr/types/ExecutionData.d.js.map +2 -2
- package/dpr/types/ExecutionData.d.ts +2 -2
- package/dpr/types/Metrics.js +1 -1
- package/dpr/types/Metrics.js.map +2 -2
- package/dpr/types/Metrics.ts +1 -1
- package/dpr/types/ReportQuery.js +1 -1
- package/dpr/types/ReportQuery.js.map +2 -2
- package/dpr/types/ReportQuery.ts +15 -11
- package/dpr/types/ReportStore.js +1 -1
- package/dpr/types/ReportStore.js.map +1 -1
- package/dpr/types/Services.d.js +1 -1
- package/dpr/types/Services.d.js.map +2 -2
- package/dpr/types/Services.d.ts +8 -8
- package/dpr/types/Templates.d.js +1 -1
- package/dpr/types/Templates.d.js.map +1 -1
- package/dpr/types/UserReports.js +1 -1
- package/dpr/types/UserReports.js.map +2 -2
- package/dpr/types/UserReports.ts +29 -15
- package/dpr/types/api.d.js +1 -1
- package/dpr/types/api.d.js.map +1 -1
- package/dpr/types/index.d.js +1 -1
- package/dpr/types/index.d.js.map +2 -2
- package/dpr/types/index.d.ts +1 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +1 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.test.ts +2 -0
- package/dpr/utils/CreateDprServices.js +2 -0
- package/dpr/utils/CreateDprServices.js.map +7 -0
- package/dpr/utils/CreateDprServices.ts +73 -0
- package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
- package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +1 -1
- package/dpr/utils/DataTableBuilder/DataTableBuilder.test.ts +10 -0
- package/dpr/utils/DataTableBuilder/types.d.js +1 -1
- package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
- package/dpr/utils/DataTableBuilder/types.d.ts +3 -3
- package/dpr/utils/DateMapper/DateMapper.js +1 -1
- package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
- package/dpr/utils/DateMapper/DateMapper.test.ts +22 -9
- package/dpr/utils/DateMapper/DateMapper.ts +9 -11
- package/dpr/utils/DateMapper/types.d.js +1 -1
- package/dpr/utils/DateMapper/types.d.js.map +1 -1
- package/dpr/utils/ErrorHandler.js +2 -0
- package/dpr/utils/ErrorHandler.js.map +7 -0
- package/dpr/utils/ErrorHandler.ts +85 -0
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.test.ts +13 -2
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +3 -3
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
- package/dpr/utils/Personalisation/personalisationUtils.ts +6 -2
- package/dpr/utils/Personalisation/types.d.js +1 -1
- package/dpr/utils/Personalisation/types.d.js.map +1 -1
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +1 -1
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.test.ts +5 -0
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +1 -1
- package/dpr/utils/SectionedDataTableBuilder/types.d.js +1 -1
- package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +1 -1
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +1 -1
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.test.ts +7 -4
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +3 -3
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.test.ts +1 -0
- package/dpr/utils/UserStoreItemBuilder.js +1 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
- package/dpr/utils/UserStoreItemBuilder.ts +19 -32
- package/dpr/utils/arrayUtils.js +1 -1
- package/dpr/utils/arrayUtils.js.map +1 -1
- package/dpr/utils/datasetHelper.js +1 -1
- package/dpr/utils/datasetHelper.js.map +2 -2
- package/dpr/utils/datasetHelper.test.ts +21 -33
- package/dpr/utils/datasetHelper.ts +12 -17
- package/dpr/utils/definitionUtils.js +1 -1
- package/dpr/utils/definitionUtils.js.map +3 -3
- package/dpr/utils/definitionUtils.ts +14 -3
- package/dpr/utils/index.js +1 -1
- package/dpr/utils/index.js.map +1 -1
- package/dpr/utils/indexedAccesHelper.js +2 -0
- package/dpr/utils/indexedAccesHelper.js.map +7 -0
- package/dpr/utils/indexedAccesHelper.ts +24 -0
- package/dpr/utils/localsHelper.js +1 -1
- package/dpr/utils/localsHelper.js.map +2 -2
- package/dpr/utils/localsHelper.ts +8 -8
- package/dpr/utils/logger.js +1 -1
- package/dpr/utils/logger.js.map +2 -2
- package/dpr/utils/logger.ts +1 -1
- package/dpr/utils/reportListsHelper.js +1 -1
- package/dpr/utils/reportListsHelper.js.map +1 -1
- package/dpr/utils/reportStoreHelper.js +1 -1
- package/dpr/utils/reportStoreHelper.js.map +1 -1
- package/dpr/utils/reportStoreHelper.test.ts +3 -2
- package/dpr/utils/requestStatusHelper.js +1 -1
- package/dpr/utils/requestStatusHelper.js.map +3 -3
- package/dpr/utils/requestStatusHelper.ts +29 -42
- package/dpr/utils/sanitisedError.js +1 -1
- package/dpr/utils/sanitisedError.js.map +2 -2
- package/dpr/utils/sanitisedError.ts +1 -1
- package/dpr/utils/urlHelper.js +1 -1
- package/dpr/utils/urlHelper.js.map +2 -2
- package/dpr/utils/urlHelper.ts +4 -4
- package/dpr/validation/validate.js +1 -1
- package/dpr/validation/validate.js.map +2 -2
- package/dpr/validation/validate.ts +2 -2
- package/package.json +4 -2
- package/dpr/components/error-summary/utils.js +0 -2
- package/dpr/components/error-summary/utils.js.map +0 -7
- package/dpr/components/error-summary/utils.test.ts +0 -54
- package/dpr/components/error-summary/utils.ts +0 -65
- package/dpr/services/missingReport/missingReportClient.js +0 -2
- package/dpr/services/missingReport/missingReportClient.js.map +0 -7
- package/dpr/utils/ReportStoreServiceUtils.js +0 -2
- package/dpr/utils/ReportStoreServiceUtils.js.map +0 -7
- package/dpr/utils/ReportStoreServiceUtils.ts +0 -140
|
@@ -19,11 +19,13 @@ import {
|
|
|
19
19
|
} from '../../components/_filters/types'
|
|
20
20
|
import { defaultFilterValue } from './types'
|
|
21
21
|
import { FiltersType } from '../../components/_filters/filtersTypeEnum'
|
|
22
|
+
import { getRequestParam } from '../indexedAccesHelper'
|
|
22
23
|
|
|
23
24
|
export const saveDefaults = async (type: FiltersType, res: Response, req: Request, services: Services) => {
|
|
24
25
|
const defaultValuesForReport = await getDefaultValues(req, res, services, type)
|
|
25
26
|
const { dprUser } = localsHelper.getValues(res)
|
|
26
|
-
const {
|
|
27
|
+
const id = getRequestParam({ req, param: 'id' })
|
|
28
|
+
const reportId = getRequestParam({ req, param: 'reportId' })
|
|
27
29
|
const { defaultFilterValuesService } = services
|
|
28
30
|
return defaultFilterValuesService
|
|
29
31
|
? defaultFilterValuesService.save(dprUser.id, reportId, id, defaultValuesForReport)
|
|
@@ -102,9 +104,11 @@ const getDefaultValues = async (
|
|
|
102
104
|
})
|
|
103
105
|
.filter((c) => c !== undefined)
|
|
104
106
|
|
|
105
|
-
|
|
107
|
+
const result = defaultValuesConfig.filter((defaultValue) => {
|
|
106
108
|
return defaultValue ? defaultValue.value !== '' : false
|
|
107
109
|
})
|
|
110
|
+
|
|
111
|
+
return result
|
|
108
112
|
}
|
|
109
113
|
|
|
110
114
|
export const setFilterValuesFromSavedDefaults = (
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var f=(t,e,l,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of n(e))!s.call(t,r)&&r!==l&&i(t,r,{get:()=>e[r],enumerable:!(a=u(e,r))||a.enumerable});return t};var F=t=>f(i({},"__esModule",{value:!0}),t);var g={};module.exports=F(g);
|
|
1
|
+
"use strict";var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var f=(t,e,l,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of n(e))!s.call(t,r)&&r!==l&&i(t,r,{get:()=>e[r],enumerable:!(a=u(e,r))||a.enumerable});return t};var F=t=>f(i({},"__esModule",{value:!0}),t);var g={};module.exports=F(g);
|
|
2
2
|
//# sourceMappingURL=types.d.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dpr/utils/Personalisation/types.d.ts"],
|
|
4
4
|
"sourcesContent": ["import { Granularity, QuickFilters } from '../../components/_inputs/granular-date-range/types'\nimport { FiltersType } from '../../components/_filters/filtersTypeEnum'\n\nexport interface defaultFilterValue {\n name: string\n value: string | DefaultDateFilterValue | DefaultGranularDateFilterValue\n type?: FiltersType\n}\n\nexport interface DefaultDateFilterValue {\n start: string\n end: string\n relative?: RelativeDateRange\n}\n\nexport interface DefaultGranularDateFilterValue {\n start: string\n end: string\n granularity: Granularity\n quickFilter: QuickFilters\n}\n\nexport interface defaultFilterConfig {\n reportId: string\n id: string\n values: defaultFilterValue[]\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["types_d_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var y=Object.create;var m=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var v=(r,t)=>{for(var i in t)m(r,i,{get:t[i],enumerable:!0})},u=(r,t,i,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of b(t))!f.call(r,s)&&s!==i&&m(r,s,{get:()=>t[s],enumerable:!(e=C(t,s))||e.enumerable});return r};var h=(r,t,i)=>(i=r!=null?y(T(r)):{},u(t||!r||!r.__esModule?m(i,"default",{value:r,enumerable:!0}):i,r)),H=r=>u(m({},"__esModule",{value:!0}),r);var $={};v($,{SectionedDataTableBuilder:()=>p,default:()=>A});module.exports=H($);var d=h(require("../DataTableBuilder/DataTableBuilder")),S=require("../arrayUtils"),g=h(require("../SummaryDataTableBuilder/SummaryDataTableBuilder"));class p extends d.default{constructor(t){const{fields:i,sections:e,template:s}=t;super(i),this.sections=e,this.template=s}createSectionHeadings(t,i){return t.map(e=>({description:this.mapSectionDescription(e),sortKey:this.getSortKey(e,i)})).sort(this.sortKeyComparison()).map(e=>e.description).reduce(S.distinct,[])}initSectionData(t){const i={};return t.forEach(e=>{i[e]=[]}),i}mapRowsToSection(t,i){return t.reduce((e,s)=>{const n=this.mapSectionDescription(s),a=this.mapRow(s),o=e[n];return{...e,...o&&{[n]:o.concat([a])}}},i)}mapDataToSection(t,i){return t.reduce((e,s)=>{const n=this.mapSectionDescription(s),a=e[n];return{...e,...a&&{[n]:a.concat([s])}}},i)}getSectionCount(t,i){const e=t[i]?t[i].length:0,s=`${e} result${e===1?"":"s"}`;return{count:e,countDescription:s}}mapSummariesAndCreateTable(t,i,e){let s=[],n=[],a=[],o=[],c=[];return n=this.mapSectionSummaryTables(t,"section-header",this.columns.length),a=this.mapSectionSummaryRows("table-header",t),o=this.mapSectionSummaryRows("table-footer",t),c=this.mapSectionSummaryTables(t,"section-footer",this.columns.length),s=n.concat(i.length>0?[e]:[]).concat(a).concat(i).concat(o).concat(c),s}createTableContent(t,i,e){return t.flatMap((s,n)=>{const{count:a,countDescription:o}=this.getSectionCount(i,s),c=i[s];let l=[];return c&&(Object.keys(this.reportSummaries).length?l=this.mapSummariesAndCreateTable(s,c,e):l=l.concat(c.length>0?[e]:[]).concat(c)),[...this.createSectionHeader(s,n,a,o),...l]})}createSectionHeader(t,i,e,s){const n=[];return i!==0&&n.push([{classes:"dpr-section-header-spacer",colspan:this.columns.length,text:""}]),n.push([{classes:"dpr-section-header",colspan:this.columns.length,html:`<h2 class="govuk-heading-m">${t}${e&&e>0?` <span class='govuk-caption-m'>${s}</span>`:""}</h2>`}]),n.push([{classes:"dpr-section-header-spacer-bottom",colspan:this.columns.length,text:""}]),n}mapSectionSummaryRows(t,i){return this.reportSummaries[t]?this.reportSummaries[t].flatMap(e=>e.data.filter(s=>this.mapSectionDescription(s)===i).map(s=>this.mapRow(s,`dpr-report-summary-cell dpr-report-summary-cell-${t}`,e.fields))):[]}mapSectionSummaryTables(t,i,e){const s=this.reportSummaries[i];if(s){const a=s.map(o=>{const c=o.data.filter(l=>this.mapSectionDescription(l)===t);if(c.length>0){const l=new g.default(o,this.sections).buildTable(c);return`<div class='dpr-summary-container'>${this.convertDataTableToHtml(l)}</div>`}return""}).join("");if(a.length>0)return[[{classes:"dpr-summary-cell",colspan:e,html:`<div class='dpr-summary-container-group dpr-summary-container-group-${i}'>${a}</div>`}]]}return[]}mapSectionDescription(t){const{sections:i}=this;return this.mapNamesToFields(i).map(e=>`${e.display}: ${this.mapCellValue(e,t[e.name])}`).join(", ")}mapSections(t){const i=this.initSectionedHeadings(t);let{sectionedData:e}=i;return this.template!=="summary-section"&&(this.template==="parent-child-section"?e=this.mapDataToSection(t,e):e=this.mapRowsToSection(t,e)),{sectionDescriptions:i.sectionDescriptions,sectionedData:e}}initSectionedHeadings(t){const i=this.mapNamesToFields(this.sections),e=this.createSectionHeadings(t,i),s=this.initSectionData(e);return{sectionDescriptions:e,sectionedData:s}}mapSectionedData(t,i){const{sectionDescriptions:e,sectionedData:s}=this.mapSections(t);return this.createTableContent(e,s,i)}buildTable(t){return{head:null,rows:this.mapSectionedData(t,this.mapHeader(!0,"govuk-table__header")),rowCount:t.length,colCount:this.columns.length}}}var A=p;0&&(module.exports={SectionedDataTableBuilder});
|
|
1
|
+
"use strict";var y=Object.create;var m=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var v=(r,t)=>{for(var i in t)m(r,i,{get:t[i],enumerable:!0})},u=(r,t,i,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of b(t))!f.call(r,s)&&s!==i&&m(r,s,{get:()=>t[s],enumerable:!(e=C(t,s))||e.enumerable});return r};var h=(r,t,i)=>(i=r!=null?y(T(r)):{},u(t||!r||!r.__esModule?m(i,"default",{value:r,enumerable:!0}):i,r)),H=r=>u(m({},"__esModule",{value:!0}),r);var $={};v($,{SectionedDataTableBuilder:()=>p,default:()=>A});module.exports=H($);var d=h(require("../DataTableBuilder/DataTableBuilder")),S=require("../arrayUtils"),g=h(require("../SummaryDataTableBuilder/SummaryDataTableBuilder"));class p extends d.default{constructor(t){const{fields:i,sections:e,template:s}=t;super(i),this.sections=e,this.template=s}createSectionHeadings(t,i){return t.map(e=>({description:this.mapSectionDescription(e),sortKey:this.getSortKey(e,i)})).sort(this.sortKeyComparison()).map(e=>e.description).reduce(S.distinct,[])}initSectionData(t){const i={};return t.forEach(e=>{i[e]=[]}),i}mapRowsToSection(t,i){return t.reduce((e,s)=>{const n=this.mapSectionDescription(s),a=this.mapRow(s),o=e[n];return{...e,...o&&{[n]:o.concat([a])}}},i)}mapDataToSection(t,i){return t.reduce((e,s)=>{const n=this.mapSectionDescription(s),a=e[n];return{...e,...a&&{[n]:a.concat([s])}}},i)}getSectionCount(t,i){const e=t[i]?t[i].length:0,s=`${e} result${e===1?"":"s"}`;return{count:e,countDescription:s}}mapSummariesAndCreateTable(t,i,e){let s=[],n=[],a=[],o=[],c=[];return n=this.mapSectionSummaryTables(t,"section-header",this.columns.length),a=this.mapSectionSummaryRows("table-header",t),o=this.mapSectionSummaryRows("table-footer",t),c=this.mapSectionSummaryTables(t,"section-footer",this.columns.length),s=n.concat(i.length>0?[e]:[]).concat(a).concat(i).concat(o).concat(c),s}createTableContent(t,i,e){return t.flatMap((s,n)=>{const{count:a,countDescription:o}=this.getSectionCount(i,s),c=i[s];let l=[];return c&&(Object.keys(this.reportSummaries).length?l=this.mapSummariesAndCreateTable(s,c,e):l=l.concat(c.length>0?[e]:[]).concat(c)),[...this.createSectionHeader(s,n,a,o),...l]})}createSectionHeader(t,i,e,s){const n=[];return i!==0&&n.push([{classes:"dpr-section-header-spacer",colspan:this.columns.length,text:""}]),n.push([{classes:"dpr-section-header",colspan:this.columns.length,html:`<h2 class="govuk-heading-m">${t}${e&&e>0?` <span class='govuk-caption-m'>${s}</span>`:""}</h2>`}]),n.push([{classes:"dpr-section-header-spacer-bottom",colspan:this.columns.length,text:""}]),n}mapSectionSummaryRows(t,i){return this.reportSummaries[t]?this.reportSummaries[t].flatMap(e=>e.data.filter(s=>this.mapSectionDescription(s)===i).map(s=>this.mapRow(s,`dpr-report-summary-cell dpr-report-summary-cell-${t}`,e.fields))):[]}mapSectionSummaryTables(t,i,e){const s=this.reportSummaries[i];if(s){const a=s.map(o=>{const c=o.data.filter(l=>this.mapSectionDescription(l)===t);if(c.length>0){const l=new g.default(o,this.sections).buildTable(c);return`<div class='dpr-summary-container'>${this.convertDataTableToHtml(l)}</div>`}return""}).join("");if(a.length>0)return[[{classes:"dpr-summary-cell",colspan:e,html:`<div class='dpr-summary-container-group dpr-summary-container-group-${i}'>${a}</div>`}]]}return[]}mapSectionDescription(t){const{sections:i}=this;return this.mapNamesToFields(i).map(e=>`${e.display}: ${this.mapCellValue(e,t[e.name])}`).join(", ")}mapSections(t){const i=this.initSectionedHeadings(t);let{sectionedData:e}=i;return this.template!=="summary-section"&&(this.template==="parent-child-section"?e=this.mapDataToSection(t,e):e=this.mapRowsToSection(t,e)),{sectionDescriptions:i.sectionDescriptions,sectionedData:e}}initSectionedHeadings(t){const i=this.mapNamesToFields(this.sections),e=this.createSectionHeadings(t,i),s=this.initSectionData(e);return{sectionDescriptions:e,sectionedData:s}}mapSectionedData(t,i){const{sectionDescriptions:e,sectionedData:s}=this.mapSections(t);return this.createTableContent(e,s,i)}buildTable(t){return{head:null,rows:this.mapSectionedData(t,this.mapHeader(!0,"govuk-table__header")),rowCount:t.length,colCount:this.columns.length}}}var A=p;0&&(module.exports={SectionedDataTableBuilder});
|
|
2
2
|
//# sourceMappingURL=SectionedDataTableBuilder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import Dict = NodeJS.Dict\nimport { components } from '../../types/api'\nimport { Cell, DataTable } from '../DataTableBuilder/types'\nimport type { SummaryTemplate, Template } from '../../types/Templates'\nimport DataTableBuilder from '../DataTableBuilder/DataTableBuilder'\nimport { distinct } from '../arrayUtils'\nimport SummaryDataTableBuilder from '../SummaryDataTableBuilder/SummaryDataTableBuilder'\nimport { SectionSortKey } from './types'\n\nclass SectionedDataTableBuilder extends DataTableBuilder {\n sections: Array<string>\n\n template: Template\n\n constructor(specification: components['schemas']['Specification']) {\n const { fields, sections, template } = specification\n super(fields)\n this.sections = sections\n this.template = template\n }\n\n /**\n * Creates the section heading strings\n *\n * @param {Dict<string>[]} data\n * @param {FieldDefinition[]} sectionFields\n * @return {*} {string[]} array of section headings\n */\n private createSectionHeadings(\n data: Dict<string>[],\n sectionFields: components['schemas']['FieldDefinition'][],\n ): string[] {\n return data\n .map(\n (rowData): SectionSortKey => ({\n description: this.mapSectionDescription(rowData),\n sortKey: this.getSortKey(rowData, sectionFields),\n }),\n )\n .sort(this.sortKeyComparison())\n .map((s) => s.description)\n .reduce(distinct, [])\n }\n\n /**\n * Initialise section heading arrays\n *\n * @private\n * @param {string[]} sectionDescriptions\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n initSectionData(sectionDescriptions: string[]) {\n const sectionedData: Dict<Cell[][]> | Dict<Array<Dict<string>>> = {}\n sectionDescriptions.forEach((sectionDescription) => {\n sectionedData[sectionDescription] = []\n })\n return sectionedData\n }\n\n /**\n * Maps the rows to the correct section\n *\n * @private\n * @param {Array<Dict<string>>} data\n * @param {Dict<Cell[][]>} sectionedData\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private mapRowsToSection(data: Array<Dict<string>>, sectionedData: Dict<Cell[][]>) {\n return data.reduce((previousValue, rowData) => {\n const sectionDescription: string = this.mapSectionDescription(rowData)\n const mappedData = this.mapRow(rowData)\n const previousValueDescription = previousValue[sectionDescription]\n\n return {\n ...previousValue,\n ...(previousValueDescription && {\n [sectionDescription]: previousValueDescription.concat([mappedData]),\n }),\n }\n }, sectionedData)\n }\n\n /**\n * Maps the rows to the correct section\n *\n * @private\n * @param {Array<Dict<string>>} data\n * @param {Dict<Cell[][]>} sectionedData\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private mapDataToSection(data: Array<Dict<string>>, sectionedData: Dict<Array<Dict<string>>>) {\n return data.reduce((previousValue, rowData) => {\n const sectionDescription: string = this.mapSectionDescription(rowData)\n const previousValueDescription = previousValue[sectionDescription]\n const section = {\n ...previousValue,\n ...(previousValueDescription && {\n [sectionDescription]: previousValueDescription.concat([rowData]),\n }),\n }\n return section\n }, sectionedData)\n }\n\n /**\n * Gets the counts for rows in section\n *\n * @param {Dict<Cell[][]>} sectionedData\n * @param {string} sectionDescription\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n getSectionCount(sectionedData: Dict<Cell[][]> | Dict<Dict<string>[]>, sectionDescription: string) {\n const count = sectionedData[sectionDescription] ? sectionedData[sectionDescription].length : 0\n const countDescription = `${count} result${count === 1 ? '' : 's'}`\n\n return {\n count,\n countDescription,\n }\n }\n\n /**\n * Creates the summaries and builds the table with summaries\n *\n * @private\n * @param {string} sectionDescription\n * @param {Cell[][]} mappedTableData\n * @param {Cell[]} header\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private mapSummariesAndCreateTable(sectionDescription: string, mappedTableData: Cell[][], header: Cell[]) {\n let tableContent: Cell[][] = []\n\n let mappedSectionHeaderSummary: Cell[][] = []\n let mappedHeaderSummary: Cell[][] = []\n let mappedFooterSummary: Cell[][] = []\n let mappedSectionFooterSummary: Cell[][] = []\n\n mappedSectionHeaderSummary = this.mapSectionSummaryTables(sectionDescription, 'section-header', this.columns.length)\n mappedHeaderSummary = this.mapSectionSummaryRows('table-header', sectionDescription)\n mappedFooterSummary = this.mapSectionSummaryRows('table-footer', sectionDescription)\n mappedSectionFooterSummary = this.mapSectionSummaryTables(sectionDescription, 'section-footer', this.columns.length)\n\n tableContent = mappedSectionHeaderSummary\n .concat(mappedTableData.length > 0 ? [header] : [])\n .concat(mappedHeaderSummary)\n .concat(mappedTableData)\n .concat(mappedFooterSummary)\n .concat(mappedSectionFooterSummary)\n\n return tableContent\n }\n\n /**\n * Creates the table data\n * - if summaries are present, includes the summaries data\n *\n * @private\n * @param {string[]} sectionDescriptions\n * @param {Dict<Cell[][]>} sectionedData\n * @param {Cell[]} header\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private createTableContent(sectionDescriptions: string[], sectionedData: Dict<Cell[][]>, header: Cell[]) {\n return sectionDescriptions.flatMap((sectionDescription, index) => {\n const { count, countDescription } = this.getSectionCount(sectionedData, sectionDescription)\n const mappedTableData = sectionedData[sectionDescription]\n\n let tableContent: Cell[][] = []\n if (mappedTableData) {\n if (Object.keys(this.reportSummaries).length) {\n tableContent = this.mapSummariesAndCreateTable(sectionDescription, mappedTableData, header)\n } else {\n tableContent = tableContent.concat(mappedTableData.length > 0 ? [header] : []).concat(mappedTableData)\n }\n }\n\n const sectionHeader = this.createSectionHeader(sectionDescription, index, count, countDescription)\n\n return [...sectionHeader, ...tableContent]\n })\n }\n\n createSectionHeader(sectionDescription: string, index: number, count?: number, countDescription?: string) {\n const header = []\n if (index !== 0) {\n header.push([\n {\n classes: 'dpr-section-header-spacer',\n colspan: this.columns.length,\n text: '',\n },\n ])\n }\n header.push([\n {\n classes: 'dpr-section-header',\n colspan: this.columns.length,\n html: `<h2 class=\"govuk-heading-m\">${sectionDescription}${\n count && count > 0 ? ` <span class='govuk-caption-m'>${countDescription}</span>` : ''\n }</h2>`,\n },\n ])\n header.push([\n {\n classes: 'dpr-section-header-spacer-bottom',\n colspan: this.columns.length,\n text: '',\n },\n ])\n return header\n }\n\n private mapSectionSummaryRows(template: SummaryTemplate, sectionDescription: string): Cell[][] {\n if (this.reportSummaries[template]) {\n return this.reportSummaries[template].flatMap((reportSummary) =>\n reportSummary.data\n .filter((rowData) => this.mapSectionDescription(rowData) === sectionDescription)\n .map((rowData) =>\n this.mapRow(\n rowData,\n `dpr-report-summary-cell dpr-report-summary-cell-${template}`,\n <components['schemas']['FieldDefinition'][]>reportSummary.fields,\n ),\n ),\n )\n }\n return []\n }\n\n private mapSectionSummaryTables(\n sectionDescription: string,\n summaryTemplate: SummaryTemplate,\n columnsLength: number,\n ): Cell[][] {\n const summaries = this.reportSummaries[summaryTemplate]\n if (summaries) {\n const htmlTables = summaries.map((summary) => {\n const data = summary.data.filter((row) => this.mapSectionDescription(row) === sectionDescription)\n\n if (data.length > 0) {\n const dataTable = new SummaryDataTableBuilder(summary, this.sections).buildTable(data)\n\n const htmlTable = this.convertDataTableToHtml(dataTable)\n\n return `<div class='dpr-summary-container'>${htmlTable}</div>`\n }\n return ''\n })\n\n const summaryContent = htmlTables.join('')\n if (summaryContent.length > 0) {\n return [\n [\n {\n classes: 'dpr-summary-cell',\n colspan: columnsLength,\n html: `<div class='dpr-summary-container-group dpr-summary-container-group-${summaryTemplate}'>${summaryContent}</div>`,\n },\n ],\n ]\n }\n }\n return []\n }\n\n mapSectionDescription(rowData: NodeJS.Dict<string>): string {\n const { sections } = this\n\n return this.mapNamesToFields(sections)\n .map((s) => `${s.display}: ${this.mapCellValue(s, rowData[s.name])}`)\n .join(', ')\n }\n\n mapSections(data: Array<Dict<string>>) {\n const sectionHeadings = this.initSectionedHeadings(data)\n let { sectionedData } = sectionHeadings\n\n // Maps data to sections\n if (this.template !== 'summary-section') {\n if (this.template === 'parent-child-section') {\n sectionedData = this.mapDataToSection(data, sectionedData as Dict<Dict<string>[]>)\n } else {\n sectionedData = this.mapRowsToSection(data, sectionedData as Dict<Cell[][]>)\n }\n }\n\n return {\n sectionDescriptions: sectionHeadings.sectionDescriptions,\n sectionedData,\n }\n }\n\n initSectionedHeadings(data: Array<Dict<string>>) {\n // Get the section definition data\n const sectionFields = this.mapNamesToFields(this.sections)\n // create the sectionHeadings\n const sectionDescriptions = this.createSectionHeadings(data, sectionFields)\n // init empty sections\n const sectionedData = this.initSectionData(sectionDescriptions)\n\n return {\n sectionDescriptions,\n sectionedData,\n }\n }\n\n /**\n * Creates the table rows.\n *\n * @private\n * @param {Array<Dict<string>>} data\n * @param {Cell[]} header\n * @return {*} {Cell[][]}\n * @memberof SectionedDataTableBuilder\n */\n private mapSectionedData(data: Array<Dict<string>>, header: Cell[]): Cell[][] {\n const { sectionDescriptions, sectionedData } = this.mapSections(data)\n // Create the table\n const tableContent = this.createTableContent(sectionDescriptions, sectionedData as Dict<Cell[][]>, header)\n\n return tableContent\n }\n\n buildTable(data: Array<Dict<string>>): DataTable {\n return {\n head: null,\n rows: this.mapSectionedData(data, this.mapHeader(true, 'govuk-table__header')),\n rowCount: data.length,\n colCount: this.columns.length,\n }\n }\n}\n\nexport { SectionedDataTableBuilder }\nexport default SectionedDataTableBuilder\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import Dict = NodeJS.Dict\nimport { components } from '../../types/api'\nimport { Cell, DataTable } from '../DataTableBuilder/types'\nimport type { SummaryTemplate, Template } from '../../types/Templates'\nimport DataTableBuilder from '../DataTableBuilder/DataTableBuilder'\nimport { distinct } from '../arrayUtils'\nimport SummaryDataTableBuilder from '../SummaryDataTableBuilder/SummaryDataTableBuilder'\nimport { SectionSortKey } from './types'\n\nclass SectionedDataTableBuilder extends DataTableBuilder {\n sections: Array<string>\n\n template: Template\n\n constructor(specification: components['schemas']['Specification']) {\n const { fields, sections, template } = specification\n super(fields)\n this.sections = sections\n this.template = template\n }\n\n /**\n * Creates the section heading strings\n *\n * @param {Dict<string>[]} data\n * @param {FieldDefinition[]} sectionFields\n * @return {*} {string[]} array of section headings\n */\n private createSectionHeadings(\n data: Dict<string>[],\n sectionFields: components['schemas']['FieldDefinition'][],\n ): string[] {\n return data\n .map(\n (rowData): SectionSortKey => ({\n description: this.mapSectionDescription(rowData),\n sortKey: this.getSortKey(rowData, sectionFields),\n }),\n )\n .sort(this.sortKeyComparison())\n .map((s) => s.description)\n .reduce(distinct, [])\n }\n\n /**\n * Initialise section heading arrays\n *\n * @private\n * @param {string[]} sectionDescriptions\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n initSectionData(sectionDescriptions: string[]) {\n const sectionedData: Dict<Cell[][]> | Dict<Array<Dict<string>>> = {}\n sectionDescriptions.forEach((sectionDescription) => {\n sectionedData[sectionDescription] = []\n })\n return sectionedData\n }\n\n /**\n * Maps the rows to the correct section\n *\n * @private\n * @param {Array<Dict<string>>} data\n * @param {Dict<Cell[][]>} sectionedData\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private mapRowsToSection(data: Array<Dict<string>>, sectionedData: Dict<Cell[][]>) {\n return data.reduce((previousValue, rowData) => {\n const sectionDescription: string = this.mapSectionDescription(rowData)\n const mappedData = this.mapRow(rowData)\n const previousValueDescription = previousValue[sectionDescription]\n\n return {\n ...previousValue,\n ...(previousValueDescription && {\n [sectionDescription]: previousValueDescription.concat([mappedData]),\n }),\n }\n }, sectionedData)\n }\n\n /**\n * Maps the rows to the correct section\n *\n * @private\n * @param {Array<Dict<string>>} data\n * @param {Dict<Cell[][]>} sectionedData\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private mapDataToSection(data: Array<Dict<string>>, sectionedData: Dict<Array<Dict<string>>>) {\n return data.reduce((previousValue, rowData) => {\n const sectionDescription: string = this.mapSectionDescription(rowData)\n const previousValueDescription = previousValue[sectionDescription]\n const section = {\n ...previousValue,\n ...(previousValueDescription && {\n [sectionDescription]: previousValueDescription.concat([rowData]),\n }),\n }\n return section\n }, sectionedData)\n }\n\n /**\n * Gets the counts for rows in section\n *\n * @param {Dict<Cell[][]>} sectionedData\n * @param {string} sectionDescription\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n getSectionCount(sectionedData: Dict<Cell[][]> | Dict<Dict<string>[]>, sectionDescription: string) {\n const count = sectionedData[sectionDescription] ? sectionedData[sectionDescription].length : 0\n const countDescription = `${count} result${count === 1 ? '' : 's'}`\n\n return {\n count,\n countDescription,\n }\n }\n\n /**\n * Creates the summaries and builds the table with summaries\n *\n * @private\n * @param {string} sectionDescription\n * @param {Cell[][]} mappedTableData\n * @param {Cell[]} header\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private mapSummariesAndCreateTable(sectionDescription: string, mappedTableData: Cell[][], header: Cell[]) {\n let tableContent: Cell[][] = []\n\n let mappedSectionHeaderSummary: Cell[][] = []\n let mappedHeaderSummary: Cell[][] = []\n let mappedFooterSummary: Cell[][] = []\n let mappedSectionFooterSummary: Cell[][] = []\n\n mappedSectionHeaderSummary = this.mapSectionSummaryTables(sectionDescription, 'section-header', this.columns.length)\n mappedHeaderSummary = this.mapSectionSummaryRows('table-header', sectionDescription)\n mappedFooterSummary = this.mapSectionSummaryRows('table-footer', sectionDescription)\n mappedSectionFooterSummary = this.mapSectionSummaryTables(sectionDescription, 'section-footer', this.columns.length)\n\n tableContent = mappedSectionHeaderSummary\n .concat(mappedTableData.length > 0 ? [header] : [])\n .concat(mappedHeaderSummary)\n .concat(mappedTableData)\n .concat(mappedFooterSummary)\n .concat(mappedSectionFooterSummary)\n\n return tableContent\n }\n\n /**\n * Creates the table data\n * - if summaries are present, includes the summaries data\n *\n * @private\n * @param {string[]} sectionDescriptions\n * @param {Dict<Cell[][]>} sectionedData\n * @param {Cell[]} header\n * @return {*}\n * @memberof SectionedDataTableBuilder\n */\n private createTableContent(sectionDescriptions: string[], sectionedData: Dict<Cell[][]>, header: Cell[]) {\n return sectionDescriptions.flatMap((sectionDescription, index) => {\n const { count, countDescription } = this.getSectionCount(sectionedData, sectionDescription)\n const mappedTableData = sectionedData[sectionDescription]\n\n let tableContent: Cell[][] = []\n if (mappedTableData) {\n if (Object.keys(this.reportSummaries).length) {\n tableContent = this.mapSummariesAndCreateTable(sectionDescription, mappedTableData, header)\n } else {\n tableContent = tableContent.concat(mappedTableData.length > 0 ? [header] : []).concat(mappedTableData)\n }\n }\n\n const sectionHeader = this.createSectionHeader(sectionDescription, index, count, countDescription)\n\n return [...sectionHeader, ...tableContent]\n })\n }\n\n createSectionHeader(sectionDescription: string, index: number, count?: number, countDescription?: string) {\n const header = []\n if (index !== 0) {\n header.push([\n {\n classes: 'dpr-section-header-spacer',\n colspan: this.columns.length,\n text: '',\n },\n ])\n }\n header.push([\n {\n classes: 'dpr-section-header',\n colspan: this.columns.length,\n html: `<h2 class=\"govuk-heading-m\">${sectionDescription}${\n count && count > 0 ? ` <span class='govuk-caption-m'>${countDescription}</span>` : ''\n }</h2>`,\n },\n ])\n header.push([\n {\n classes: 'dpr-section-header-spacer-bottom',\n colspan: this.columns.length,\n text: '',\n },\n ])\n return header\n }\n\n private mapSectionSummaryRows(template: SummaryTemplate, sectionDescription: string): Cell[][] {\n if (this.reportSummaries[template]) {\n return this.reportSummaries[template].flatMap((reportSummary) =>\n reportSummary.data\n .filter((rowData) => this.mapSectionDescription(rowData) === sectionDescription)\n .map((rowData) =>\n this.mapRow(\n rowData,\n `dpr-report-summary-cell dpr-report-summary-cell-${template}`,\n <components['schemas']['FieldDefinition'][]>reportSummary.fields,\n ),\n ),\n )\n }\n return []\n }\n\n private mapSectionSummaryTables(\n sectionDescription: string,\n summaryTemplate: SummaryTemplate,\n columnsLength: number,\n ): Cell[][] {\n const summaries = this.reportSummaries[summaryTemplate]\n if (summaries) {\n const htmlTables = summaries.map((summary) => {\n const data = summary.data.filter((row) => this.mapSectionDescription(row) === sectionDescription)\n\n if (data.length > 0) {\n const dataTable = new SummaryDataTableBuilder(summary, this.sections).buildTable(data)\n\n const htmlTable = this.convertDataTableToHtml(dataTable)\n\n return `<div class='dpr-summary-container'>${htmlTable}</div>`\n }\n return ''\n })\n\n const summaryContent = htmlTables.join('')\n if (summaryContent.length > 0) {\n return [\n [\n {\n classes: 'dpr-summary-cell',\n colspan: columnsLength,\n html: `<div class='dpr-summary-container-group dpr-summary-container-group-${summaryTemplate}'>${summaryContent}</div>`,\n },\n ],\n ]\n }\n }\n return []\n }\n\n mapSectionDescription(rowData: NodeJS.Dict<string>): string {\n const { sections } = this\n\n return this.mapNamesToFields(sections)\n .map((s) => `${s.display}: ${this.mapCellValue(s, rowData[s.name])}`)\n .join(', ')\n }\n\n mapSections(data: Array<Dict<string>>) {\n const sectionHeadings = this.initSectionedHeadings(data)\n let { sectionedData } = sectionHeadings\n\n // Maps data to sections\n if (this.template !== 'summary-section') {\n if (this.template === 'parent-child-section') {\n sectionedData = this.mapDataToSection(data, sectionedData as Dict<Dict<string>[]>)\n } else {\n sectionedData = this.mapRowsToSection(data, sectionedData as Dict<Cell[][]>)\n }\n }\n\n return {\n sectionDescriptions: sectionHeadings.sectionDescriptions,\n sectionedData,\n }\n }\n\n initSectionedHeadings(data: Array<Dict<string>>) {\n // Get the section definition data\n const sectionFields = this.mapNamesToFields(this.sections)\n // create the sectionHeadings\n const sectionDescriptions = this.createSectionHeadings(data, sectionFields)\n // init empty sections\n const sectionedData = this.initSectionData(sectionDescriptions)\n\n return {\n sectionDescriptions,\n sectionedData,\n }\n }\n\n /**\n * Creates the table rows.\n *\n * @private\n * @param {Array<Dict<string>>} data\n * @param {Cell[]} header\n * @return {*} {Cell[][]}\n * @memberof SectionedDataTableBuilder\n */\n private mapSectionedData(data: Array<Dict<string>>, header: Cell[]): Cell[][] {\n const { sectionDescriptions, sectionedData } = this.mapSections(data)\n // Create the table\n const tableContent = this.createTableContent(sectionDescriptions, sectionedData as Dict<Cell[][]>, header)\n\n return tableContent\n }\n\n override buildTable(data: Array<Dict<string>>): DataTable {\n return {\n head: null,\n rows: this.mapSectionedData(data, this.mapHeader(true, 'govuk-table__header')),\n rowCount: data.length,\n colCount: this.columns.length,\n }\n }\n}\n\nexport { SectionedDataTableBuilder }\nexport default SectionedDataTableBuilder\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["SectionedDataTableBuilder_exports", "__export", "SectionedDataTableBuilder", "SectionedDataTableBuilder_default", "__toCommonJS", "import_DataTableBuilder", "import_arrayUtils", "import_SummaryDataTableBuilder", "DataTableBuilder", "specification", "fields", "sections", "template", "data", "sectionFields", "rowData", "s", "sectionDescriptions", "sectionedData", "sectionDescription", "previousValue", "mappedData", "previousValueDescription", "count", "countDescription", "mappedTableData", "header", "tableContent", "mappedSectionHeaderSummary", "mappedHeaderSummary", "mappedFooterSummary", "mappedSectionFooterSummary", "index", "reportSummary", "summaryTemplate", "columnsLength", "summaries", "summaryContent", "summary", "row", "dataTable", "SummaryDataTableBuilder", "sectionHeadings"]
|
|
7
7
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { expect } from '@jest/globals'
|
|
1
2
|
import Dict = NodeJS.Dict
|
|
2
3
|
import { components } from '../../types/api'
|
|
3
4
|
import SectionedDataTableBuilder from './SectionedDataTableBuilder'
|
|
@@ -30,6 +31,7 @@ const data: Array<Dict<string>> = [
|
|
|
30
31
|
]
|
|
31
32
|
const fields: Array<components['schemas']['FieldDefinition']> = [
|
|
32
33
|
{
|
|
34
|
+
header: false,
|
|
33
35
|
name: 'sectionOne',
|
|
34
36
|
display: 'Section One',
|
|
35
37
|
sortable: true,
|
|
@@ -40,6 +42,7 @@ const fields: Array<components['schemas']['FieldDefinition']> = [
|
|
|
40
42
|
calculated: false,
|
|
41
43
|
},
|
|
42
44
|
{
|
|
45
|
+
header: false,
|
|
43
46
|
name: 'sectionTwo',
|
|
44
47
|
display: 'Section Two',
|
|
45
48
|
sortable: true,
|
|
@@ -50,6 +53,7 @@ const fields: Array<components['schemas']['FieldDefinition']> = [
|
|
|
50
53
|
calculated: false,
|
|
51
54
|
},
|
|
52
55
|
{
|
|
56
|
+
header: false,
|
|
53
57
|
name: 'oranges',
|
|
54
58
|
display: 'Oranges!',
|
|
55
59
|
sortable: true,
|
|
@@ -60,6 +64,7 @@ const fields: Array<components['schemas']['FieldDefinition']> = [
|
|
|
60
64
|
calculated: false,
|
|
61
65
|
},
|
|
62
66
|
{
|
|
67
|
+
header: false,
|
|
63
68
|
name: 'lemons',
|
|
64
69
|
display: 'Lemons?!',
|
|
65
70
|
sortable: true,
|
|
@@ -328,7 +328,7 @@ class SectionedDataTableBuilder extends DataTableBuilder {
|
|
|
328
328
|
return tableContent
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
buildTable(data: Array<Dict<string>>): DataTable {
|
|
331
|
+
override buildTable(data: Array<Dict<string>>): DataTable {
|
|
332
332
|
return {
|
|
333
333
|
head: null,
|
|
334
334
|
rows: this.mapSectionedData(data, this.mapHeader(true, 'govuk-table__header')),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var i=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var s=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of c(e))!p.call(t,r)&&r!==n&&i(t,r,{get:()=>e[r],enumerable:!(o=S(e,r))||o.enumerable});return t};var y=t=>s(i({},"__esModule",{value:!0}),t);var K={};module.exports=y(K);
|
|
1
|
+
"use strict";var i=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var s=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of c(e))!p.call(t,r)&&r!==n&&i(t,r,{get:()=>e[r],enumerable:!(o=S(e,r))||o.enumerable});return t};var y=t=>s(i({},"__esModule",{value:!0}),t);var K={};module.exports=y(K);
|
|
2
2
|
//# sourceMappingURL=types.d.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dpr/utils/SectionedDataTableBuilder/types.d.ts"],
|
|
4
4
|
"sourcesContent": ["import { SortKey } from '../DataTableBuilder/types'\n\nexport interface SectionSortKey extends SortKey {\n description: string\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
|
|
6
6
|
"names": ["types_d_exports", "__toCommonJS"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var p=Object.create;var o=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var g=(a,i)=>{for(var t in i)o(a,t,{get:i[t],enumerable:!0})},h=(a,i,t,
|
|
1
|
+
"use strict";var p=Object.create;var o=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var g=(a,i)=>{for(var t in i)o(a,t,{get:i[t],enumerable:!0})},h=(a,i,t,d)=>{if(i&&typeof i=="object"||typeof i=="function")for(let e of u(i))!F.call(a,e)&&e!==t&&o(a,e,{get:()=>i[e],enumerable:!(d=f(i,e))||d.enumerable});return a};var y=(a,i,t)=>(t=a!=null?p(D(a)):{},h(i||!a||!a.__esModule?o(t,"default",{value:a,enumerable:!0}):t,a)),C=a=>h(o({},"__esModule",{value:!0}),a);var T={};g(T,{SectionedFieldsDataTableBuilder:()=>c,default:()=>S});module.exports=C(T);var m=y(require("../ParentChildDataTableBuilder/ParentChildDataTableBuilder"));class c extends m.default{constructor(i){const{sectionedFields:t,template:d}=i.specification;super(i),this.sectionedFields=t,this.sections=this.sectionedFields.map(e=>e.name),this.template=d,this.childVariants=this.variant.childVariants||[]}getChildFields(i){const t=this.childVariants.find(e=>e.id===i);let d=[];if(t){const{specification:e}=t;d=e?e.fields:d}return d}getJoinKey(){return this.childVariants[0].joinFields[0]}initSectionedData(i){return i.flatMap(t=>this.sectionedFields.map(e=>{const s=this.mapNamesToFields([e.name])[0];let n=[];const{child:r}=e;return e.fields?n=this.mapNamesToFields(e.fields):e.child&&(n=this.getChildFields(e.child)),{header:s,fields:n,child:r}}).map(e=>{if(e.child){const s=this.getChildData(e.child),n=e.fields.filter(l=>l.visible),r=this.getJoinKey();return{header:e.header.display,fields:s?s.data.filter(l=>l[r]===t[r]).map(l=>({heading:l[n[0]?.name]||"Not found",data:l[n[1]?.name]||"Not found"})):[]}}return{header:e.header.display,fields:e.fields.filter(s=>s.visible).map(s=>({heading:s.display,data:t[s.name]}))}}))}getChildData(i){return this.childData.find(t=>t.id===i)}createRows(i){return this.initSectionedData(i).flatMap((e,s)=>{let n=[];e.header&&(n=this.createSectionHeader(e.header,s));const r=e.fields.map(l=>[{text:l.heading,classes:"dpr-row-heading"},{text:l.data,classes:"dpr-row-heading-data"}]);return[...n,...r]})}buildTable(i){return{head:[],rows:this.createRows(i),rowCount:i.length,colCount:this.columns.length}}}var S=c;0&&(module.exports={SectionedFieldsDataTableBuilder});
|
|
2
2
|
//# sourceMappingURL=SectionedFieldsTableBuilder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import Dict = NodeJS.Dict\nimport { components } from '../../types/api'\nimport { Cell, DataTable, FieldDefinition } from '../DataTableBuilder/types'\nimport type { Template } from '../../types/Templates'\nimport ParentChildDataTableBuilder from '../ParentChildDataTableBuilder/ParentChildDataTableBuilder'\n\ninterface SectionedField {\n name: string\n fields?: string[]\n child?: string\n}\n\nclass SectionedFieldsDataTableBuilder extends ParentChildDataTableBuilder {\n // TODO: change this to use schema type if ever implemented in the backend\n sectionedFields: SectionedField[]\n\n template: Template\n\n childVariants: components['schemas']['ChildVariantDefinition'][]\n\n constructor(variant: components['schemas']['VariantDefinition']) {\n // TODO: removed the union if sectionedFields changed to use schema type\n const { sectionedFields, template } = variant.specification as components['schemas']['Specification'] & {\n sectionedFields: SectionedField[]\n }\n super(variant)\n\n this.sectionedFields = sectionedFields\n this.sections = this.sectionedFields.map((f) => f.name)\n this.template = template\n this.childVariants = this.variant.childVariants || []\n }\n\n getChildFields(childId: string): FieldDefinition[] {\n const childVariant = this.childVariants.find((child) => child.id === childId)\n let fields: FieldDefinition[] = []\n if (childVariant) {\n const { specification } = childVariant\n fields = specification ? specification.fields : fields\n }\n return fields\n }\n\n getJoinKey() {\n return this.childVariants[0].joinFields[0]\n }\n\n initSectionedData(data: Array<Dict<string>>) {\n return data.flatMap((row) => {\n const initialisedSectionsWithFields = this.sectionedFields.map((section) => {\n const sectionHeader = this.mapNamesToFields([section.name])[0]\n\n let fields: FieldDefinition[] = []\n const { child } = section\n\n if (section.fields) {\n fields = this.mapNamesToFields(section.fields)\n } else if (section.child) {\n fields = this.getChildFields(section.child)\n }\n\n return {\n header: sectionHeader,\n fields,\n child,\n }\n })\n\n return initialisedSectionsWithFields.map((section) => {\n if (section.child) {\n const childData = this.getChildData(section.child)\n const displayFields = section.fields.filter((f) => f.visible)\n const joinKey = this.getJoinKey()\n\n return {\n header: section.header.display,\n fields: childData\n ? childData.data\n .filter((cd) => cd[joinKey] === row[joinKey])\n .map((cd) => {\n return {\n heading: cd[displayFields[0]?.name] || 'Not found',\n data: cd[displayFields[1]?.name] || 'Not found',\n }\n })\n : [],\n }\n }\n return {\n header: section.header.display,\n fields: section.fields\n .filter((f) => f.visible)\n .map((f) => {\n return {\n heading: f.display,\n data: row[f.name],\n }\n }),\n }\n })\n })\n }\n\n getChildData(childId: string) {\n return this.childData.find((d) => d.id === childId)\n }\n\n createRows(data: Array<Dict<string>>): Cell[][] {\n const sectionedData = this.initSectionedData(data)\n\n const rows = sectionedData.flatMap((section, index) => {\n let sectionHeaderRow: Cell[][] = []\n if (section.header) {\n sectionHeaderRow = this.createSectionHeader(section.header, index)\n }\n\n const sectionRows = section.fields.map((field) => {\n return [\n {\n text: field.heading,\n classes: 'dpr-row-heading',\n },\n {\n text: field.data,\n classes: 'dpr-row-heading-data',\n },\n ]\n })\n\n return [...sectionHeaderRow, ...sectionRows]\n })\n\n return rows\n }\n\n buildTable(data: Array<Dict<string>>): DataTable {\n return {\n head: [\n // { text: '', classes: 'dpr-row-section-header' },\n // { text: '', classes: 'dpr-row-section-header-value' },\n ],\n rows: this.createRows(data),\n rowCount: data.length,\n colCount: this.columns.length,\n }\n }\n}\n\nexport { SectionedFieldsDataTableBuilder }\nexport default SectionedFieldsDataTableBuilder\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import Dict = NodeJS.Dict\nimport { components } from '../../types/api'\nimport { Cell, DataTable, FieldDefinition } from '../DataTableBuilder/types'\nimport type { Template } from '../../types/Templates'\nimport ParentChildDataTableBuilder from '../ParentChildDataTableBuilder/ParentChildDataTableBuilder'\n\ninterface SectionedField {\n name: string\n fields?: string[]\n child?: string\n}\n\nclass SectionedFieldsDataTableBuilder extends ParentChildDataTableBuilder {\n // TODO: change this to use schema type if ever implemented in the backend\n sectionedFields: SectionedField[]\n\n override template: Template\n\n override childVariants: components['schemas']['ChildVariantDefinition'][]\n\n constructor(variant: components['schemas']['VariantDefinition']) {\n // TODO: removed the union if sectionedFields changed to use schema type\n const { sectionedFields, template } = variant.specification as components['schemas']['Specification'] & {\n sectionedFields: SectionedField[]\n }\n super(variant)\n\n this.sectionedFields = sectionedFields\n this.sections = this.sectionedFields.map((f) => f.name)\n this.template = template\n this.childVariants = this.variant.childVariants || []\n }\n\n getChildFields(childId: string): FieldDefinition[] {\n const childVariant = this.childVariants.find((child) => child.id === childId)\n let fields: FieldDefinition[] = []\n if (childVariant) {\n const { specification } = childVariant\n fields = specification ? specification.fields : fields\n }\n return fields\n }\n\n getJoinKey() {\n return this.childVariants[0].joinFields[0]\n }\n\n initSectionedData(data: Array<Dict<string>>) {\n return data.flatMap((row) => {\n const initialisedSectionsWithFields = this.sectionedFields.map((section) => {\n const sectionHeader = this.mapNamesToFields([section.name])[0]\n\n let fields: FieldDefinition[] = []\n const { child } = section\n\n if (section.fields) {\n fields = this.mapNamesToFields(section.fields)\n } else if (section.child) {\n fields = this.getChildFields(section.child)\n }\n\n return {\n header: sectionHeader,\n fields,\n child,\n }\n })\n\n return initialisedSectionsWithFields.map((section) => {\n if (section.child) {\n const childData = this.getChildData(section.child)\n const displayFields = section.fields.filter((f) => f.visible)\n const joinKey = this.getJoinKey()\n\n return {\n header: section.header.display,\n fields: childData\n ? childData.data\n .filter((cd) => cd[joinKey] === row[joinKey])\n .map((cd) => {\n return {\n heading: cd[displayFields[0]?.name] || 'Not found',\n data: cd[displayFields[1]?.name] || 'Not found',\n }\n })\n : [],\n }\n }\n return {\n header: section.header.display,\n fields: section.fields\n .filter((f) => f.visible)\n .map((f) => {\n return {\n heading: f.display,\n data: row[f.name],\n }\n }),\n }\n })\n })\n }\n\n getChildData(childId: string) {\n return this.childData.find((d) => d.id === childId)\n }\n\n createRows(data: Array<Dict<string>>): Cell[][] {\n const sectionedData = this.initSectionedData(data)\n\n const rows = sectionedData.flatMap((section, index) => {\n let sectionHeaderRow: Cell[][] = []\n if (section.header) {\n sectionHeaderRow = this.createSectionHeader(section.header, index)\n }\n\n const sectionRows = section.fields.map((field) => {\n return [\n {\n text: field.heading,\n classes: 'dpr-row-heading',\n },\n {\n text: field.data,\n classes: 'dpr-row-heading-data',\n },\n ]\n })\n\n return [...sectionHeaderRow, ...sectionRows]\n })\n\n return rows\n }\n\n override buildTable(data: Array<Dict<string>>): DataTable {\n return {\n head: [\n // { text: '', classes: 'dpr-row-section-header' },\n // { text: '', classes: 'dpr-row-section-header-value' },\n ],\n rows: this.createRows(data),\n rowCount: data.length,\n colCount: this.columns.length,\n }\n }\n}\n\nexport { SectionedFieldsDataTableBuilder }\nexport default SectionedFieldsDataTableBuilder\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["SectionedFieldsTableBuilder_exports", "__export", "SectionedFieldsDataTableBuilder", "SectionedFieldsTableBuilder_default", "__toCommonJS", "import_ParentChildDataTableBuilder", "ParentChildDataTableBuilder", "variant", "sectionedFields", "template", "f", "childId", "childVariant", "child", "fields", "specification", "data", "row", "section", "sectionHeader", "childData", "displayFields", "joinKey", "cd", "d", "index", "sectionHeaderRow", "sectionRows", "field"]
|
|
7
7
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { expect } from '@jest/globals'
|
|
1
2
|
import { components } from '../../types/api'
|
|
2
3
|
import SectionedFieldsTableBuilder from './SectionedFieldsTableBuilder'
|
|
3
4
|
|
|
@@ -22,7 +23,7 @@ describe('SectionedFieldsDataTableBuilder', () => {
|
|
|
22
23
|
const table = new SectionedFieldsTableBuilder(rowSectionVariant)
|
|
23
24
|
.withHeaderOptions({
|
|
24
25
|
columns: new Array(2),
|
|
25
|
-
interactive: rowSectionVariant.interactive,
|
|
26
|
+
interactive: Boolean(rowSectionVariant.interactive),
|
|
26
27
|
})
|
|
27
28
|
.withChildData([])
|
|
28
29
|
.buildTable(variant30Data)
|
|
@@ -72,15 +73,17 @@ describe('SectionedFieldsDataTableBuilder', () => {
|
|
|
72
73
|
const table = new SectionedFieldsTableBuilder(rowSectionChildVariant)
|
|
73
74
|
.withHeaderOptions({
|
|
74
75
|
columns: new Array(2),
|
|
75
|
-
interactive: rowSectionChildVariant.interactive,
|
|
76
|
+
interactive: Boolean(rowSectionChildVariant.interactive),
|
|
76
77
|
})
|
|
77
78
|
.withChildData([
|
|
78
79
|
{
|
|
79
|
-
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
81
|
+
id: rowSectionChildVariant.childVariants![0].id,
|
|
80
82
|
data: variant31Data.childData(),
|
|
81
83
|
},
|
|
82
84
|
{
|
|
83
|
-
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
86
|
+
id: rowSectionChildVariant.childVariants![1].id,
|
|
84
87
|
data: variant31Data.childData2(),
|
|
85
88
|
},
|
|
86
89
|
])
|
|
@@ -14,9 +14,9 @@ class SectionedFieldsDataTableBuilder extends ParentChildDataTableBuilder {
|
|
|
14
14
|
// TODO: change this to use schema type if ever implemented in the backend
|
|
15
15
|
sectionedFields: SectionedField[]
|
|
16
16
|
|
|
17
|
-
template: Template
|
|
17
|
+
override template: Template
|
|
18
18
|
|
|
19
|
-
childVariants: components['schemas']['ChildVariantDefinition'][]
|
|
19
|
+
override childVariants: components['schemas']['ChildVariantDefinition'][]
|
|
20
20
|
|
|
21
21
|
constructor(variant: components['schemas']['VariantDefinition']) {
|
|
22
22
|
// TODO: removed the union if sectionedFields changed to use schema type
|
|
@@ -133,7 +133,7 @@ class SectionedFieldsDataTableBuilder extends ParentChildDataTableBuilder {
|
|
|
133
133
|
return rows
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
buildTable(data: Array<Dict<string>>): DataTable {
|
|
136
|
+
override buildTable(data: Array<Dict<string>>): DataTable {
|
|
137
137
|
return {
|
|
138
138
|
head: [
|
|
139
139
|
// { text: '', classes: 'dpr-row-section-header' },
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var n=Object.create;var l=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var y=(a,e)=>{for(var r in e)l(a,r,{get:e[r],enumerable:!0})},o=(a,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!p.call(a,t)&&t!==r&&l(a,t,{get:()=>e[t],enumerable:!(s=c(e,t))||s.enumerable});return a};var b=(a,e,r)=>(r=a!=null?n(f(a)):{},o(e||!a||!a.__esModule?l(r,"default",{value:a,enumerable:!0}):r,a)),T=a=>o(l({},"__esModule",{value:!0}),a);var S={};y(S,{SummaryDataTableBuilder:()=>i,default:()=>D});module.exports=T(S);var u=b(require("../DataTableBuilder/DataTableBuilder"));class i extends u.default{constructor(e,r){const s=e.fields.filter(m=>!r||!r.includes(m.name)).map(m=>m.name),t=e.fields.map(m=>({...m,calculated:!1,sortable:!1,defaultsort:!1,mandatory:!0,visible:!0}));super(t,!0),this.summary=e,this.columns=s}buildSummaryTable(){return super.buildTable(this.summary.data)}}var D=i;0&&(module.exports={SummaryDataTableBuilder});
|
|
1
|
+
"use strict";var n=Object.create;var l=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var y=(a,e)=>{for(var r in e)l(a,r,{get:e[r],enumerable:!0})},o=(a,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of d(e))!p.call(a,t)&&t!==r&&l(a,t,{get:()=>e[t],enumerable:!(s=c(e,t))||s.enumerable});return a};var b=(a,e,r)=>(r=a!=null?n(f(a)):{},o(e||!a||!a.__esModule?l(r,"default",{value:a,enumerable:!0}):r,a)),T=a=>o(l({},"__esModule",{value:!0}),a);var S={};y(S,{SummaryDataTableBuilder:()=>i,default:()=>D});module.exports=T(S);var u=b(require("../DataTableBuilder/DataTableBuilder"));class i extends u.default{constructor(e,r){const s=e.fields.filter(m=>!r||!r.includes(m.name)).map(m=>m.name),t=e.fields.map(m=>({...m,calculated:!1,sortable:!1,defaultsort:!1,mandatory:!0,visible:!0}));super(t,!0),this.summary=e,this.columns=s}buildSummaryTable(){return super.buildTable(this.summary.data)}}var D=i;0&&(module.exports={SummaryDataTableBuilder});
|
|
2
2
|
//# sourceMappingURL=SummaryDataTableBuilder.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.ts"],
|
|
4
4
|
"sourcesContent": ["import { components } from '../../types/api'\nimport { AsyncSummary } from '../../types/UserReports'\nimport DataTableBuilder from '../DataTableBuilder/DataTableBuilder'\nimport { DataTable } from '../DataTableBuilder/types'\n\nclass SummaryDataTableBuilder extends DataTableBuilder {\n private summary: AsyncSummary\n\n constructor(summary: AsyncSummary, sections?: Array<string>) {\n const columns = summary.fields\n .filter((field) => !sections || !sections.includes(field.name))\n .map((field) => field.name)\n\n const fields = summary.fields.map((field) => ({\n ...field,\n calculated: false,\n sortable: false,\n defaultsort: false,\n mandatory: true,\n visible: true,\n }))\n\n super(<components['schemas']['FieldDefinition'][]>fields, true)\n\n this.summary = summary\n this.columns = columns\n }\n\n buildSummaryTable(): DataTable {\n return super.buildTable(this.summary.data)\n }\n}\n\nexport { SummaryDataTableBuilder }\nexport default SummaryDataTableBuilder\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAEA,IAAAK,EAA6B,mDAG7B,MAAMH,UAAgC,EAAAI,OAAiB,CAGrD,YAAYC,EAAuBC,EAA0B,CAC3D,MAAMC,EAAUF,EAAQ,OACrB,OAAQG,GAAU,CAACF,GAAY,CAACA,EAAS,SAASE,EAAM,IAAI,CAAC,EAC7D,IAAKA,GAAUA,EAAM,IAAI,EAEtBC,EAASJ,EAAQ,OAAO,IAAKG,IAAW,CAC5C,GAAGA,EACH,WAAY,GACZ,SAAU,GACV,YAAa,GACb,UAAW,GACX,QAAS,EACX,EAAE,EAEF,MAAkDC,EAAQ,EAAI,EAE9D,KAAK,QAAUJ,EACf,KAAK,QAAUE,CACjB,CAEA,mBAA+B,CAC7B,OAAO,MAAM,WAAW,KAAK,QAAQ,IAAI,CAC3C,CACF,CAGA,IAAON,EAAQD",
|
|
6
6
|
"names": ["SummaryDataTableBuilder_exports", "__export", "SummaryDataTableBuilder", "SummaryDataTableBuilder_default", "__toCommonJS", "import_DataTableBuilder", "DataTableBuilder", "summary", "sections", "columns", "field", "fields"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var I=Object.create;var u=Object.defineProperty;var
|
|
1
|
+
"use strict";var I=Object.create;var u=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var f=(r,t)=>{for(var e in t)u(r,e,{get:t[e],enumerable:!0})},d=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of y(t))!g.call(r,s)&&s!==e&&u(r,s,{get:()=>t[s],enumerable:!(i=D(t,s))||i.enumerable});return r};var q=(r,t,e)=>(e=r!=null?I(R(r)):{},d(t||!r||!r.__esModule?u(e,"default",{value:r,enumerable:!0}):e,r)),U=r=>d(u({},"__esModule",{value:!0}),r);var b={};f(b,{UserStoreItemBuilder:()=>h,default:()=>E});module.exports=U(b);var p=q(require("parseurl")),o=require("../types/UserReports");class h{constructor(t,e){this.build=()=>this.userStoreItem;this.addReportData=({type:t,reportId:e,reportName:i,description:s,id:m,name:n})=>({type:t,reportId:e,reportName:i,description:s,id:m,name:n,timestamp:{}});this.addExecutionData=t=>(this.userStoreItem={...this.userStoreItem,...t},this);this.addChildExecutionData=t=>(this.userStoreItem={...this.userStoreItem,childExecutionData:t},this);this.addFilters=t=>{const e=new URLSearchParams(t).toString();return this.userStoreItem={...this.userStoreItem,filters:{data:t,queryString:e}},this};this.addSortData=t=>{const e=new URLSearchParams(t).toString();return this.userStoreItem={...this.userStoreItem,sortBy:{data:t,queryString:e}},this};this.addRequestUrls=t=>{const{origin:e,pathname:i,search:s,href:m}=this.requestFormData,{executionId:n,dataProductDefinitionsPath:S,dpdPathFromQuery:l}=this.userStoreItem;let a=t.baseUrl.replace("/filters",`/${n}/status`);l&&(a=`${a}?dataProductDefinitionsPath=${S}`);const c=`${e}${a}`;return this.userStoreItem={...this.userStoreItem,url:{origin:e,request:{fullUrl:m,pathname:i,search:s},polling:{fullUrl:c,pathname:a}}},this};this.addAsyncUrls=t=>(t&&(this.userStoreItem={...this.userStoreItem,url:t}),this);this.addReportUrls=t=>{const e=t.get("host"),i=`${t.protocol}://${t.get("host")}${t.originalUrl}`,s=(0,p.default)(t);return this.userStoreItem={...this.userStoreItem,url:{origin:e||this.userStoreItem.url?.origin||"",...this.userStoreItem.url?.request&&{request:this.userStoreItem.url.request},...this.userStoreItem.url?.polling&&{polling:this.userStoreItem.url.polling},report:{...this.userStoreItem.url?.report&&this.userStoreItem.url.report,fullUrl:i,...s&&s.search&&{search:s.search}}}},this};this.addLoadType=t=>(this.userStoreItem={...this.userStoreItem,loadType:t},this);this.addQuery=t=>(this.userStoreItem={...this.userStoreItem,...t&&{query:{data:t.query,summary:t.querySummary}}},this);this.addInteractiveQuery=t=>(t&&(this.userStoreItem={...this.userStoreItem,interactiveQuery:{data:t.query,summary:t.querySummary}}),this);this.addStatus=t=>(this.userStoreItem={...this.userStoreItem,status:t},this);this.addMetrics=t=>(this.userStoreItem={...this.userStoreItem,metrics:t.filter(e=>e.display).map(e=>({name:e.display||""}))},this);this.addTimestamp=()=>{const{status:t}=this.userStoreItem,e=new Date;switch(t){case o.RequestStatus.FAILED:this.userStoreItem.timestamp.failed=e;break;case o.RequestStatus.EXPIRED:this.userStoreItem.timestamp.expired=e;break;case o.RequestStatus.ABORTED:this.userStoreItem.timestamp.aborted=e;break;case o.RequestStatus.FINISHED:this.userStoreItem.timestamp.completed=e;break;case o.RequestStatus.SUBMITTED:this.userStoreItem.timestamp.requested=e;break;case o.RequestStatus.STARTED:case o.RequestStatus.PICKED:break;default:this.userStoreItem.timestamp.lastViewed=e;break}return this};this.addDefinitionsPath=(t,e)=>(t&&(this.userStoreItem={...this.userStoreItem,dataProductDefinitionsPath:t,dpdPathFromQuery:e}),this);this.requestFormData=e||{},this.userStoreItem=this.addReportData(t)}}var E=h;0&&(module.exports={UserStoreItemBuilder});
|
|
2
2
|
//# sourceMappingURL=UserStoreItemBuilder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/utils/UserStoreItemBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Request } from 'express'\nimport parseUrl from 'parseurl'\nimport {\n AsyncReportUrlData,\n LoadType,\n ReportType,\n RequestedReport,\n RequestFormData,\n RequestStatus,\n UserReportData,\n} from '../types/UserReports'\nimport Dict = NodeJS.Dict\nimport { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'\nimport { components } from '../types/api'\n\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { Request } from 'express'\nimport parseUrl from 'parseurl'\nimport {\n AsyncReportUrlData,\n LoadType,\n ReportType,\n RequestedReport,\n RequestFormData,\n RequestStatus,\n UserReportData,\n} from '../types/UserReports'\nimport Dict = NodeJS.Dict\nimport { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'\nimport { components } from '../types/api'\n\ninterface ReportData {\n type: ReportType\n reportId: string\n reportName: string\n description: string\n id: string\n name: string\n}\n\nclass UserStoreItemBuilder {\n userStoreItem: UserReportData\n\n requestFormData: RequestFormData | Record<string, never>\n\n constructor(reportData: ReportData, requestFormData?: RequestFormData) {\n this.requestFormData = requestFormData || {}\n this.userStoreItem = this.addReportData(reportData)\n }\n\n build = () => {\n return this.userStoreItem as RequestedReport\n }\n\n addReportData = ({ type, reportId, reportName, description, id, name }: ReportData) => {\n return {\n type: type as ReportType,\n reportId,\n reportName,\n description,\n id,\n name,\n timestamp: {},\n }\n }\n\n addExecutionData = (executionData: ExecutionData) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n ...executionData,\n }\n return this\n }\n\n addChildExecutionData = (childExecutionData: Array<ChildReportExecutionData>) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n childExecutionData,\n }\n return this\n }\n\n addFilters = (filterData?: Record<string, string>) => {\n const filtersQueryString = new URLSearchParams(filterData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n filters: {\n data: filterData,\n queryString: filtersQueryString,\n },\n },\n }\n return this\n }\n\n addSortData = (sortData: Record<string, string>) => {\n const sortByQueryString = new URLSearchParams(sortData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n sortBy: {\n data: sortData,\n queryString: sortByQueryString,\n },\n },\n }\n return this\n }\n\n addRequestUrls = (req: Request) => {\n const { origin, pathname, search, href } = this.requestFormData\n const { executionId, dataProductDefinitionsPath, dpdPathFromQuery } = this.userStoreItem\n\n // Polling path\n let pollingPath = req.baseUrl.replace('/filters', `/${executionId}/status`)\n if (dpdPathFromQuery) {\n pollingPath = `${pollingPath}?dataProductDefinitionsPath=${dataProductDefinitionsPath}`\n }\n const pollingFullUrl = `${origin}${pollingPath}`\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin,\n request: {\n fullUrl: href,\n pathname,\n search,\n },\n polling: {\n fullUrl: pollingFullUrl,\n pathname: pollingPath,\n },\n },\n },\n }\n\n return this\n }\n\n addAsyncUrls = (url?: AsyncReportUrlData) => {\n if (url) {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url,\n },\n }\n }\n\n return this\n }\n\n addReportUrls = (req: Request) => {\n const origin = req.get('host')\n const fullUrl = `${req.protocol}://${req.get('host')}${req.originalUrl}`\n const urlData = parseUrl(req)\n\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin: origin || this.userStoreItem.url?.origin || '',\n ...(this.userStoreItem.url?.request && { request: this.userStoreItem.url.request }),\n ...(this.userStoreItem.url?.polling && { polling: this.userStoreItem.url.polling }),\n report: {\n ...(this.userStoreItem.url?.report && this.userStoreItem.url.report),\n fullUrl,\n ...(urlData && urlData.search && { search: urlData.search }),\n },\n },\n },\n }\n\n return this\n }\n\n addLoadType = (loadType: LoadType) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n loadType,\n }\n\n return this\n }\n\n addQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...(queryData && {\n query: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n }),\n }\n return this\n }\n\n addInteractiveQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n if (queryData) {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n interactiveQuery: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n },\n }\n }\n return this\n }\n\n addStatus = (status: RequestStatus) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n status,\n }\n return this\n }\n\n addMetrics = (metrics: components['schemas']['DashboardSectionDefinition'][]) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n metrics: metrics.filter((metric) => metric.display).map((metric) => ({ name: metric.display || '' })),\n }\n return this\n }\n\n addTimestamp = () => {\n const { status } = this.userStoreItem\n const ts = new Date()\n switch (status) {\n case RequestStatus.FAILED:\n this.userStoreItem.timestamp.failed = ts\n break\n case RequestStatus.EXPIRED:\n this.userStoreItem.timestamp.expired = ts\n break\n case RequestStatus.ABORTED:\n this.userStoreItem.timestamp.aborted = ts\n break\n case RequestStatus.FINISHED:\n this.userStoreItem.timestamp.completed = ts\n break\n case RequestStatus.SUBMITTED:\n this.userStoreItem.timestamp.requested = ts\n break\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n break\n default:\n this.userStoreItem.timestamp.lastViewed = ts\n break\n }\n return this\n }\n\n addDefinitionsPath = (definitionsPath: string, dpdPathFromQuery: boolean) => {\n if (definitionsPath) {\n this.userStoreItem = {\n ...this.userStoreItem,\n dataProductDefinitionsPath: definitionsPath,\n dpdPathFromQuery,\n }\n }\n return this\n }\n}\n\nexport { UserStoreItemBuilder }\nexport default UserStoreItemBuilder\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["UserStoreItemBuilder_exports", "__export", "UserStoreItemBuilder", "UserStoreItemBuilder_default", "__toCommonJS", "import_parseurl", "import_UserReports", "reportData", "requestFormData", "type", "reportId", "reportName", "description", "id", "name", "executionData", "childExecutionData", "filterData", "filtersQueryString", "sortData", "sortByQueryString", "req", "origin", "pathname", "search", "href", "executionId", "dataProductDefinitionsPath", "dpdPathFromQuery", "pollingPath", "pollingFullUrl", "url", "fullUrl", "urlData", "parseUrl", "loadType", "queryData", "status", "metrics", "metric", "ts", "definitionsPath"]
|
|
7
7
|
}
|
|
@@ -13,22 +13,21 @@ import Dict = NodeJS.Dict
|
|
|
13
13
|
import { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'
|
|
14
14
|
import { components } from '../types/api'
|
|
15
15
|
|
|
16
|
+
interface ReportData {
|
|
17
|
+
type: ReportType
|
|
18
|
+
reportId: string
|
|
19
|
+
reportName: string
|
|
20
|
+
description: string
|
|
21
|
+
id: string
|
|
22
|
+
name: string
|
|
23
|
+
}
|
|
24
|
+
|
|
16
25
|
class UserStoreItemBuilder {
|
|
17
26
|
userStoreItem: UserReportData
|
|
18
27
|
|
|
19
28
|
requestFormData: RequestFormData | Record<string, never>
|
|
20
29
|
|
|
21
|
-
constructor(
|
|
22
|
-
reportData: {
|
|
23
|
-
type: ReportType
|
|
24
|
-
reportId: string
|
|
25
|
-
reportName: string
|
|
26
|
-
description: string
|
|
27
|
-
id: string
|
|
28
|
-
name: string
|
|
29
|
-
},
|
|
30
|
-
requestFormData?: RequestFormData,
|
|
31
|
-
) {
|
|
30
|
+
constructor(reportData: ReportData, requestFormData?: RequestFormData) {
|
|
32
31
|
this.requestFormData = requestFormData || {}
|
|
33
32
|
this.userStoreItem = this.addReportData(reportData)
|
|
34
33
|
}
|
|
@@ -37,21 +36,7 @@ class UserStoreItemBuilder {
|
|
|
37
36
|
return this.userStoreItem as RequestedReport
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
addReportData = ({
|
|
41
|
-
type,
|
|
42
|
-
reportId,
|
|
43
|
-
reportName,
|
|
44
|
-
description,
|
|
45
|
-
id,
|
|
46
|
-
name,
|
|
47
|
-
}: {
|
|
48
|
-
type: ReportType
|
|
49
|
-
reportId: string
|
|
50
|
-
reportName: string
|
|
51
|
-
description: string
|
|
52
|
-
id: string
|
|
53
|
-
name: string
|
|
54
|
-
}) => {
|
|
39
|
+
addReportData = ({ type, reportId, reportName, description, id, name }: ReportData) => {
|
|
55
40
|
return {
|
|
56
41
|
type: type as ReportType,
|
|
57
42
|
reportId,
|
|
@@ -138,12 +123,14 @@ class UserStoreItemBuilder {
|
|
|
138
123
|
return this
|
|
139
124
|
}
|
|
140
125
|
|
|
141
|
-
addAsyncUrls = (url
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
126
|
+
addAsyncUrls = (url?: AsyncReportUrlData) => {
|
|
127
|
+
if (url) {
|
|
128
|
+
this.userStoreItem = {
|
|
129
|
+
...this.userStoreItem,
|
|
130
|
+
...{
|
|
131
|
+
url,
|
|
132
|
+
},
|
|
133
|
+
}
|
|
147
134
|
}
|
|
148
135
|
|
|
149
136
|
return this
|
package/dpr/utils/arrayUtils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(n,t)=>{for(var i in t)o(n,i,{get:t[i],enumerable:!0})},x=(n,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of d(t))!g.call(n,c)&&c!==i&&o(n,c,{get:()=>t[c],enumerable:!(r=s(t,c))||r.enumerable});return n};var b=n=>x(o({},"__esModule",{value:!0}),n);var h={};p(h,{distinct:()=>f});module.exports=b(h);const f=(n,t)=>n.includes(t)?n:n.concat(t);0&&(module.exports={distinct});
|
|
1
|
+
"use strict";var o=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(n,t)=>{for(var i in t)o(n,i,{get:t[i],enumerable:!0})},x=(n,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of d(t))!g.call(n,c)&&c!==i&&o(n,c,{get:()=>t[c],enumerable:!(r=s(t,c))||r.enumerable});return n};var b=n=>x(o({},"__esModule",{value:!0}),n);var h={};p(h,{distinct:()=>f});module.exports=b(h);const f=(n,t)=>n.includes(t)?n:n.concat(t);0&&(module.exports={distinct});
|
|
2
2
|
//# sourceMappingURL=arrayUtils.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/utils/arrayUtils.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable import/prefer-default-export */\n\nexport const distinct = (values: string[], value: string) => (values.includes(value) ? values : values.concat(value))\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAEO,MAAME,EAAW,CAACE,EAAkBC,IAAmBD,EAAO,SAASC,CAAK,EAAID,EAASA,EAAO,OAAOC,CAAK",
|
|
6
6
|
"names": ["arrayUtils_exports", "__export", "distinct", "__toCommonJS", "values", "value"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var h=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var q=(e,s)=>{for(var n in s)h(e,n,{get:s[n],enumerable:!0})},T=(e,s,n,
|
|
1
|
+
"use strict";var h=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var q=(e,s)=>{for(var n in s)h(e,n,{get:s[n],enumerable:!0})},T=(e,s,n,t)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of E(s))!O.call(e,o)&&o!==n&&h(e,o,{get:()=>s[o],enumerable:!(t=k(s,o))||t.enumerable});return e};var j=e=>T(h({},"__esModule",{value:!0}),e);var B={};q(B,{default:()=>A,filterKeys:()=>R,filterRowsByDisplayColumns:()=>K,getDatasetRows:()=>w,getEarliestDataset:()=>x,getGroupKey:()=>I,getKeyIds:()=>b,getKeyVariations:()=>y,getLastestDataset:()=>v,groupRowsByKey:()=>V,groupRowsByTimestamp:()=>C});module.exports=j(B);const w=(e,s)=>{const{measures:n,filters:t,expectNulls:o}=e.columns,r=e.columns.keys,i=n.map(c=>c.id),a=r?.map(c=>c.id)||[],l=t?.map(c=>c.id)||[],u=r?.some(c=>c.optional);s.length&&s[0].ts&&a.unshift("ts");const d=s.filter(c=>{const g=[];return Object.keys(c).forEach(f=>{const p=c[f].raw;let m=!0;l.includes(f)?m=(t?t.filter(D=>D.id===f).map(D=>D.equals):[]).includes(p):a.includes(f)&&u?m=!0:a.includes(f)&&!u||i.includes(f)?m=p!==""&&p!==void 0&&p!==null:o&&(m=p===""||p===void 0||p===null),g.push(m)}),g.every(f=>f)});return u?R(d,r||[]):d},y=e=>{const s=[],n=e.map(r=>r.id),t=e.every(r=>r.optional),o=[...n];return n.reverse().forEach(r=>{const i=e.find(a=>a.id===r);s.push([...o]),i&&i.optional&&o.pop()}),t&&s.push([]),s},b=(e,s)=>{let n=[];return s.every(t=>{const o=[];return e.forEach(r=>{const i=[];Object.keys(r).forEach(a=>{const l=r[a].raw;let u=!0;t.includes(a)&&(u=l!==""&&l!==void 0&&l!==null),i.push(u)}),i.every(a=>a)&&o.push(r)}),o.length>0?(n=t,!1):(n=t,!0)}),n},R=(e,s)=>{const n=y(s),t=b(e,n);return e.filter(o=>{const r=[];return Object.keys(o).forEach(i=>{const a=o[i].raw;let l=!0;t.includes(i)&&(l=a!==""&&a!==void 0&&a!==null),r.push(l)}),r.every(i=>i)})},v=e=>{const s=e[e.length-1]?.ts?.raw;return s?e.filter(n=>n.ts.raw===s):e},x=e=>{const s=e[0]?.ts?.raw;return s?e.filter(n=>n.ts.raw===s):e},C=e=>[...new Set(e.map(n=>n.ts.raw))].map(n=>e.filter(t=>t.ts.raw===n)),V=(e,s)=>[...new Set(e.map(t=>t[s].raw))].map(t=>e.filter(o=>o[s].raw===t)),I=(e,s)=>{if(!s||!s.length||!e.length)return;const n=e[0];let t=s.length-1,o=!1;for(;!o;){const r=`${s[t]?.id}`;r&&t!==-1&&(!n[r]||!n[r].raw||n[r].raw===""||n[r].raw===null)?t-=1:o=!0}return t!==-1?s[t]:void 0},K=(e,s,n=!1)=>{const{keys:t,measures:o}=e.columns,r=t||[];let i=[...o];n&&(i=[...r,...o]);const a=i.map(l=>l.id);return s.map(l=>Object.keys(l).filter(u=>a.includes(u)).reduce((u,d)=>(u[d]=l[d],u),{}))};var A={getDatasetRows:w,getLastestDataset:v,getEarliestDataset:x,filterRowsByDisplayColumns:K,groupRowsByTimestamp:C,groupRowsByKey:V,getGroupKey:I,getKeyVariations:y,getKeyIds:b,filterKeys:R};0&&(module.exports={filterKeys,filterRowsByDisplayColumns,getDatasetRows,getEarliestDataset,getGroupKey,getKeyIds,getKeyVariations,getLastestDataset,groupRowsByKey,groupRowsByTimestamp});
|
|
2
2
|
//# sourceMappingURL=datasetHelper.js.map
|