@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.28.0 → 4.28.2
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/DprClientClass.js +43 -0
- package/dpr/DprClientClass.js.map +7 -0
- package/dpr/{DprClientClass.mjs → DprClientClass.ts} +1 -0
- package/dpr/DprFormValidationClass.js +157 -0
- package/dpr/DprFormValidationClass.js.map +7 -0
- package/dpr/{DprFormValidationClass.mjs → DprFormValidationClass.ts} +2 -1
- package/dpr/DprGenericFormClass.js +66 -0
- package/dpr/DprGenericFormClass.js.map +7 -0
- package/dpr/{DprGenericFormClass.mjs → DprGenericFormClass.ts} +2 -1
- package/dpr/DprLoadingHelper.js +51 -0
- package/dpr/DprLoadingHelper.js.map +7 -0
- package/dpr/{DprLoadingHelper.mjs → DprLoadingHelper.ts} +1 -0
- package/dpr/DprPollingStatusClass.js +79 -0
- package/dpr/DprPollingStatusClass.js.map +7 -0
- package/dpr/{DprPollingStatusClass.mjs → DprPollingStatusClass.ts} +2 -1
- package/dpr/DprQueryParamClass.js +231 -0
- package/dpr/DprQueryParamClass.js.map +7 -0
- package/dpr/{DprQueryParamClass.mjs → DprQueryParamClass.ts} +2 -1
- package/dpr/DprSyncLoading.js +44 -0
- package/dpr/DprSyncLoading.js.map +7 -0
- package/dpr/{DprSyncLoading.mjs → DprSyncLoading.ts} +2 -1
- package/dpr/all.js +111 -0
- package/dpr/all.js.map +7 -0
- package/dpr/{all.mjs → all.ts} +29 -28
- package/dpr/assets/app.js +1 -1
- package/dpr/assets/app.js.map +2 -2
- package/dpr/components/_async/async-filters-form/clientClass.js +76 -0
- package/dpr/components/_async/async-filters-form/clientClass.js.map +7 -0
- package/dpr/components/_async/async-filters-form/{clientClass.mjs → clientClass.ts} +3 -2
- package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +1 -1
- package/dpr/components/_async/async-filters-form/types.d.js.map +1 -1
- package/dpr/components/_async/async-filters-form/utils.js.map +1 -1
- package/dpr/components/_async/async-polling/clientClass.js +78 -0
- package/dpr/components/_async/async-polling/clientClass.js.map +7 -0
- package/dpr/components/_async/async-polling/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_catalogue/catalogue/types.js.map +1 -1
- package/dpr/components/_catalogue/catalogue/utils.js.map +1 -1
- package/dpr/components/_catalogue/catalogue-filter-by-type/clientClass.js +94 -0
- package/dpr/components/_catalogue/catalogue-filter-by-type/clientClass.js.map +7 -0
- package/dpr/components/_catalogue/catalogue-filter-by-type/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_catalogue/catalogue-filters/clientClass.js +70 -0
- package/dpr/components/_catalogue/catalogue-filters/clientClass.js.map +7 -0
- package/dpr/components/_catalogue/catalogue-filters/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js.map +1 -1
- package/dpr/components/_catalogue/catalogue-search/clientClass.js +106 -0
- package/dpr/components/_catalogue/catalogue-search/clientClass.js.map +7 -0
- package/dpr/components/_catalogue/catalogue-search/{clientClass.mjs → clientClass.ts} +3 -2
- package/dpr/components/_catalogue/catalogue-unauthorised-toggle/clientClass.js +135 -0
- package/dpr/components/_catalogue/catalogue-unauthorised-toggle/clientClass.js.map +7 -0
- package/dpr/components/_catalogue/catalogue-unauthorised-toggle/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_charts/chart/Chart.js.map +1 -1
- package/dpr/components/_charts/chart/ChartColours.js.map +1 -1
- package/dpr/components/_charts/chart/ChartTimeseries.js.map +1 -1
- package/dpr/components/_charts/chart/bar/BarChart.js.map +1 -1
- package/dpr/components/_charts/chart/bar/clientClass.js +98 -0
- package/dpr/components/_charts/chart/bar/clientClass.js.map +7 -0
- package/dpr/components/_charts/chart/bar/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_charts/chart/bar/types.js.map +1 -1
- package/dpr/components/_charts/chart/bar/validate.js.map +1 -1
- package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +1 -1
- package/dpr/components/_charts/chart/bar-timeseries/types.js.map +1 -1
- package/dpr/components/_charts/chart/bar-timeseries/validate.js.map +1 -1
- package/dpr/components/_charts/chart/buckets/Buckets.js.map +1 -1
- package/dpr/components/_charts/chart/buckets/types.js.map +1 -1
- package/dpr/components/_charts/chart/buckets/validate.js.map +1 -1
- package/dpr/components/_charts/chart/chart-config.js.map +1 -1
- package/dpr/components/_charts/chart/clientClass.js +136 -0
- package/dpr/components/_charts/chart/clientClass.js.map +7 -0
- package/dpr/components/_charts/chart/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +1 -1
- package/dpr/components/_charts/chart/doughnut/clientClass.js +170 -0
- package/dpr/components/_charts/chart/doughnut/clientClass.js.map +7 -0
- package/dpr/components/_charts/chart/doughnut/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_charts/chart/doughnut/types.js.map +1 -1
- package/dpr/components/_charts/chart/doughnut/validate.js.map +1 -1
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +1 -1
- package/dpr/components/_charts/chart/heatmap/clientClass.js +118 -0
- package/dpr/components/_charts/chart/heatmap/clientClass.js.map +7 -0
- package/dpr/components/_charts/chart/heatmap/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_charts/chart/heatmap/types.js.map +1 -1
- package/dpr/components/_charts/chart/heatmap/validate.js.map +1 -1
- package/dpr/components/_charts/chart/line/LineChart.js.map +1 -1
- package/dpr/components/_charts/chart/line/clientClass.js +93 -0
- package/dpr/components/_charts/chart/line/clientClass.js.map +7 -0
- package/dpr/components/_charts/chart/line/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_charts/chart/line/types.js.map +1 -1
- package/dpr/components/_charts/chart/line/validate.js.map +1 -1
- package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +1 -1
- package/dpr/components/_charts/chart/line-timeseries/types.js.map +1 -1
- package/dpr/components/_charts/chart/line-timeseries/validate.js.map +1 -1
- package/dpr/components/_charts/utils.js.map +1 -1
- package/dpr/components/_dashboards/dashboard-list/types.js.map +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js.map +1 -1
- package/dpr/components/_dashboards/dashboard-list/validate.js.map +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/Validate.js.map +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/clientClass.js +50 -0
- package/dpr/components/_dashboards/scorecard/clientClass.js.map +7 -0
- package/dpr/components/_dashboards/scorecard/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_dashboards/scorecard/types.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/utils.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/validate.js.map +1 -1
- package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +1 -1
- package/dpr/components/_dashboards/scorecard-group/types.js.map +1 -1
- package/dpr/components/_dashboards/scorecard-group/validate.js.map +1 -1
- package/dpr/components/_filters/filter-input/enum.js.map +1 -1
- package/dpr/components/_filters/filter-input/filters.js.map +1 -1
- package/dpr/components/_filters/filter-input/types.d.js.map +1 -1
- package/dpr/components/_filters/filters-form/clientClass.js +104 -0
- package/dpr/components/_filters/filters-form/clientClass.js.map +7 -0
- package/dpr/components/_filters/filters-form/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_filters/filters-interactive/clientClass.js +55 -0
- package/dpr/components/_filters/filters-interactive/clientClass.js.map +7 -0
- package/dpr/components/_filters/filters-interactive/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_filters/filters-selected/clientClass.js +396 -0
- package/dpr/components/_filters/filters-selected/clientClass.js.map +7 -0
- package/dpr/components/_filters/filters-selected/{clientClass.mjs → clientClass.ts} +7 -7
- package/dpr/components/_filters/filters-selected/utils.js.map +1 -1
- package/dpr/components/_filters/filtersTypeEnum.js.map +1 -1
- package/dpr/components/_filters/types.d.js.map +1 -1
- package/dpr/components/_filters/utils.js.map +1 -1
- package/dpr/components/_inputs/autocomplete-text-input/clientClass.js +153 -0
- package/dpr/components/_inputs/autocomplete-text-input/clientClass.js.map +7 -0
- package/dpr/components/_inputs/autocomplete-text-input/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_inputs/autocomplete-text-input/utils.js.map +1 -1
- package/dpr/components/_inputs/date-input/clientClass.js +109 -0
- package/dpr/components/_inputs/date-input/clientClass.js.map +7 -0
- package/dpr/components/_inputs/date-input/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_inputs/date-input/utils.js.map +1 -1
- package/dpr/components/_inputs/date-range/clientClass.js +206 -0
- package/dpr/components/_inputs/date-range/clientClass.js.map +7 -0
- package/dpr/components/_inputs/date-range/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_inputs/date-range/types.js.map +1 -1
- package/dpr/components/_inputs/date-range/utils.js.map +1 -1
- package/dpr/components/_inputs/granular-date-range/clientClass.js +245 -0
- package/dpr/components/_inputs/granular-date-range/clientClass.js.map +7 -0
- package/dpr/components/_inputs/granular-date-range/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_inputs/granular-date-range/types.js.map +1 -1
- package/dpr/components/_inputs/granular-date-range/utils.js.map +1 -1
- package/dpr/components/_inputs/multi-select/utils.js.map +1 -1
- package/dpr/components/_inputs/start-end-date/utils.js.map +1 -1
- package/dpr/components/_reports/report-actions/actionsTemplate.js.map +1 -1
- package/dpr/components/_reports/report-actions/clientClass.js +103 -0
- package/dpr/components/_reports/report-actions/clientClass.js.map +7 -0
- package/dpr/components/_reports/report-actions/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_reports/report-actions/types.d.js.map +1 -1
- package/dpr/components/_reports/report-actions/utils.js.map +1 -1
- package/dpr/components/_reports/report-columns-form/clientClass.js +76 -0
- package/dpr/components/_reports/report-columns-form/clientClass.js.map +7 -0
- package/dpr/components/_reports/report-columns-form/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_reports/report-columns-form/types.d.js.map +1 -1
- package/dpr/components/_reports/report-columns-form/utils.js.map +1 -1
- package/dpr/components/_reports/report-data-table/clientClass.js +80 -0
- package/dpr/components/_reports/report-data-table/clientClass.js.map +7 -0
- package/dpr/components/_reports/report-data-table/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_reports/report-data-table/types.d.js.map +1 -1
- package/dpr/components/_reports/report-data-table/utils.js.map +1 -1
- package/dpr/components/_reports/report-download-message/clientClass.js +42 -0
- package/dpr/components/_reports/report-download-message/clientClass.js.map +7 -0
- package/dpr/components/_reports/report-download-message/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_reports/report-pagination/clientClass.js +61 -0
- package/dpr/components/_reports/report-pagination/clientClass.js.map +7 -0
- package/dpr/components/_reports/report-pagination/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/_reports/report-pagination/types.d.js.map +1 -1
- package/dpr/components/_reports/report-pagination/utils.js.map +1 -1
- package/dpr/components/_reports/report-totals/utils.js.map +1 -1
- package/dpr/components/_sync/sync-load/view.njk +1 -1
- package/dpr/components/bookmark-toggle/clientClass.js +111 -0
- package/dpr/components/bookmark-toggle/clientClass.js.map +7 -0
- package/dpr/components/bookmark-toggle/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/card-group/clientClass.js +53 -0
- package/dpr/components/card-group/clientClass.js.map +7 -0
- package/dpr/components/card-group/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/card-group/utils.js.map +1 -1
- package/dpr/components/report-list/defaultTokenProvider.js.map +1 -1
- package/dpr/components/report-list/types.d.js.map +1 -1
- package/dpr/components/report-list/utils.js.map +1 -1
- package/dpr/components/show-more/clientClass.js +63 -0
- package/dpr/components/show-more/clientClass.js.map +7 -0
- package/dpr/components/show-more/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/show-more/utils.js.map +1 -1
- package/dpr/components/user-reports/bookmarks/utils.js.map +1 -1
- package/dpr/components/user-reports/requested/clientClass.js +132 -0
- package/dpr/components/user-reports/requested/clientClass.js.map +7 -0
- package/dpr/components/user-reports/requested/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/user-reports/requested/utils.js.map +1 -1
- package/dpr/components/user-reports/types.d.js.map +1 -1
- package/dpr/components/user-reports/utils.js.map +1 -1
- package/dpr/components/user-reports/viewed/clientClass.js +102 -0
- package/dpr/components/user-reports/viewed/clientClass.js.map +7 -0
- package/dpr/components/user-reports/viewed/{clientClass.mjs → clientClass.ts} +2 -1
- package/dpr/components/user-reports/viewed/utils.js.map +1 -1
- package/dpr/data/agentConfig.js.map +1 -1
- package/dpr/data/dashboardClient.js.map +1 -1
- package/dpr/data/dprReportingClient.js.map +1 -1
- package/dpr/data/missingReportClient.js.map +1 -1
- package/dpr/data/productCollectionClient.js.map +1 -1
- package/dpr/data/reportDataStore.js.map +1 -1
- package/dpr/data/reportingClient.js.map +1 -1
- package/dpr/data/restClient.js.map +1 -1
- package/dpr/data/types.d.js.map +1 -1
- package/dpr/middleware/reportAuthoriser.js.map +1 -1
- package/dpr/middleware/setUpDprResources.js.map +1 -1
- package/dpr/middleware/setUpNestedRoute.js.map +1 -1
- package/dpr/routes/index.js.map +1 -1
- package/dpr/routes/journeys/api-failures.cy.js.map +1 -1
- package/dpr/routes/journeys/download-report/controller.js.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +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.map +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.map +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.map +1 -1
- package/dpr/routes/journeys/download-report/request-download/service.js.map +1 -1
- package/dpr/routes/journeys/download-report/routes.js.map +1 -1
- package/dpr/routes/journeys/download-report/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/download-report/utils.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +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.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +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.map +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.map +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.map +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.map +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.map +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.map +1 -1
- package/dpr/routes/journeys/my-reports/routes.js.map +1 -1
- package/dpr/routes/journeys/product-collection/routes.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/controller.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/routes.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/product-collection/selected/validation.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/form/controller.js.map +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.map +1 -1
- package/dpr/routes/journeys/request-missing-report/form/validation.js.map +1 -1
- package/dpr/routes/journeys/request-missing-report/routes.js.map +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.map +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.map +1 -1
- package/dpr/routes/journeys/request-report/controller.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/controller.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/routes.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js.map +1 -1
- package/dpr/routes/journeys/request-report/routes.js.map +1 -1
- package/dpr/routes/journeys/request-report/status/controller.js.map +1 -1
- package/dpr/routes/journeys/request-report/status/routes.js.map +1 -1
- package/dpr/routes/journeys/request-report/status/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/request-report/status/utils.js.map +1 -1
- package/dpr/routes/journeys/request-report/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/controller.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +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.map +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/report/controller.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +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.map +1 -1
- package/dpr/routes/journeys/view-report/async/report/types.js.map +1 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js +2 -2
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/utils.ts +2 -2
- package/dpr/routes/journeys/view-report/async/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/controller.js.map +2 -2
- package/dpr/routes/journeys/view-report/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +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.map +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.map +1 -1
- package/dpr/routes/journeys/view-report/sync/routes.js.map +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +1 -1
- package/dpr/routes/journeys/view-report/utils.js.map +1 -1
- package/dpr/services/dashboardService.js.map +1 -1
- package/dpr/services/defaultFilterValuesService.js.map +1 -1
- package/dpr/services/featureFlagService.js.map +1 -1
- package/dpr/services/featureFlags.cy.js.map +1 -1
- package/dpr/services/index.js.map +1 -1
- package/dpr/services/missingReport/missingReportService.js.map +1 -1
- package/dpr/services/productCollection/productCollectionService.js.map +1 -1
- package/dpr/services/productCollection/productCollectionStoreService.js.map +1 -1
- package/dpr/services/reportStoreService.js.map +1 -1
- package/dpr/services/reportingService.js.map +1 -1
- package/dpr/setUpNunjucksFilters.js.map +1 -1
- package/dpr/types/AsyncReportUtils.js.map +1 -1
- package/dpr/types/Bookmark.js.map +1 -1
- package/dpr/types/Charts.js.map +1 -1
- package/dpr/types/Download.js.map +1 -1
- package/dpr/types/DprConfig.js.map +1 -1
- package/dpr/types/DprUser.js.map +1 -1
- package/dpr/types/EmbeddedReportUtils.js.map +1 -1
- package/dpr/types/ExecutionData.d.js.map +1 -1
- package/dpr/types/Metrics.js.map +1 -1
- package/dpr/types/ReportQuery.js.map +1 -1
- package/dpr/types/ReportStore.js.map +1 -1
- package/dpr/types/Services.d.js.map +1 -1
- package/dpr/types/Templates.d.js.map +1 -1
- package/dpr/types/UserReports.js.map +1 -1
- package/dpr/types/api.d.js.map +1 -1
- package/dpr/types/index.d.js.map +1 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +1 -1
- package/dpr/utils/CreateDprServices.js.map +1 -1
- package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +1 -1
- package/dpr/utils/DataTableBuilder/types.d.js.map +1 -1
- package/dpr/utils/DateMapper/DateMapper.js.map +1 -1
- package/dpr/utils/DateMapper/types.d.js.map +1 -1
- package/dpr/utils/ErrorHandler.js.map +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js.map +1 -1
- package/dpr/utils/Personalisation/types.d.js.map +1 -1
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +1 -1
- package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +1 -1
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +1 -1
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +1 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +1 -1
- package/dpr/utils/arrayUtils.js.map +1 -1
- package/dpr/utils/datasetHelper.js.map +1 -1
- package/dpr/utils/definitionUtils.js.map +1 -1
- package/dpr/utils/index.js.map +1 -1
- package/dpr/utils/indexedAccesHelper.js.map +1 -1
- package/dpr/utils/localsHelper.js.map +1 -1
- package/dpr/utils/logger.js.map +1 -1
- package/dpr/utils/reportListsHelper.js.map +1 -1
- package/dpr/utils/reportStoreHelper.js.map +1 -1
- package/dpr/utils/requestStatusHelper.js.map +1 -1
- package/dpr/utils/sanitisedError.js.map +1 -1
- package/dpr/utils/urlHelper.js.map +1 -1
- package/dpr/validation/validate.js.map +1 -1
- package/package.json +10 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../dpr/routes/journeys/request-report/filters/tests.cy.ts"],
|
|
4
4
|
"sourcesContent": ["import { executeReportStubs } from '../../../../../../cypress-tests/cypressUtils'\n\ndescribe('Request a report', () => {\n const path = '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters'\n const orderPath = '/embedded/platform/dpr/request-report/report/feature-testing/feature-testing-filter-order/filters'\n let field2: Cypress.Chainable<JQuery<HTMLElement>>\n let field3Start: Cypress.Chainable<JQuery<HTMLElement>>\n let field3End: Cypress.Chainable<JQuery<HTMLElement>>\n let field4: Cypress.Chainable<JQuery<HTMLElement>>\n let field5: Cypress.Chainable<JQuery<HTMLElement>>\n let field6: Cypress.Chainable<JQuery<HTMLElement>>\n let field7: Cypress.Chainable<JQuery<HTMLElement>>\n\n const clearSelectedFilters = () => {\n Array.from(Array(5).keys()).forEach(() =>\n cy.findByLabelText(/Selected filters/).within(() => cy.findAllByRole('link').first().click(1, 1)),\n )\n }\n\n const updateFilterValues = () => {\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.2')\n cy.findByRole('textbox', { name: 'From' }).type('1/2/2003')\n cy.findByRole('textbox', { name: 'To' }).type('4/5/2007')\n cy.findByRole('combobox', { name: 'Field 4' }).type('Inigo Montoya')\n cy.findByRole('textbox', { name: 'Field 6' }).type('Value 6.1')\n cy.findByRole('textbox', { name: 'Field 7' }).type('05/05/2005')\n // multiselect\n cy.findByRole('checkbox', { name: 'Value 8.1' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.2' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).check()\n cy.findByRole('checkbox', { name: 'Value 8.4' }).check()\n }\n\n before(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubDefinitionOrderFilters')\n })\n\n beforeEach(() => {\n cy.visit(path)\n\n field2 = cy.findByRole('combobox', { name: 'Field 2' })\n field3Start = cy.findByRole('textbox', { name: 'From' })\n field3End = cy.findByRole('textbox', { name: 'To' })\n field4 = cy.findByRole('combobox', { name: 'Field 4' })\n field5 = cy.findByRole('combobox', { name: 'Field 5' })\n field6 = cy.findByRole('textbox', { name: 'Field 6' })\n field7 = cy.findByRole('textbox', { name: 'Field 7' })\n })\n\n it('is accessible', () => {\n cy.injectAxe()\n cy.checkA11y()\n })\n\n context('Selected filters', () => {\n it('should show the default selected filters', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 6)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.2')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2006')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2005')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.2, Value 8.3')\n break\n case 5:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n\n it('should remove the selected filter and reset the input', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n clearSelectedFilters()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n cy.findByRole('radio', { name: 'None' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.1' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.2' }).should('not.be.checked')\n cy.findByRole('radio', { name: 'Value 1.3' }).should('not.be.checked')\n field2.find('option:selected').should('have.text', 'Select your option')\n field3Start.should('have.value', '')\n field3End.should('have.value', '')\n field4.should('have.value', '')\n field5.should('have.value', '')\n field6.should('have.value', '')\n field7.should('have.value', '')\n })\n\n it('should add selected filters when inputs values are updated', () => {\n clearSelectedFilters()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n updateFilterValues()\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.2')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('4/5/2007')\n break\n case 3:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Inigo Montoya')\n break\n case 4:\n cy.wrap(filter).contains('Field 6')\n cy.wrap(filter).contains('Value 6.1')\n break\n case 5:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('05/05/2005')\n break\n case 6:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n default:\n break\n }\n })\n })\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n })\n })\n\n it('should reset the filters back to their DPD defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n clearSelectedFilters()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 1)\n })\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 6)\n })\n })\n })\n\n context('Request query parameters', () => {\n it('should correctly set the request query parameters from DPD defaults', () => {\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n\n clearSelectedFilters()\n updateFilterValues()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n })\n\n it('should correctly set the request query parameters when inputs are updated', () => {\n clearSelectedFilters()\n updateFilterValues()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n })\n\n it('should correctly set the input values from the query parameters', () => {\n cy.visit(\n `${path}?filters.field1=value1.3&filters.field3.start=2004-02-01&filters.field3.end=2006-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`,\n )\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.3')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2006')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n case 5:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.3')\n break\n case 6:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Prince Humperdink')\n break\n case 7:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n\n it('should correctly set the input values from the query parameters with constraints', () => {\n cy.visit(\n `${path}?filters.field1=value1.3&filters.field3.start=2002-02-01&filters.field3.end=2008-05-04&filters.field7=2004-02-01&filters.field8=value8.2&filters.field8=value8.4&sortColumn=field1&sortedAsc=false&filters.field2=value2.3&filters.field4=PrHu&preventDefault=true&filters.field8=value8.3&filters.field8=value8.1`,\n )\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link')\n .should('have.length', 8)\n .each((filter, index) => {\n switch (index) {\n case 0:\n cy.wrap(filter).contains('Field 1')\n cy.wrap(filter).contains('Value 1.3')\n break\n case 1:\n cy.wrap(filter).contains('Field 3 start')\n cy.wrap(filter).contains('01/02/2003')\n break\n case 2:\n cy.wrap(filter).contains('Field 3 end')\n cy.wrap(filter).contains('04/05/2007')\n break\n case 3:\n cy.wrap(filter).contains('Field 7')\n cy.wrap(filter).contains('01/02/2004')\n break\n case 4:\n cy.wrap(filter).contains('Field 8')\n cy.wrap(filter).contains('Value 8.1, Value 8.2, Value 8.3 + 1 more')\n break\n case 5:\n cy.wrap(filter).contains('Field 2')\n cy.wrap(filter).contains('Value 2.3')\n break\n case 6:\n cy.wrap(filter).contains('Field 4')\n cy.wrap(filter).contains('Prince Humperdink')\n break\n case 7:\n cy.wrap(filter).contains('Reset filters')\n break\n default:\n break\n }\n })\n })\n })\n })\n\n context('User defined defaults', () => {\n it('should save the user defined defaults', () => {\n clearSelectedFilters()\n updateFilterValues()\n\n cy.findByRole('button', { name: 'Save current filter values as defaults' }).click()\n\n cy.location().should((location) => {\n expect(location.search).to.contain('defaultsSaved=true')\n })\n\n cy.findByRole('button', { name: 'Update defaults' }).should('exist')\n cy.findByRole('button', { name: 'Delete defaults' }).should('exist')\n })\n\n it('should pre-fill the filter values with the saved defaults next visit', () => {\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).not.to.contain(`defaultsSaved=true`)\n expect(location.search).to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n })\n\n cy.findByRole('button', { name: 'Update defaults' }).should('exist')\n cy.findByRole('button', { name: 'Delete defaults' }).should('exist')\n })\n\n it('should update the saved defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n })\n\n cy.findByRole('checkbox', { name: 'Value 8.2' }).uncheck()\n cy.findByRole('checkbox', { name: 'Value 8.3' }).uncheck()\n cy.findByRole('combobox', { name: 'Field 2' }).select('value2.3')\n\n cy.findByRole('button', { name: 'Update defaults' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 5)\n })\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.3`)\n expect(location.search).not.to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).not.to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(`defaultsSaved=true`)\n expect(location.search).not.to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).not.to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n expect(location.search).to.contain(`&filters.field8=value8.1&filters.field8=value8.4`)\n })\n\n cy.reload()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field2=value2.3`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2007-05-04`)\n expect(location.search).to.contain(`filters.field6=Value+6.1`)\n expect(location.search).to.contain(`filters.field7=2005-05-05`)\n expect(location.search).to.contain(`defaultsSaved=true`)\n expect(location.search).not.to.contain(`filters.field4=Inigo+Montoya`)\n expect(location.search).not.to.contain(\n `filters.field8=value8.1&filters.field8=value8.2&filters.field8=value8.3&filters.field8=value8.4`,\n )\n expect(location.search).to.contain(`&filters.field8=value8.1&filters.field8=value8.4`)\n })\n })\n\n it('should reset the defaults back to the user saved defaults', () => {\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n cy.findAllByRole('link').eq(1).click(1, 1)\n })\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 2)\n })\n\n cy.findByRole('link', { name: 'Reset filters' }).click()\n\n cy.findByLabelText(/Selected filters.*/i).within(() => {\n cy.findAllByRole('link').should('have.length', 5)\n })\n })\n\n it('should remove the save defaults', () => {\n cy.findByRole('button', { name: 'Delete defaults' }).click()\n\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-01`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n })\n })\n })\n\n context('Submission', () => {\n it('should submit the report details in the request', () => {\n cy.intercept({\n method: 'POST',\n url: '/embedded/platform/dpr/request-report/report/**/**/filters?**',\n }).as('requestSubmit')\n\n cy.findByRole('button', { name: /Request/ }).click()\n\n cy.wait('@requestSubmit')\n .its('request')\n .then((request) => {\n cy.wrap(request).its('body').should('include', 'reportId=request-examples')\n cy.wrap(request).its('body').should('include', 'name=Successful+Report')\n cy.wrap(request).its('body').should('include', 'reportName=Successful+Report')\n cy.wrap(request).its('body').should('include', 'id=request-example-success')\n })\n })\n\n it('should submit the request with the correct query params', () => {\n cy.intercept({\n method: 'POST',\n url: '/embedded/platform/dpr/request-report/report/**/**/filters?**',\n }).as('requestSubmit')\n\n cy.findByRole('button', { name: /Request/ }).click()\n\n cy.wait('@requestSubmit')\n .its('request')\n .then((request) => {\n expect(request.query).to.have.property('filters.field1', 'value1.2')\n expect(request.query).to.have.property('filters.field3.end', '2006-05-04')\n expect(request.query).to.have.property('filters.field3.start', '2003-02-01')\n expect(request.query).to.have.property('filters.field7', '2005-02-01')\n expect(request.query).to.have.property('filters.field8')\n cy.wrap(request.query['filters.field8']).should('deep.eq', ['value8.2', 'value8.3'])\n expect(request.query).to.have.property('sortColumn', 'field1')\n expect(request.query).to.have.property('sortedAsc', 'false')\n })\n })\n })\n\n context('Filter order', () => {\n beforeEach(() => {\n cy.visit(orderPath)\n })\n\n it('should order the filters correctly', () => {\n cy.findAllByLabelText(/Filters/).within(() => {\n cy.findAllByRole('textbox').each((el, idx) => {\n switch (idx) {\n case 0:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 2')\n })\n break\n case 1:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 3')\n })\n break\n case 2:\n cy.wrap(el)\n .should('have.attr', 'display-name')\n .then((displayName) => {\n expect(displayName).contains('Field 1')\n })\n break\n default:\n break\n }\n })\n })\n })\n })\n})\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../dpr/routes/journeys/request-report/filters/utils.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport { defaultFilterValue } from '../../../../utils/Personalisation/types'\nimport FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport FiltersUtils from '../../../../components/_filters/utils'\nimport { removeDuplicates } from '../../../../utils/reportStoreHelper'\nimport UserStoreItemBuilder from '../../../../utils/UserStoreItemBuilder'\n\n// Types\nimport type ReportingService from '../../../../services/reportingService'\nimport { ReportType, RequestFormData, RequestStatus } from '../../../../types/UserReports'\nimport type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData'\nimport type { AsyncReportUtilsParams, RequestDataResult, RequestReportData } from '../../../../types/AsyncReportUtils'\nimport type {\n RenderFiltersReturnValue,\n SetQueryFromFiltersResult,\n} from '../../../../components/_async/async-filters-form/types'\nimport type { components } from '../../../../types/api'\nimport type { Services } from '../../../../types/Services'\nimport type DashboardService from '../../../../services/dashboardService'\nimport PersonalistionUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\n/**\n * Updates the store with the request details\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Services} services\n * @param {SetQueryFromFiltersResult} querySummaryData\n * @param {string} executionData\n * @return {*} {Promise<string>}\n */\nexport const updateStore = async ({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: SetQueryFromFiltersResult | undefined\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n}): Promise<void> => {\n const { search, id, type } = req.body\n const { dprUser, definitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n\n await removeDuplicates({ storeService: services.requestedReportService, userId: dprUser.id, id, search })\n await removeDuplicates({ storeService: services.recentlyViewedService, userId: dprUser.id, id, search })\n\n const requestFormData: RequestFormData = req.body\n const reportData = {\n type: requestFormData.type as ReportType,\n reportId: requestFormData.reportId,\n reportName: requestFormData.reportName,\n description: requestFormData.description,\n id: requestFormData.id,\n name: requestFormData.name,\n }\n\n let requestedReportData\n switch (type) {\n case ReportType.REPORT:\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addSortData(queryData?.sortData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .build()\n break\n case ReportType.DASHBOARD: {\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .addMetrics(JSON.parse(req.body.sections))\n .build()\n break\n }\n default:\n break\n }\n\n if (requestedReportData) await services.requestedReportService.addReport(dprUser.id, requestedReportData)\n}\n\nasync function requestChildReports(\n childVariants: Array<components['schemas']['ChildVariantDefinition']>,\n reportingService: ReportingService,\n token: string,\n reportId: string,\n queryData?: SetQueryFromFiltersResult,\n dataProductDefinitionsPath?: string,\n): Promise<Array<ChildReportExecutionData>> {\n let query: Record<string, string>\n if (queryData) {\n query = queryData.query\n delete query['sortColumn']\n delete query['sortedAsc']\n }\n\n return Promise.all(\n childVariants.map((childVariant) =>\n reportingService\n .requestAsyncReport(token, reportId, childVariant.id, {\n ...(query && query),\n ...(dataProductDefinitionsPath && { dataProductDefinitionsPath }),\n })\n .then((response) => {\n const { executionId, tableId } = response\n if (!executionId || !tableId) {\n throw new Error('requestChildReports: No execution of tableId in response')\n }\n return { executionId, tableId, variantId: childVariant.id }\n }),\n ),\n )\n}\n\nconst requestProduct = async ({\n req,\n res,\n token,\n dashboardService,\n reportingService,\n}: {\n req: Request\n res: Response\n token: string\n dashboardService: DashboardService\n reportingService: ReportingService\n}): Promise<{\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n queryData?: SetQueryFromFiltersResult | undefined\n}> => {\n const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields: components['schemas']['FieldDefinition'][]\n let queryData\n let executionId\n let tableId\n let definition\n let childVariants: components['schemas']['ChildVariantDefinition'][] = []\n\n if (type === ReportType.REPORT) {\n definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition?.variant.specification?.fields || []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n childVariants = definition.variant.childVariants ?? []\n }\n\n if (type === ReportType.DASHBOARD) {\n definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition?.filterFields || []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n }\n\n const childExecutionData = await requestChildReports(\n childVariants,\n reportingService,\n token,\n reportId,\n queryData,\n dataProductDefinitionsPath,\n )\n\n const executionData = {\n executionId,\n tableId,\n ...(dpdPathFromQuery && { dataProductDefinitionsPath }),\n }\n\n return {\n executionData,\n childExecutionData,\n queryData,\n }\n}\n\nconst renderDashboardRequestData = async ({\n token,\n reportId,\n definitionPath,\n services,\n definition,\n}: {\n token: string\n reportId: string\n definitionPath: string\n services: Services\n definition: components['schemas']['DashboardDefinition']\n}) => {\n const productDefinitions = await services.reportingService.getDefinitions(token, definitionPath)\n const productDefinition = productDefinitions.find(\n (def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,\n )\n const reportName = productDefinition?.name\n const { name, description, sections, filterFields: fields } = definition\n\n return {\n reportName,\n name,\n description,\n sections: sections || [],\n fields: fields || [],\n }\n}\n\nconst renderReportRequestData = async (definition: components['schemas']['SingleVariantReportDefinition']) => {\n return {\n definition,\n reportName: definition.name,\n name: definition.variant.name,\n description: definition.variant.description || definition.description,\n template: definition.variant.specification,\n fields: definition?.variant?.specification?.fields || [],\n interactive: definition?.variant?.interactive,\n }\n}\n\nexport const getDefintionByType = async (req: Request, res: Response, _next: NextFunction, services: Services) => {\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n const definition = await service.getDefinition(token, reportId, variantId || id, definitionsPath)\n\n return definition\n}\n\nconst getFilterData = async (\n req: Request,\n res: Response,\n fields: components['schemas']['FieldDefinition'][],\n interactive: boolean,\n services: Services,\n userId: string,\n) => {\n const { reportId, id } = req.params\n\n // 1. Get filters from definition with default values\n let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)\n\n // 2. Update filter values with user context values. eg. establishmnent code\n filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)\n\n // 3. Update filter values with saved defaults\n let defaultFilterValues\n if (res.locals['saveDefaultsEnabled']) {\n defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n }\n if (defaultFilterValues) {\n filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(\n filtersData.filters,\n filtersData.sortBy || [],\n defaultFilterValues,\n )\n }\n\n // 4. Overwrite filter values with query param values\n filtersData.filters = FiltersUtils.setFilterValuesFromRequest(filtersData.filters, req)\n\n return { filtersData, defaultFilterValues }\n}\n\n/**\n * Sends the request for the async report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const request = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const requestArgs = { req, res, token }\n\n const { executionData, queryData, childExecutionData } = await requestProduct({\n ...requestArgs,\n dashboardService: services.dashboardService,\n reportingService: services.reportingService,\n })\n\n if (executionData.executionId && executionData.tableId) {\n await updateStore({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n })\n } else {\n throw new Error('No execution data returned')\n }\n\n return executionData\n}\n\nexport const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, executionId, type } = req.params\n\n let service: ReportingService | DashboardService = services.reportingService\n if (type === ReportType.REPORT) service = services.reportingService\n if (type === ReportType.DASHBOARD) service = services.dashboardService\n\n const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)\n\n if (response && response['cancellationSucceeded']) {\n await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderRequest = async ({\n req,\n res,\n services,\n next,\n}: {\n req: Request\n res: Response\n next: NextFunction\n services: Services\n}): Promise<RequestDataResult | boolean> => {\n try {\n const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)\n const { reportId, type, id } = req.params\n const { definition } = res.locals\n const defaultsSaved = <string>req.query['defaultsSaved']\n\n const definitionApiArgs = { token, reportId, definitionPath, services }\n\n let name\n let reportName\n let description\n let template\n let fields: components['schemas']['FieldDefinition'][] = []\n let sections\n let interactive\n let filtersData\n let defaultFilterValues: defaultFilterValue[] = []\n\n if (type === ReportType.REPORT) {\n ;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))\n }\n\n if (type === ReportType.DASHBOARD) {\n ;({ name, reportName, description, sections, fields } = await renderDashboardRequestData({\n ...definitionApiArgs,\n definition,\n }))\n }\n\n if (fields) {\n const filterData = await getFilterData(req, res, fields, interactive || false, services, dprUser.id)\n defaultFilterValues = filterData.defaultFilterValues || defaultFilterValues\n filtersData = filterData.filtersData\n }\n\n const reportData: RequestReportData = {\n reportName,\n name,\n description,\n reportId,\n id,\n ...(dpdPathFromQuery && { definitionPath }),\n csrfToken,\n template,\n sections,\n hasDefaults: defaultFilterValues?.length > 0,\n defaultsSaved,\n type: type as ReportType,\n saveDefaultsEnabled: res.locals['saveDefaultsEnabled'],\n }\n\n return {\n title: `Request ${type}`,\n filtersDescription: `Customise your ${type} using the filters below and submit your request.`,\n filtersData,\n reportData,\n }\n } catch (error) {\n next(error)\n return false\n }\n}\n\nexport const getFiltersFromReqBody = (req: Request) => {\n return Object.keys(req.body)\n .filter((attr) => attr.includes('filters.'))\n .filter((attr) => !!req.body[attr])\n .map((attr) => {\n return { name: attr, value: req.body[attr] }\n })\n}\n\nexport default {\n request,\n cancelRequest,\n renderRequest,\n getFiltersFromReqBody,\n getDefintionByType,\n}\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["import_utils", "LocalsHelper", "UserStoreItemBuilder", "FiltersFormUtils", "PersonalistionUtils", "FiltersUtils"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../dpr/routes/journeys/request-report/routes.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport { captureException } from '@sentry/node'\nimport { Services } from '../../../types/Services'\nimport RequestReportController from './controller'\n\n// Routes\nimport requestReportRoutes from './filters/routes'\nimport requestStatusRoutes from './status/routes'\n\n// middleware\nimport reportAuthoriser from '../../../middleware/reportAuthoriser'\n\nexport function Routes({ layoutPath, services }: { services: Services; layoutPath: string }) {\n const router = Router({ mergeParams: true })\n\n const controller = new RequestReportController(layoutPath, services)\n\n router.post(`/:type/:reportId/:id/:executionId/cancel`, controller.CANCEL)\n router.use(\n `/:type/:reportId/:id/filters`,\n reportAuthoriser(services, layoutPath),\n requestReportRoutes({ layoutPath, services }),\n controller.errorHandler,\n )\n router.use(\n `/:type/:reportId/:id/:executionId/status`,\n reportAuthoriser(services, layoutPath),\n requestStatusRoutes({ layoutPath, services }),\n controller.errorHandler,\n )\n\n router.get(`/:type/:reportId/:id/:executionId/cancel/failed`, (req, res, _next) => {\n const body = JSON.parse(req.flash('ERROR_BODY')?.[0] || '')\n const params = JSON.parse(req.flash('ERROR_PARAMS')?.[0] || '')\n const error = req.flash('ERROR')\n\n captureException(error)\n res.render(`dpr/routes/journeys/view-report/error`, {\n layoutPath,\n ...(body && { ...body }),\n ...(params && { ...params }),\n error,\n params,\n })\n })\n\n return router\n}\n\nexport function Redirects() {\n const router = Router({ mergeParams: true })\n\n // Request route redirect\n router.get(`/async/:type/:reportId/:id/request`, (req, res) => {\n const { type, reportId, id } = req.params\n res.redirect(`${res.locals['nestedBaseUrl']}/dpr/request-report/${type}/${reportId}/${id}/filters`)\n })\n\n // Status route redirect\n router.get(`/async/:type/:reportId/:id/request/:executionId`, (req, res) => {\n const { type, reportId, id, executionId } = req.params\n res.redirect(`${res.locals['nestedBaseUrl']}/dpr/request-report/${type}/${reportId}/${id}/${executionId}/status`)\n })\n\n return router\n}\n\nexport const RequestReportRoutes = ({\n services,\n path,\n layoutPath,\n}: {\n services: Services\n path: string\n layoutPath: string\n}) => {\n const router = Router({ mergeParams: true })\n router.use(path, Routes({ services, layoutPath }))\n router.use('/', Redirects())\n\n return router\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAuB;AACvB,kBAAiC;AAEjC,wBAAoC;AAGpC,oBAAgC;AAChC,IAAAA,iBAAgC;AAGhC,8BAA6B;AAEtB,SAAS,OAAO,EAAE,YAAY,SAAS,GAA+C;AAC3F,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAE3C,QAAM,aAAa,IAAI,kBAAAC,QAAwB,YAAY,QAAQ;AAEnE,SAAO,KAAK,4CAA4C,WAAW,MAAM;AACzE,SAAO;AAAA,IACL;AAAA,QACA,wBAAAC,SAAiB,UAAU,UAAU;AAAA,QACrC,cAAAC,SAAoB,EAAE,YAAY,SAAS,CAAC;AAAA,IAC5C,WAAW;AAAA,EACb;AACA,SAAO;AAAA,IACL;AAAA,QACA,wBAAAD,SAAiB,UAAU,UAAU;AAAA,QACrC,eAAAE,SAAoB,EAAE,YAAY,SAAS,CAAC;AAAA,IAC5C,WAAW;AAAA,EACb;AAEA,SAAO,IAAI,mDAAmD,CAAC,KAAK,KAAK,UAAU;AACjF,UAAM,OAAO,KAAK,MAAM,IAAI,MAAM,YAAY,IAAI,CAAC,KAAK,EAAE;AAC1D,UAAM,SAAS,KAAK,MAAM,IAAI,MAAM,cAAc,IAAI,CAAC,KAAK,EAAE;AAC9D,UAAM,QAAQ,IAAI,MAAM,OAAO;AAE/B,sCAAiB,KAAK;AACtB,QAAI,OAAO,yCAAyC;AAAA,MAClD;AAAA,MACA,GAAI,QAAQ,EAAE,GAAG,KAAK;AAAA,MACtB,GAAI,UAAU,EAAE,GAAG,OAAO;AAAA,MAC1B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,SAAO;AACT;AAEO,SAAS,YAAY;AAC1B,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAG3C,SAAO,IAAI,sCAAsC,CAAC,KAAK,QAAQ;AAC7D,UAAM,EAAE,MAAM,UAAU,GAAG,IAAI,IAAI;AACnC,QAAI,SAAS,GAAG,IAAI,OAAO,eAAe,CAAC,uBAAuB,IAAI,IAAI,QAAQ,IAAI,EAAE,UAAU;AAAA,EACpG,CAAC;AAGD,SAAO,IAAI,mDAAmD,CAAC,KAAK,QAAQ;AAC1E,UAAM,EAAE,MAAM,UAAU,IAAI,YAAY,IAAI,IAAI;AAChD,QAAI,SAAS,GAAG,IAAI,OAAO,eAAe,CAAC,uBAAuB,IAAI,IAAI,QAAQ,IAAI,EAAE,IAAI,WAAW,SAAS;AAAA,EAClH,CAAC;AAED,SAAO;AACT;AAEO,MAAM,sBAAsB,CAAC;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAC3C,SAAO,IAAI,MAAM,OAAO,EAAE,UAAU,WAAW,CAAC,CAAC;AACjD,SAAO,IAAI,KAAK,UAAU,CAAC;AAE3B,SAAO;AACT;",
|
|
6
6
|
"names": ["import_routes", "RequestReportController", "reportAuthoriser", "requestReportRoutes", "requestStatusRoutes"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../dpr/routes/journeys/request-report/status/controller.ts"],
|
|
4
4
|
"sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../../types/Services'\nimport AsyncPollingUtils from './utils'\nimport AsyncRequestListUtils from '../../../../components/user-reports/requested/utils'\nimport ErrorHandler from '../../../../utils/ErrorHandler'\n\nclass RequestStatusController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n // Render status page\n GET: RequestHandler = async (req, res, next) => {\n try {\n const pollingRenderData = await AsyncPollingUtils.renderPolling({\n req,\n res,\n services: this.services,\n next,\n })\n res.render(`dpr/routes/journeys/request-report/status/view`, {\n layoutPath: this.layoutPath,\n ...pollingRenderData,\n })\n } catch (error) {\n req.body ??= {}\n req.body.title = 'Failed to retrieve report status'\n req.body.errorDescription = 'We were unable to retrieve the report status:'\n req.body.error = new ErrorHandler(error).formatError()\n next(error)\n }\n }\n\n // Poll request status\n POST: RequestHandler = async (req, res, _next) => {\n try {\n const response = await AsyncRequestListUtils.getRequestStatus({ req, res, services: this.services })\n res.send({ status: response.status })\n } catch (error) {\n res.send({ status: 'FAILED' })\n }\n }\n}\n\nexport { RequestStatusController }\nexport default RequestStatusController\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA8B;AAC9B,IAAAA,gBAAkC;AAClC,0BAAyB;AAEzB,MAAM,wBAAwB;AAAA,EAC5B;AAAA,EAEA;AAAA,EAEA,YAAY,YAAoB,UAAoB;AAClD,SAAK,aAAa;AAClB,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA,EAGA,MAAsB,OAAO,KAAK,KAAK,SAAS;AAC9C,QAAI;AACF,YAAM,oBAAoB,MAAM,aAAAC,QAAkB,cAAc;AAAA,QAC9D;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf;AAAA,MACF,CAAC;AACD,UAAI,OAAO,kDAAkD;AAAA,QAC3D,YAAY,KAAK;AAAA,QACjB,GAAG;AAAA,MACL,CAAC;AAAA,IACH,SAAS,OAAO;AACd,UAAI,SAAS,CAAC;AACd,UAAI,KAAK,QAAQ;AACjB,UAAI,KAAK,mBAAmB;AAC5B,UAAI,KAAK,QAAQ,IAAI,oBAAAC,QAAa,KAAK,EAAE,YAAY;AACrD,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA;AAAA,EAGA,OAAuB,OAAO,KAAK,KAAK,UAAU;AAChD,QAAI;AACF,YAAM,WAAW,MAAM,cAAAC,QAAsB,iBAAiB,EAAE,KAAK,KAAK,UAAU,KAAK,SAAS,CAAC;AACnG,UAAI,KAAK,EAAE,QAAQ,SAAS,OAAO,CAAC;AAAA,IACtC,SAAS,OAAO;AACd,UAAI,KAAK,EAAE,QAAQ,SAAS,CAAC;AAAA,IAC/B;AAAA,EACF;AACF;AAGA,IAAO,qBAAQ;",
|
|
6
6
|
"names": ["import_utils", "AsyncPollingUtils", "ErrorHandler", "AsyncRequestListUtils"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../dpr/routes/journeys/request-report/status/routes.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport RequestStatusController from './controller'\nimport { Services } from '../../../../types/Services'\n\nexport function routes({ layoutPath, services }: { layoutPath: string; services: Services }) {\n const router = Router({ mergeParams: true })\n const controller = new RequestStatusController(layoutPath, services)\n\n router.get(`/`, controller.GET)\n router.post(`/`, controller.POST)\n\n return router\n}\n\nexport default routes\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAuB;AACvB,wBAAoC;AAG7B,SAAS,OAAO,EAAE,YAAY,SAAS,GAA+C;AAC3F,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAC3C,QAAM,aAAa,IAAI,kBAAAA,QAAwB,YAAY,QAAQ;AAEnE,SAAO,IAAI,KAAK,WAAW,GAAG;AAC9B,SAAO,KAAK,KAAK,WAAW,IAAI;AAEhC,SAAO;AACT;AAEA,IAAO,iBAAQ;",
|
|
6
6
|
"names": ["RequestStatusController"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../dpr/routes/journeys/request-report/status/tests.cy.ts"],
|
|
4
4
|
"sourcesContent": ["import { checkA11y, executeReportStubs } from 'cypress-tests/cypressUtils'\nimport dayjs from 'dayjs'\nimport { getRedisState, setRedisState } from 'test-app/routes/integrationTests/appStateUtils'\n\ncontext('Request status', () => {\n const path = '/embedded/platform/'\n\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20WithDelay')\n })\n\n describe('post request', () => {\n const executionId = ''\n\n it('should show the status pages', () => {\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.task('stubReportsPickedStatus')\n cy.findByText(/picked/i).should('be.visible')\n checkA11y()\n cy.task('stubReportsStartedStatus')\n cy.findByText(/started/i).should('be.visible')\n checkA11y()\n cy.task('stubReportsFinishedStatus')\n cy.findAllByRole('heading', { name: /successful report/i }).should('be.visible')\n })\n\n it('should timeout', () => {\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.task('stubReportsPickedStatus')\n cy.findByText('PICKED').should('be.visible')\n getRedisState().then((state) => {\n const newState = {\n ...state.body,\n }\n newState.requestedReports[0].timestamp.requested = dayjs(state.body.requestedReports[0].timestamp.requested)\n .add(-1, 'days')\n .toDate()\n setRedisState(newState)\n })\n cy.findAllByText(/Request taking too long/)\n .eq(0)\n .should('be.visible')\n checkA11y()\n })\n\n describe('failure status pages', () => {\n beforeEach(() => {\n cy.task('resetRedis')\n cy.task('stubReportsPickedStatus')\n cy.visit(path)\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('button', { name: /Request/ }).click()\n cy.findByText(/submitted/i).should('be.visible')\n cy.findByText(/picked/i).should('be.visible')\n })\n\n it('should show the aborted status page', () => {\n cy.task('stubReportsAbortedStatus')\n cy.findByText(/aborted/i).should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n it('should show the expired status page', () => {\n cy.task('stubReportsExpiredStatus')\n cy.findByText(/expired/i).should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n it('should show the failed status page', () => {\n cy.task('stubReportsFailedStatus')\n cy.findByText(/your report has failed to generate/i).should('be.visible')\n cy.findByRole('group').contains('Show full error').should('be.visible')\n cy.findByText(/Show full error/).click()\n cy.findByText(/a developer message goes here/).should('be.visible')\n cy.findAllByRole('list').contains('Report ID: request-examples').should('be.visible')\n cy.findAllByRole('list').contains(`Execution ID: ${executionId}`).should('be.visible')\n cy.findAllByRole('list').contains('Table ID: tblId_').should('be.visible')\n cy.injectAxe()\n cy.checkA11y()\n })\n })\n })\n})\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["dayjs"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../dpr/routes/journeys/request-report/status/utils.ts"],
|
|
4
4
|
"sourcesContent": ["import { ReportType } from '../../../../types/UserReports'\nimport { AsyncReportUtilsParams } from '../../../../types/AsyncReportUtils'\nimport LocalsHelper from '../../../../utils/localsHelper'\n\nexport const renderPolling = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { csrfToken, dprUser, definitionsPath: definitionPath } = LocalsHelper.getValues(res)\n const { reportId, variantId, executionId, id, type } = req.params\n\n const requestReportData = await services.requestedReportService.getReportByExecutionId(executionId, dprUser.id)\n\n const title = `${type.charAt(0).toUpperCase() + type.substring(1).toLowerCase()} request status`\n const errorMessage = requestReportData?.errorMessage ? JSON.parse(requestReportData?.errorMessage) : undefined\n\n return {\n title,\n pollingRenderData: {\n reportName: requestReportData?.reportName || '',\n name: requestReportData?.variantName || requestReportData?.name || '',\n executionId,\n id: variantId || id,\n description: requestReportData?.description || '',\n type: type || ReportType.REPORT,\n reportId,\n tableId: requestReportData?.tableId,\n status: requestReportData?.status,\n definitionPath,\n pollingUrl: req.baseUrl,\n ...(requestReportData?.query && { querySummary: requestReportData.query.summary }),\n requestedAt: requestReportData?.timestamp.requested,\n csrfToken,\n ...(requestReportData?.url?.report?.fullUrl && { reportUrl: requestReportData.url.report.fullUrl }),\n ...(requestReportData?.url?.request?.fullUrl && { requestUrl: requestReportData.url.request.fullUrl }),\n ...(errorMessage && { errorMessage }),\n },\n }\n}\n\nexport default {\n renderPolling,\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA2B;AAE3B,0BAAyB;AAElB,MAAM,gBAAgB,OAAO,EAAE,KAAK,KAAK,SAAS,MAA8B;AACrF,QAAM,EAAE,WAAW,SAAS,iBAAiB,eAAe,IAAI,oBAAAA,QAAa,UAAU,GAAG;AAC1F,QAAM,EAAE,UAAU,WAAW,aAAa,IAAI,KAAK,IAAI,IAAI;AAE3D,QAAM,oBAAoB,MAAM,SAAS,uBAAuB,uBAAuB,aAAa,QAAQ,EAAE;AAE9G,QAAM,QAAQ,GAAG,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,UAAU,CAAC,EAAE,YAAY,CAAC;AAC/E,QAAM,eAAe,mBAAmB,eAAe,KAAK,MAAM,mBAAmB,YAAY,IAAI;AAErG,SAAO;AAAA,IACL;AAAA,IACA,mBAAmB;AAAA,MACjB,YAAY,mBAAmB,cAAc;AAAA,MAC7C,MAAM,mBAAmB,eAAe,mBAAmB,QAAQ;AAAA,MACnE;AAAA,MACA,IAAI,aAAa;AAAA,MACjB,aAAa,mBAAmB,eAAe;AAAA,MAC/C,MAAM,QAAQ,8BAAW;AAAA,MACzB;AAAA,MACA,SAAS,mBAAmB;AAAA,MAC5B,QAAQ,mBAAmB;AAAA,MAC3B;AAAA,MACA,YAAY,IAAI;AAAA,MAChB,GAAI,mBAAmB,SAAS,EAAE,cAAc,kBAAkB,MAAM,QAAQ;AAAA,MAChF,aAAa,mBAAmB,UAAU;AAAA,MAC1C;AAAA,MACA,GAAI,mBAAmB,KAAK,QAAQ,WAAW,EAAE,WAAW,kBAAkB,IAAI,OAAO,QAAQ;AAAA,MACjG,GAAI,mBAAmB,KAAK,SAAS,WAAW,EAAE,YAAY,kBAAkB,IAAI,QAAQ,QAAQ;AAAA,MACpG,GAAI,gBAAgB,EAAE,aAAa;AAAA,IACrC;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ;AAAA,EACb;AACF;",
|
|
6
6
|
"names": ["LocalsHelper"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../dpr/routes/journeys/request-report/tests.cy.ts"],
|
|
4
4
|
"sourcesContent": ["import { executeReportStubs, requestReportByNameAndDescription } from '../../../../../cypress-tests/cypressUtils'\n\ncontext('Requesting a report', () => {\n const path = '/embedded/platform/'\n\n const checkStatuses = () => {\n cy.task('stubReportsSubmittedStatus')\n cy.findByRole('strong').contains('SUBMITTED')\n cy.task('stubReportsPickedStatus')\n cy.findByRole('strong').contains('PICKED')\n cy.task('stubReportsStartedStatus')\n cy.findByRole('strong').contains('STARTED')\n cy.task('stubReportsFinishedStatus')\n }\n\n describe('Successful request', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.visit(path)\n })\n\n it('should succesfully request and load a report', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-0`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n expect(location.search).to.contain(`sortColumn=field1&sortedAsc=false`)\n })\n\n cy.findByRole('button', { name: 'Request report' }).click()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/(.*)\\/status/i,\n )\n checkStatuses()\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/view-report\\/async\\/report\\/request-examples\\/request-example-success\\/(.*)\\/report/i,\n )\n cy.location().should((location) => {\n expect(location.search).to.contain(`columns=field1&columns=field2&columns=field3&columns=field6&columns=field7`)\n })\n })\n\n it('should redirect the old request url to the new one', () => {\n const oldPath = '/embedded/platform/async/report/request-examples/request-example-success/request'\n cy.visit(oldPath)\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n cy.location().should((location) => {\n expect(location.search).to.contain(`filters.field1=value1.2`)\n expect(location.search).to.contain(`filters.field3.start=2003-02-0`)\n expect(location.search).to.contain(`filters.field3.end=2006-05-04`)\n expect(location.search).to.contain(`filters.field7=2005-02-01`)\n expect(location.search).to.contain(`filters.field8=value8.2&filters.field8=value8.3`)\n expect(location.search).to.contain(`sortColumn=field1&sortedAsc=false`)\n })\n })\n })\n\n describe('Failed request', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.visit(path)\n })\n\n const testFilterPersistence = () => {\n cy.task('stubReportsFailedStatus')\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.findByRole('group', { name: /Field 1/ })\n .findByRole('radio', { checked: true })\n .invoke('val')\n .as('field1')\n cy.findByRole('combobox', { name: /Field 2/ })\n .invoke('val')\n .as('field2')\n cy.findByRole('group', { name: /Field 3/ }).within(() => {\n cy.findByRole('textbox', { name: /From/ }).invoke('val').as('field3From')\n cy.findByRole('textbox', { name: /To/ }).invoke('val').as('field3To')\n })\n cy.findByRole('combobox', { name: /Field 4/ })\n .invoke('val')\n .as('field4')\n cy.findByRole('combobox', { name: /Field 5/ })\n .invoke('val')\n .as('field5')\n cy.findByRole('textbox', { name: /Field 6/ })\n .invoke('val')\n .as('field6')\n cy.findByRole('textbox', { name: /Field 7/ })\n .invoke('val')\n .as('field7')\n cy.findByRole('group', { name: /Field 8/ }).within(() => {\n cy.findAllByRole('checkbox').each((el, idx) => {\n cy.wrap(el).invoke('val').as(`field8-${idx}`)\n })\n })\n cy.findByRole('button', { name: 'Request report' }).click()\n cy.findByRole('button', { name: 'Retry' }).click()\n\n cy.findByRole('group', { name: /Field 1/ })\n .findByRole('radio', { checked: true })\n .invoke('val')\n .then((val) => {\n cy.get('@field1').should('equal', val)\n })\n cy.findByRole('combobox', { name: /Field 2/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field2').should('equal', val)\n })\n cy.findByRole('group', { name: /Field 3/ }).within(() => {\n cy.findByRole('textbox', { name: /From/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field3From').should('equal', val)\n })\n cy.findByRole('textbox', { name: /To/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field3To').should('equal', val)\n })\n })\n cy.findByRole('combobox', { name: /Field 4/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field4').should('equal', val)\n })\n cy.findByRole('combobox', { name: /Field 5/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field5').should('equal', val)\n })\n cy.findByRole('textbox', { name: /Field 6/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field6').should('equal', val)\n })\n cy.findByRole('textbox', { name: /Field 7/ })\n .invoke('val')\n .then((val) => {\n cy.get('@field7').should('equal', val)\n })\n cy.findByRole('group', { name: /Field 8/ }).within(() => {\n cy.findAllByRole('checkbox').each((el, idx) => {\n cy.wrap(el)\n .invoke('val')\n .then((val) => {\n cy.get(`@field8-${idx}`).should('equal', val)\n })\n })\n })\n }\n\n const testCorrectLinksRetryFailure = () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).should('be.visible')\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'FAILED' }).should('be.visible')\n })\n })\n cy.findByRole('link', { name: 'Retry' }).click()\n cy.findByText(/Your report has failed to generate/).should('be.visible')\n cy.findAllByText(/Successful Report/).should('be.visible')\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).click()\n })\n })\n cy.findByText(/Your report has failed to generate/).should('be.visible')\n cy.findAllByText(/Successful Report/).should('be.visible')\n }\n const testRedirectsOldStatusUrl = () => {\n cy.url().then((url) => {\n const splitUrl = url.split('/')\n const prevExId = splitUrl[splitUrl.length - 2]\n const oldPath = `/embedded/platform/async/report/request-examples/request-example-success/request/${prevExId}`\n cy.visit(oldPath)\n cy.url().should(\n 'have.string',\n `/embedded/platform/dpr/request-report/report/request-examples/request-example-success/${prevExId}/status`,\n )\n })\n }\n const testRemoveItem = () => {\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Remove' }).click()\n })\n })\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).should('not.exist')\n })\n }\n it('should test out filters, retry/remove and old status url redirects', () => {\n testFilterPersistence()\n testCorrectLinksRetryFailure()\n testRedirectsOldStatusUrl()\n testRemoveItem()\n })\n })\n\n describe('Aborted request', () => {\n const filtersHref =\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters?filters.field1=value1.2&filters.field3.start=2003-02-01&filters.field3.end=2006-05-04&filters.field7=2005-02-01&filters.field8=value8.2&filters.field8=value8.3&sortColumn=field1&sortedAsc=false'\n\n beforeEach(() => {\n executeReportStubs()\n cy.task('stubDefinitionRequestExamplesSuccess')\n cy.task('stubRequestSuccessResult20')\n cy.task('stubCancelAsyncRequest')\n cy.visit(path)\n })\n\n it('should be able to abort the request', () => {\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Successful Report')) &&\n Boolean(element.textContent?.includes('this will succeed'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request report' }).click()\n })\n })\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n cy.findByRole('button', { name: 'Request report' }).click()\n\n cy.url().should(\n 'match',\n /.*\\/embedded\\/platform\\/dpr\\/request-report\\/report\\/request-examples\\/request-example-success\\/(.*)\\/status/i,\n )\n\n cy.findByRole('button', { name: /Cancel/ }).click()\n cy.task('stubReportsAbortedStatus')\n cy.findByRole('strong').contains('ABORTED')\n cy.findByRole('button', { name: /Return to request page/ }).click()\n cy.url().should(\n 'have.string',\n '/embedded/platform/dpr/request-report/report/request-examples/request-example-success/filters',\n )\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).should('be.visible')\n cy.findByRole('link', { name: 'Remove' }).should('be.visible')\n cy.findByRole('cell', { name: 'ABORTED' }).should('be.visible')\n })\n })\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Retry' }).click()\n })\n })\n cy.url().should('have.string', filtersHref)\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Remove' }).click()\n })\n })\n\n cy.findByLabelText(/Requested/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return Boolean(element.textContent?.includes('Successful Report'))\n },\n }).should('not.exist')\n })\n })\n })\n\n describe('Exceution failed', () => {\n beforeEach(() => {\n executeReportStubs()\n cy.visit(path)\n })\n\n it('should error when execution data is incorrect', () => {\n requestReportByNameAndDescription({ name: 'Execution data error', description: 'This will return an error' })\n\n cy.findByRole('heading', { name: /Your report has failed to generate/ }).should('be.visible')\n\n cy.visit(path)\n cy.findByRole('tab', { name: /Requested/ }).click()\n cy.findByLabelText(/Requested.*/i).within(() => {\n cy.findAllByRole('paragraph')\n .contains(/You have 0 requested reports/)\n .should('be.visible')\n })\n })\n })\n})\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../dpr/routes/journeys/routes.ts"],
|
|
4
4
|
"sourcesContent": ["import { Router } from 'express'\nimport { Services } from '../../types/Services'\n\n// Routes\nimport { RequestMissingReportRoutes } from './request-missing-report/routes'\nimport { DownloadReportRoutes } from './download-report/routes'\nimport { MyReportsRoutes } from './my-reports/routes'\nimport { ViewReportRoutes } from './view-report/routes'\nimport { RequestReportRoutes } from './request-report/routes'\nimport { ProductCollectionRoutes } from './product-collection/routes'\n\nexport function Routes({ layoutPath, services }: { services: Services; layoutPath: string }) {\n const router = Router({ mergeParams: true })\n\n router.use('/', RequestMissingReportRoutes({ path: '/dpr/request-missing-report', layoutPath, services }))\n router.use('/', DownloadReportRoutes({ path: '/dpr/download-report', layoutPath, services }))\n router.use('/', MyReportsRoutes({ path: '/dpr/my-reports', layoutPath, services }))\n router.use('/', ViewReportRoutes({ path: '/dpr/view-report', layoutPath, services }))\n router.use('/', RequestReportRoutes({ path: '/dpr/request-report', layoutPath, services }))\n router.use('/', ProductCollectionRoutes({ path: '/dpr/product-collection', layoutPath, services }))\n\n return router\n}\n\nexport default Routes\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAuB;AAIvB,oBAA2C;AAC3C,IAAAA,iBAAqC;AACrC,IAAAA,iBAAgC;AAChC,IAAAA,iBAAiC;AACjC,IAAAA,iBAAoC;AACpC,IAAAA,iBAAwC;AAEjC,SAAS,OAAO,EAAE,YAAY,SAAS,GAA+C;AAC3F,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAE3C,SAAO,IAAI,SAAK,0CAA2B,EAAE,MAAM,+BAA+B,YAAY,SAAS,CAAC,CAAC;AACzG,SAAO,IAAI,SAAK,qCAAqB,EAAE,MAAM,wBAAwB,YAAY,SAAS,CAAC,CAAC;AAC5F,SAAO,IAAI,SAAK,gCAAgB,EAAE,MAAM,mBAAmB,YAAY,SAAS,CAAC,CAAC;AAClF,SAAO,IAAI,SAAK,iCAAiB,EAAE,MAAM,oBAAoB,YAAY,SAAS,CAAC,CAAC;AACpF,SAAO,IAAI,SAAK,oCAAoB,EAAE,MAAM,uBAAuB,YAAY,SAAS,CAAC,CAAC;AAC1F,SAAO,IAAI,SAAK,wCAAwB,EAAE,MAAM,2BAA2B,YAAY,SAAS,CAAC,CAAC;AAElG,SAAO;AACT;AAEA,IAAO,iBAAQ;",
|
|
6
6
|
"names": ["import_routes"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../dpr/routes/journeys/view-report/async/controller.ts"],
|
|
4
4
|
"sourcesContent": ["import { RequestHandler } from 'express'\nimport ErrorHandler from '../../../../utils/ErrorHandler'\nimport { Services } from '../../../../types/Services'\nimport UserReportsListUtils from '../../../../components/user-reports/utils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\nimport PersonalisationUtils from '../../../../utils/Personalisation/personalisationUtils'\n\nclass AsyncController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n POST: RequestHandler = async (req, res, _next) => {\n try {\n const response = await UserReportsListUtils.updateExpiredStatus({\n req,\n res,\n services: this.services,\n })\n res.send({ isExpired: response })\n } catch (error) {\n res.send({ status: 'FAILED' })\n }\n }\n\n saveDefaultFilterValues: RequestHandler = async (req, res, next) => {\n try {\n PersonalisationUtils.saveDefaults(FiltersType.INTERACTIVE, res, req, this.services)\n res.redirect(`${req.baseUrl}?defaultsSaved=true`)\n } catch (error) {\n req.body = {\n title: 'Failed to save defaults',\n error: new ErrorHandler(error).formatError(),\n ...(req.body && { ...req.body }),\n }\n next(error)\n }\n }\n\n removeDefaultFilterValues: RequestHandler = async (req, res, next) => {\n try {\n PersonalisationUtils.removeDefaults(FiltersType.INTERACTIVE, res, req, this.services)\n res.redirect(req.baseUrl)\n } catch (error) {\n req.body = {\n title: 'Failed to remove defaults',\n error: new ErrorHandler(error).formatError(),\n ...(req.body && { ...req.body }),\n }\n next(error)\n }\n }\n}\n\nexport { AsyncController }\nexport default AsyncController\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAyB;AAEzB,mBAAiC;AACjC,6BAA4B;AAC5B,kCAAiC;AAEjC,MAAM,gBAAgB;AAAA,EACpB;AAAA,EAEA;AAAA,EAEA,YAAY,YAAoB,UAAoB;AAClD,SAAK,aAAa;AAClB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,OAAuB,OAAO,KAAK,KAAK,UAAU;AAChD,QAAI;AACF,YAAM,WAAW,MAAM,aAAAA,QAAqB,oBAAoB;AAAA,QAC9D;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,MACjB,CAAC;AACD,UAAI,KAAK,EAAE,WAAW,SAAS,CAAC;AAAA,IAClC,SAAS,OAAO;AACd,UAAI,KAAK,EAAE,QAAQ,SAAS,CAAC;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,0BAA0C,OAAO,KAAK,KAAK,SAAS;AAClE,QAAI;AACF,kCAAAC,QAAqB,aAAa,mCAAY,aAAa,KAAK,KAAK,KAAK,QAAQ;AAClF,UAAI,SAAS,GAAG,IAAI,OAAO,qBAAqB;AAAA,IAClD,SAAS,OAAO;AACd,UAAI,OAAO;AAAA,QACT,OAAO;AAAA,QACP,OAAO,IAAI,oBAAAC,QAAa,KAAK,EAAE,YAAY;AAAA,QAC3C,GAAI,IAAI,QAAQ,EAAE,GAAG,IAAI,KAAK;AAAA,MAChC;AACA,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,4BAA4C,OAAO,KAAK,KAAK,SAAS;AACpE,QAAI;AACF,kCAAAD,QAAqB,eAAe,mCAAY,aAAa,KAAK,KAAK,KAAK,QAAQ;AACpF,UAAI,SAAS,IAAI,OAAO;AAAA,IAC1B,SAAS,OAAO;AACd,UAAI,OAAO;AAAA,QACT,OAAO;AAAA,QACP,OAAO,IAAI,oBAAAC,QAAa,KAAK,EAAE,YAAY;AAAA,QAC3C,GAAI,IAAI,QAAQ,EAAE,GAAG,IAAI,KAAK;AAAA,MAChC;AACA,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AACF;AAGA,IAAO,qBAAQ;",
|
|
6
6
|
"names": ["UserReportsListUtils", "PersonalisationUtils", "ErrorHandler"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../dpr/routes/journeys/view-report/async/dashboard/controller.ts"],
|
|
4
4
|
"sourcesContent": ["import { RequestHandler } from 'express'\nimport ErrorHandler from '../../../../../utils/ErrorHandler'\nimport { Services } from '../../../../../types/Services'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport DashboardUtils from './utils'\nimport ViewReportUtils from '../../utils'\n\nclass ViewAsyncDashboardController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n GET: RequestHandler = async (req, res, next) => {\n const { type } = req.params\n try {\n const params = { req, res, services: this.services, next }\n\n const renderData = await DashboardUtils.renderAsyncDashboard(params)\n\n res.render(`dpr/routes/journeys/view-report/dashboard`, {\n layoutPath: this.layoutPath,\n ...renderData,\n })\n } catch (error) {\n const dprError = new ErrorHandler(error).formatError()\n let refreshLink\n if (dprError.status === 'EXPIRED') {\n const { dprUser } = LocalsHelper.getValues(res)\n refreshLink = await this.services.recentlyViewedService.asyncSetToExpiredByTableId(\n req.params['tableId'],\n dprUser.id,\n )\n }\n req.body ??= {}\n req.body.title = `Failed to retrieve ${type}`\n req.body.error = dprError\n if (refreshLink) {\n req.body.refreshLink = refreshLink\n }\n next(error)\n }\n }\n\n applyFilters: RequestHandler = async (req, res, _next) => {\n await ViewReportUtils.applyDashboardInteractiveQuery(req, res, this.services, 'filters')\n }\n}\n\nexport { ViewAsyncDashboardController }\nexport default ViewAsyncDashboardController\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAyB;AAEzB,0BAAyB;AACzB,mBAA2B;AAC3B,IAAAA,gBAA4B;AAE5B,MAAM,6BAA6B;AAAA,EACjC;AAAA,EAEA;AAAA,EAEA,YAAY,YAAoB,UAAoB;AAClD,SAAK,aAAa;AAClB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAsB,OAAO,KAAK,KAAK,SAAS;AAC9C,UAAM,EAAE,KAAK,IAAI,IAAI;AACrB,QAAI;AACF,YAAM,SAAS,EAAE,KAAK,KAAK,UAAU,KAAK,UAAU,KAAK;AAEzD,YAAM,aAAa,MAAM,aAAAC,QAAe,qBAAqB,MAAM;AAEnE,UAAI,OAAO,6CAA6C;AAAA,QACtD,YAAY,KAAK;AAAA,QACjB,GAAG;AAAA,MACL,CAAC;AAAA,IACH,SAAS,OAAO;AACd,YAAM,WAAW,IAAI,oBAAAC,QAAa,KAAK,EAAE,YAAY;AACrD,UAAI;AACJ,UAAI,SAAS,WAAW,WAAW;AACjC,cAAM,EAAE,QAAQ,IAAI,oBAAAC,QAAa,UAAU,GAAG;AAC9C,sBAAc,MAAM,KAAK,SAAS,sBAAsB;AAAA,UACtD,IAAI,OAAO,SAAS;AAAA,UACpB,QAAQ;AAAA,QACV;AAAA,MACF;AACA,UAAI,SAAS,CAAC;AACd,UAAI,KAAK,QAAQ,sBAAsB,IAAI;AAC3C,UAAI,KAAK,QAAQ;AACjB,UAAI,aAAa;AACf,YAAI,KAAK,cAAc;AAAA,MACzB;AACA,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,eAA+B,OAAO,KAAK,KAAK,UAAU;AACxD,UAAM,cAAAC,QAAgB,+BAA+B,KAAK,KAAK,KAAK,UAAU,SAAS;AAAA,EACzF;AACF;AAGA,IAAO,qBAAQ;",
|
|
6
6
|
"names": ["import_utils", "DashboardUtils", "ErrorHandler", "LocalsHelper", "ViewReportUtils"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../dpr/routes/journeys/view-report/async/dashboard/routes.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport ViewAsyncDashboardController from './controller'\nimport { Services } from '../../../../../types/Services'\n\nexport function routes({ layoutPath, services }: { layoutPath: string; services: Services }) {\n const router = Router({ mergeParams: true })\n const controller = new ViewAsyncDashboardController(layoutPath, services)\n\n router.get(`/`, controller.GET)\n router.post('/apply-filters', controller.applyFilters)\n\n return router\n}\n\nexport default routes\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAuB;AACvB,wBAAyC;AAGlC,SAAS,OAAO,EAAE,YAAY,SAAS,GAA+C;AAC3F,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAC3C,QAAM,aAAa,IAAI,kBAAAA,QAA6B,YAAY,QAAQ;AAExE,SAAO,IAAI,KAAK,WAAW,GAAG;AAC9B,SAAO,KAAK,kBAAkB,WAAW,YAAY;AAErD,SAAO;AACT;AAEA,IAAO,iBAAQ;",
|
|
6
6
|
"names": ["ViewAsyncDashboardController"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts"],
|
|
4
4
|
"sourcesContent": ["import { checkA11y, executeDashboardStubs } from '../../../../../../../cypress-tests/cypressUtils'\n\ncontext('Viewing a report', () => {\n const path = '/embedded/platform/'\n\n describe('dashboard tests', () => {\n before(() => {\n executeDashboardStubs()\n cy.task('stubTestDashboard8')\n cy.task('stubDashboardSuccessResult20')\n })\n\n it('should mark the dashboard as recently viewed', () => {\n // Request and run a report so we can go back to it for each test\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed \\(0\\)/ }).should('be.visible')\n checkA11y()\n cy.findByLabelText(/Reports catalogue.*/i).within(() => {\n cy.findByRole('row', {\n name: (_, element) => {\n return (\n Boolean(element.textContent?.includes('Test Dashboard')) &&\n Boolean(element.textContent?.includes('Dashboard used for testing testing'))\n )\n },\n }).within(() => {\n cy.findByRole('link', { name: 'Request dashboard' }).click()\n })\n })\n checkA11y()\n cy.findByRole('button', { name: /Request/ }).click()\n checkA11y()\n cy.findByRole('heading', { level: 1, name: /Test Dashboard/ }).should('be.visible')\n checkA11y()\n cy.visit(path)\n cy.findByRole('tab', { name: /Viewed \\(1\\)/ }).should('be.visible')\n })\n })\n})\n"],
|
|
5
5
|
"mappings": ";AAAA,0BAAiD;AAEjD,QAAQ,oBAAoB,MAAM;AAChC,QAAM,OAAO;AAEb,WAAS,mBAAmB,MAAM;AAChC,WAAO,MAAM;AACX,qDAAsB;AACtB,SAAG,KAAK,oBAAoB;AAC5B,SAAG,KAAK,8BAA8B;AAAA,IACxC,CAAC;AAED,OAAG,gDAAgD,MAAM;AAEvD,SAAG,MAAM,IAAI;AACb,SAAG,WAAW,OAAO,EAAE,MAAM,eAAe,CAAC,EAAE,OAAO,YAAY;AAClE,yCAAU;AACV,SAAG,gBAAgB,sBAAsB,EAAE,OAAO,MAAM;AACtD,WAAG,WAAW,OAAO;AAAA,UACnB,MAAM,CAAC,GAAG,YAAY;AACpB,mBACE,QAAQ,QAAQ,aAAa,SAAS,gBAAgB,CAAC,KACvD,QAAQ,QAAQ,aAAa,SAAS,oCAAoC,CAAC;AAAA,UAE/E;AAAA,QACF,CAAC,EAAE,OAAO,MAAM;AACd,aAAG,WAAW,QAAQ,EAAE,MAAM,oBAAoB,CAAC,EAAE,MAAM;AAAA,QAC7D,CAAC;AAAA,MACH,CAAC;AACD,yCAAU;AACV,SAAG,WAAW,UAAU,EAAE,MAAM,UAAU,CAAC,EAAE,MAAM;AACnD,yCAAU;AACV,SAAG,WAAW,WAAW,EAAE,OAAO,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,YAAY;AAClF,yCAAU;AACV,SAAG,MAAM,IAAI;AACb,SAAG,WAAW,OAAO,EAAE,MAAM,eAAe,CAAC,EAAE,OAAO,YAAY;AAAA,IACpE,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../dpr/routes/journeys/view-report/async/dashboard/utils.ts"],
|
|
4
4
|
"sourcesContent": ["import { Request, Response } from 'express'\nimport { Services } from '../../../../../types/Services'\nimport Dict = NodeJS.Dict\nimport {\n DashboardSection,\n DashboardVisualisation,\n DashboardVisualisationType,\n} from '../../../../../components/_dashboards/dashboard-visualisation/types'\nimport type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils'\n\nimport type { DashboardDataResponse } from '../../../../../types/Metrics'\nimport type { RequestedReport } from '../../../../../types/UserReports'\nimport { ReportType } from '../../../../../types/UserReports'\nimport type { components } from '../../../../../types/api'\n\nimport ChartUtils from '../../../../../components/_charts/utils'\nimport DefinitionUtils from '../../../../../utils/definitionUtils'\nimport UserReportsUtils from '../../../../../components/user-reports/utils'\nimport DashboardListUtils from '../../../../../components/_dashboards/dashboard-list/utils'\nimport FilterUtils from '../../../../../components/_filters/utils'\nimport ScorecardsUtils from '../../../../../components/_dashboards/scorecard/utils'\nimport ScorecardVisualisation from '../../../../../components/_dashboards/scorecard/Scorecard'\nimport ScorecardGroupVisualisation from '../../../../../components/_dashboards/scorecard-group/ScorecardGroup'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport { FilterValue, GranularDateRangeFilterValue, PartialDate } from '../../../../../components/_filters/types'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\nimport { FilterType } from '../../../../../components/_filters/filter-input/enum'\n\nconst setDashboardActions = (\n dashboardDefinition: components['schemas']['DashboardDefinition'],\n reportDefinition: components['schemas']['ReportDefinitionSummary'],\n requestData?: RequestedReport,\n) => {\n const reportName = reportDefinition.name\n const { name } = dashboardDefinition\n const actionsUrl = requestData?.url?.request?.fullUrl\n const executionId = requestData?.executionId\n\n let actions = {}\n if (actionsUrl) {\n actions = {\n share: {\n reportName,\n name,\n url: actionsUrl,\n },\n copy: {\n url: actionsUrl,\n },\n }\n if (executionId) {\n actions = {\n ...actions,\n refresh: {\n url: actionsUrl,\n executionId,\n },\n }\n }\n }\n\n return ReportActionsUtils.getActions(actions)\n}\n\nconst getDefinitionData = async ({\n req,\n res,\n services,\n queryData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: Dict<string | string[]> | undefined\n}) => {\n const { token } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const dataProductDefinitionsPath = <string>req.query['dataProductDefinitionsPath']\n\n // Dashboard Definition,\n const dashboardDefinition = await services.dashboardService.getDefinition(\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n queryData,\n )\n\n // Report summary data\n const reportDefinition = await DefinitionUtils.getReportSummary(\n reportId,\n services.reportingService,\n token,\n <string>dataProductDefinitionsPath,\n )\n\n // Get the filters\n const filtersData = await FilterUtils.getFilters({\n fields: dashboardDefinition.filterFields || [],\n req,\n filtersType: FiltersType.INTERACTIVE,\n })\n\n const filtersQuery = FilterUtils.setRequestQueryFromFilterValues(filtersData.filters)\n\n // Create the query\n const query = new ReportQuery({\n fields: dashboardDefinition.filterFields || [],\n queryParams: filtersQuery,\n definitionsPath: <string>dataProductDefinitionsPath,\n reportType: ReportType.DASHBOARD,\n }).toRecordWithFilterPrefix(true)\n\n return {\n query,\n filters: filtersData,\n dashboardDefinition,\n reportDefinition,\n }\n}\n\nconst getSections = (\n dashboardDefinition: components['schemas']['DashboardDefinition'],\n dashboardData: DashboardDataResponse[],\n query: Record<string, string | string[]>,\n partialDate?: PartialDate,\n): DashboardSection[] => {\n return dashboardDefinition.sections.map((section: components['schemas']['DashboardSectionDefinition']) => {\n const { id, display: title, description } = section\n\n let hasScorecard = false\n const visualisations: DashboardVisualisation[] = section.visualisations.map(\n (visDefinition: components['schemas']['DashboardVisualisationDefinition']) => {\n const { type, display, description: visDescription, id: visId } = visDefinition\n\n let data: DashboardVisualisation['data'] | undefined\n\n switch (type) {\n case DashboardVisualisationType.LIST:\n data = DashboardListUtils.createList(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD:\n hasScorecard = true\n data = new ScorecardVisualisation().withDefinition(visDefinition).withData(dashboardData).build()\n break\n\n case DashboardVisualisationType.SCORECARD_GROUP:\n data = new ScorecardGroupVisualisation().withDefinition(visDefinition).withData(dashboardData).build()\n break\n\n case DashboardVisualisationType.BAR:\n case DashboardVisualisationType.LINE:\n case DashboardVisualisationType.DONUT: {\n data = ChartUtils.createChart(visDefinition, dashboardData, type)\n break\n }\n case DashboardVisualisationType.MATRIX_TIMESERIES:\n case DashboardVisualisationType.BAR_TIMESERIES:\n case DashboardVisualisationType.LINE_TIMESERIES: {\n data = ChartUtils.createTimeseriesCharts(visDefinition, dashboardData, type, query, partialDate)\n break\n }\n default:\n break\n }\n\n return {\n id: visId,\n title: display || '',\n description: visDescription || '',\n type,\n data,\n }\n },\n )\n\n if (hasScorecard) ScorecardsUtils.mergeScorecardsIntoGroup(visualisations)\n\n return { id, title: title || '', description: description || '', visualisations }\n })\n}\n\nconst updateStore = async (\n services: Services,\n tableId: string,\n userId: string,\n sections: DashboardSection[],\n req: Request,\n filters: FilterValue[],\n): Promise<RequestedReport | undefined> => {\n const { requestedReportService } = services\n const dashboardRequestData = await requestedReportService.getReportByTableId(tableId, userId)\n\n // Add to recently viewed\n if (sections && sections.length && dashboardRequestData) {\n UserReportsUtils.updateLastViewed({\n services,\n reportStateData: dashboardRequestData,\n userId,\n req,\n filters,\n })\n }\n\n return dashboardRequestData\n}\n\nconst getPartialDate = (filters: FilterValue[]) => {\n let partialDate: PartialDate | undefined\n const granularDateRangeFilter = <GranularDateRangeFilterValue | undefined>(\n filters.find((f) => f.type === FilterType.granularDateRange.toLowerCase())\n )\n if (granularDateRangeFilter) {\n partialDate = granularDateRangeFilter.value.partialDate\n }\n return partialDate\n}\n\nexport const renderAsyncDashboard = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, csrfToken, dprUser, nestedBaseUrl } = LocalsHelper.getValues(res)\n const { reportId, id, tableId } = req.params\n const { bookmarkService, requestedReportService } = services\n const { id: userId } = dprUser\n\n let requestData: RequestedReport | undefined = await requestedReportService.getReportByTableId(tableId, userId)\n const queryData = requestData?.query?.data\n\n // Get the definition Data\n const { query, filters, reportDefinition, dashboardDefinition } = await getDefinitionData({\n req,\n res,\n services,\n queryData,\n })\n\n // Get the results data\n const dashboardData: DashboardDataResponse[][] = await services.dashboardService.getAsyncDashboard(\n token,\n id,\n reportId,\n tableId,\n query,\n )\n\n const flattenedData: DashboardDataResponse[] = dashboardData.flat()\n const partialDate = getPartialDate(filters.filters)\n\n // Get the dashboard parts\n const sections: DashboardSection[] = getSections(dashboardDefinition, flattenedData, query, partialDate)\n\n // Update the store\n if (requestedReportService) {\n requestData = await updateStore(services, tableId, dprUser.id, sections, req, filters.filters)\n }\n\n return {\n dashboardData: {\n token,\n id,\n reportId,\n name: dashboardDefinition.name,\n description: dashboardDefinition.description,\n reportName: reportDefinition.name,\n bookmarked: await bookmarkService.isBookmarked(id, reportId, dprUser.id),\n nestedBaseUrl,\n csrfToken,\n sections,\n filters,\n type: ReportType.DASHBOARD,\n actions: setDashboardActions(dashboardDefinition, reportDefinition, requestData),\n },\n }\n}\n\nexport default {\n renderAsyncDashboard,\n getDefinitionData,\n getSections,\n setDashboardActions,\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAIO;AAKP,yBAA2B;AAG3B,mBAAuB;AACvB,6BAA4B;AAC5B,IAAAA,gBAA6B;AAC7B,IAAAA,gBAA+B;AAC/B,IAAAA,gBAAwB;AACxB,IAAAA,gBAA4B;AAC5B,uBAAmC;AACnC,4BAAwC;AACxC,IAAAA,gBAA+B;AAC/B,yBAAwB;AACxB,0BAAyB;AAEzB,6BAA4B;AAC5B,kBAA2B;AAE3B,MAAM,sBAAsB,CAC1B,qBACA,kBACA,gBACG;AACH,QAAM,aAAa,iBAAiB;AACpC,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,aAAa,aAAa,KAAK,SAAS;AAC9C,QAAM,cAAc,aAAa;AAEjC,MAAI,UAAU,CAAC;AACf,MAAI,YAAY;AACd,cAAU;AAAA,MACR,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,KAAK;AAAA,MACP;AAAA,MACA,MAAM;AAAA,QACJ,KAAK;AAAA,MACP;AAAA,IACF;AACA,QAAI,aAAa;AACf,gBAAU;AAAA,QACR,GAAG;AAAA,QACH,SAAS;AAAA,UACP,KAAK;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,cAAAC,QAAmB,WAAW,OAAO;AAC9C;AAEA,MAAM,oBAAoB,OAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAKM;AACJ,QAAM,EAAE,MAAM,IAAI,oBAAAC,QAAa,UAAU,GAAG;AAC5C,QAAM,EAAE,UAAU,GAAG,IAAI,IAAI;AAC7B,QAAM,6BAAqC,IAAI,MAAM,4BAA4B;AAGjF,QAAM,sBAAsB,MAAM,SAAS,iBAAiB;AAAA,IAC1D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAGA,QAAM,mBAAmB,MAAM,uBAAAC,QAAgB;AAAA,IAC7C;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACQ;AAAA,EACV;AAGA,QAAM,cAAc,MAAM,cAAAC,QAAY,WAAW;AAAA,IAC/C,QAAQ,oBAAoB,gBAAgB,CAAC;AAAA,IAC7C;AAAA,IACA,aAAa,mCAAY;AAAA,EAC3B,CAAC;AAED,QAAM,eAAe,cAAAA,QAAY,gCAAgC,YAAY,OAAO;AAGpF,QAAM,QAAQ,IAAI,mBAAAC,QAAY;AAAA,IAC5B,QAAQ,oBAAoB,gBAAgB,CAAC;AAAA,IAC7C,aAAa;AAAA,IACb,iBAAyB;AAAA,IACzB,YAAY,8BAAW;AAAA,EACzB,CAAC,EAAE,yBAAyB,IAAI;AAEhC,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACF;AACF;AAEA,MAAM,cAAc,CAClB,qBACA,eACA,OACA,gBACuB;AACvB,SAAO,oBAAoB,SAAS,IAAI,CAAC,YAAiE;AACxG,UAAM,EAAE,IAAI,SAAS,OAAO,YAAY,IAAI;AAE5C,QAAI,eAAe;AACnB,UAAM,iBAA2C,QAAQ,eAAe;AAAA,MACtE,CAAC,kBAA6E;AAC5E,cAAM,EAAE,MAAM,SAAS,aAAa,gBAAgB,IAAI,MAAM,IAAI;AAElE,YAAI;AAEJ,gBAAQ,MAAM;AAAA,UACZ,KAAK,wCAA2B;AAC9B,mBAAO,cAAAC,QAAmB,WAAW,eAAe,aAAa;AACjE;AAAA,UAEF,KAAK,wCAA2B;AAC9B,2BAAe;AACf,mBAAO,IAAI,iBAAAC,QAAuB,EAAE,eAAe,aAAa,EAAE,SAAS,aAAa,EAAE,MAAM;AAChG;AAAA,UAEF,KAAK,wCAA2B;AAC9B,mBAAO,IAAI,sBAAAC,QAA4B,EAAE,eAAe,aAAa,EAAE,SAAS,aAAa,EAAE,MAAM;AACrG;AAAA,UAEF,KAAK,wCAA2B;AAAA,UAChC,KAAK,wCAA2B;AAAA,UAChC,KAAK,wCAA2B,OAAO;AACrC,mBAAO,aAAAC,QAAW,YAAY,eAAe,eAAe,IAAI;AAChE;AAAA,UACF;AAAA,UACA,KAAK,wCAA2B;AAAA,UAChC,KAAK,wCAA2B;AAAA,UAChC,KAAK,wCAA2B,iBAAiB;AAC/C,mBAAO,aAAAA,QAAW,uBAAuB,eAAe,eAAe,MAAM,OAAO,WAAW;AAC/F;AAAA,UACF;AAAA,UACA;AACE;AAAA,QACJ;AAEA,eAAO;AAAA,UACL,IAAI;AAAA,UACJ,OAAO,WAAW;AAAA,UAClB,aAAa,kBAAkB;AAAA,UAC/B;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,aAAc,eAAAC,QAAgB,yBAAyB,cAAc;AAEzE,WAAO,EAAE,IAAI,OAAO,SAAS,IAAI,aAAa,eAAe,IAAI,eAAe;AAAA,EAClF,CAAC;AACH;AAEA,MAAM,cAAc,OAClB,UACA,SACA,QACA,UACA,KACA,YACyC;AACzC,QAAM,EAAE,uBAAuB,IAAI;AACnC,QAAM,uBAAuB,MAAM,uBAAuB,mBAAmB,SAAS,MAAM;AAG5F,MAAI,YAAY,SAAS,UAAU,sBAAsB;AACvD,kBAAAC,QAAiB,iBAAiB;AAAA,MAChC;AAAA,MACA,iBAAiB;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,MAAM,iBAAiB,CAAC,YAA2B;AACjD,MAAI;AACJ,QAAM,0BACJ,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,uBAAW,kBAAkB,YAAY,CAAC;AAE3E,MAAI,yBAAyB;AAC3B,kBAAc,wBAAwB,MAAM;AAAA,EAC9C;AACA,SAAO;AACT;AAEO,MAAM,uBAAuB,OAAO,EAAE,KAAK,KAAK,SAAS,MAA8B;AAC5F,QAAM,EAAE,OAAO,WAAW,SAAS,cAAc,IAAI,oBAAAT,QAAa,UAAU,GAAG;AAC/E,QAAM,EAAE,UAAU,IAAI,QAAQ,IAAI,IAAI;AACtC,QAAM,EAAE,iBAAiB,uBAAuB,IAAI;AACpD,QAAM,EAAE,IAAI,OAAO,IAAI;AAEvB,MAAI,cAA2C,MAAM,uBAAuB,mBAAmB,SAAS,MAAM;AAC9G,QAAM,YAAY,aAAa,OAAO;AAGtC,QAAM,EAAE,OAAO,SAAS,kBAAkB,oBAAoB,IAAI,MAAM,kBAAkB;AAAA,IACxF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAGD,QAAM,gBAA2C,MAAM,SAAS,iBAAiB;AAAA,IAC/E;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,gBAAyC,cAAc,KAAK;AAClE,QAAM,cAAc,eAAe,QAAQ,OAAO;AAGlD,QAAM,WAA+B,YAAY,qBAAqB,eAAe,OAAO,WAAW;AAGvG,MAAI,wBAAwB;AAC1B,kBAAc,MAAM,YAAY,UAAU,SAAS,QAAQ,IAAI,UAAU,KAAK,QAAQ,OAAO;AAAA,EAC/F;AAEA,SAAO;AAAA,IACL,eAAe;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,oBAAoB;AAAA,MAC1B,aAAa,oBAAoB;AAAA,MACjC,YAAY,iBAAiB;AAAA,MAC7B,YAAY,MAAM,gBAAgB,aAAa,IAAI,UAAU,QAAQ,EAAE;AAAA,MACvE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,8BAAW;AAAA,MACjB,SAAS,oBAAoB,qBAAqB,kBAAkB,WAAW;AAAA,IACjF;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
6
6
|
"names": ["import_utils", "ReportActionsUtils", "LocalsHelper", "DefinitionUtils", "FilterUtils", "ReportQuery", "DashboardListUtils", "ScorecardVisualisation", "ScorecardGroupVisualisation", "ChartUtils", "ScorecardsUtils", "UserReportsUtils"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../dpr/routes/journeys/view-report/async/report/controller.ts"],
|
|
4
4
|
"sourcesContent": ["import { RequestHandler } from 'express'\nimport { Services } from '../../../../../types/Services'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport AsyncReportUtils from './utils'\nimport ViewReportUtils from '../../utils'\nimport ErrorHandler from '../../../../../utils/ErrorHandler'\n\nclass ViewAyncReportController {\n layoutPath: string\n\n services: Services\n\n constructor(layoutPath: string, services: Services) {\n this.layoutPath = layoutPath\n this.services = services\n }\n\n GET: RequestHandler = async (req, res, next) => {\n const { type } = req.params\n try {\n const params = { req, res, services: this.services, next }\n\n const renderData = await AsyncReportUtils.renderReport(params)\n\n res.render(`dpr/routes/journeys/view-report/report`, {\n layoutPath: this.layoutPath,\n ...renderData,\n })\n } catch (error) {\n const dprError = new ErrorHandler(error).formatError()\n let refreshLink\n const { recentlyViewedService } = this.services\n if (dprError.status === 'EXPIRED' && recentlyViewedService) {\n const { dprUser } = LocalsHelper.getValues(res)\n refreshLink = await recentlyViewedService.asyncSetToExpiredByTableId(req.params['tableId'], dprUser.id)\n }\n req.body ??= {}\n req.body.title = `Failed to retrieve ${type}`\n req.body.error = dprError\n if (refreshLink) {\n req.body.refreshLink = refreshLink\n }\n next(error)\n }\n }\n\n applyFilters: RequestHandler = async (req, res, _next) => {\n await ViewReportUtils.applyReportInteractiveQuery(req, res, this.services, 'filters')\n }\n\n applyColumns: RequestHandler = async (req, res, _next) => {\n await ViewReportUtils.applyReportInteractiveQuery(req, res, this.services, 'columns')\n }\n}\n\nexport { ViewAyncReportController }\nexport default ViewAyncReportController\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,0BAAyB;AACzB,mBAA6B;AAC7B,IAAAA,gBAA4B;AAC5B,0BAAyB;AAEzB,MAAM,yBAAyB;AAAA,EAC7B;AAAA,EAEA;AAAA,EAEA,YAAY,YAAoB,UAAoB;AAClD,SAAK,aAAa;AAClB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,MAAsB,OAAO,KAAK,KAAK,SAAS;AAC9C,UAAM,EAAE,KAAK,IAAI,IAAI;AACrB,QAAI;AACF,YAAM,SAAS,EAAE,KAAK,KAAK,UAAU,KAAK,UAAU,KAAK;AAEzD,YAAM,aAAa,MAAM,aAAAC,QAAiB,aAAa,MAAM;AAE7D,UAAI,OAAO,0CAA0C;AAAA,QACnD,YAAY,KAAK;AAAA,QACjB,GAAG;AAAA,MACL,CAAC;AAAA,IACH,SAAS,OAAO;AACd,YAAM,WAAW,IAAI,oBAAAC,QAAa,KAAK,EAAE,YAAY;AACrD,UAAI;AACJ,YAAM,EAAE,sBAAsB,IAAI,KAAK;AACvC,UAAI,SAAS,WAAW,aAAa,uBAAuB;AAC1D,cAAM,EAAE,QAAQ,IAAI,oBAAAC,QAAa,UAAU,GAAG;AAC9C,sBAAc,MAAM,sBAAsB,2BAA2B,IAAI,OAAO,SAAS,GAAG,QAAQ,EAAE;AAAA,MACxG;AACA,UAAI,SAAS,CAAC;AACd,UAAI,KAAK,QAAQ,sBAAsB,IAAI;AAC3C,UAAI,KAAK,QAAQ;AACjB,UAAI,aAAa;AACf,YAAI,KAAK,cAAc;AAAA,MACzB;AACA,WAAK,KAAK;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,eAA+B,OAAO,KAAK,KAAK,UAAU;AACxD,UAAM,cAAAC,QAAgB,4BAA4B,KAAK,KAAK,KAAK,UAAU,SAAS;AAAA,EACtF;AAAA,EAEA,eAA+B,OAAO,KAAK,KAAK,UAAU;AACxD,UAAM,cAAAA,QAAgB,4BAA4B,KAAK,KAAK,KAAK,UAAU,SAAS;AAAA,EACtF;AACF;AAGA,IAAO,qBAAQ;",
|
|
6
6
|
"names": ["import_utils", "AsyncReportUtils", "ErrorHandler", "LocalsHelper", "ViewReportUtils"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../dpr/routes/journeys/view-report/async/report/report-variants.cy.ts"],
|
|
4
4
|
"sourcesContent": ["import { executeReportStubs, requestReportByNameAndDescription, stubBaseTasks } from 'cypress-tests/cypressUtils'\n\ncontext('Viewing a report', () => {\n const path = '/embedded/platform/'\n\n describe('report variants', () => {\n before(() => {\n stubBaseTasks()\n executeReportStubs()\n })\n\n it('should display a list-section variant', () => {\n cy.task('stubListSectionDefinitionRequest')\n cy.task('stubResultSuccessResult')\n\n cy.visit(path)\n requestReportByNameAndDescription({ name: 'Successful Report', description: 'this will succeed' })\n cy.findByRole('heading', { level: 1, name: /Sectioned/ }).should('be.visible')\n\n cy.findAllByRole('heading', { name: /First.*Second/ }).should('have.length', 4)\n cy.findByRole('heading', { name: /First: One, Second: A 4 results/ }).should('be.visible')\n cy.findByRole('heading', { name: /First: One, Second: B 6 results/ }).should('be.visible')\n cy.findByRole('heading', { name: /First: Two, Second: A 3 results/ }).should('be.visible')\n cy.findByRole('heading', { name: /First: Two, Second: B 7 results/ }).should('be.visible')\n })\n\n it('should display a parent-child variant', () => {\n cy.task('stubParentChildDefinitionRequest')\n cy.task('stubResultSuccessResultDifferentValues')\n\n cy.visit(path)\n requestReportByNameAndDescription({ name: 'Successful Report', description: 'this will succeed' })\n cy.findByRole('heading', { level: 1, name: /Parent Child Template/ }).should('be.visible')\n\n cy.contains('table', 'val40').within(() => {\n cy.findAllByRole('row').should('have.length', 8)\n ;[40, 41, 42, 43, 44, 45, 46].forEach((num) => {\n cy.findByRole('row', { name: new RegExp(`val${num}$`) }).should('be.visible')\n })\n })\n\n cy.contains('table', 'val30').within(() => {\n cy.findAllByRole('row').should('have.length', 14)\n ;[...Array(10).keys()]\n .map((i) => i + 30)\n .forEach((num) => {\n cy.findByRole('row', { name: new RegExp(`val${num}$`) }).should('be.visible')\n })\n cy.findByRole('row', { name: /val330/ }).should('be.visible')\n cy.findByRole('row', { name: /val331/ }).should('be.visible')\n cy.findByRole('row', { name: /val332/ }).should('be.visible')\n })\n })\n\n it('should display a summary section variant', () => {\n cy.task('stubSummarySectionDefinitionRequest')\n cy.task('stubAsyncSummaryReport')\n cy.task('stubResultSuccessResultDifferentValues')\n\n cy.visit(path)\n requestReportByNameAndDescription({ name: 'Successful Report', description: 'this will succeed' })\n cy.findByRole('heading', { level: 1, name: /Sectioned Summaries template/ }).should('be.visible')\n\n cy.findAllByRole('columnheader').should('have.length', 8 * 4)\n cy.get('.report-template-container').within(() => {\n cy.findAllByRole('row').should('have.length', 48)\n })\n })\n\n it('should display a parent child section variant', () => {\n cy.task('stubParentChildSectionDefinitionRequest')\n cy.task('stubResultSuccessResultDifferentValues')\n\n cy.visit(path)\n requestReportByNameAndDescription({ name: 'Successful Report', description: 'this will succeed' })\n cy.findByRole('heading', { level: 1, name: /Parent Child Section Template/ }).should('be.visible')\n\n // First child table\n cy.contains('table', 'val30').within(() => {\n cy.findAllByRole('row').should('have.length', 21)\n })\n cy.findByRole('heading', { name: /Section 1: One, Section 2: A 5 results/ }).should('be.visible')\n cy.findByRole('heading', { name: /Section 1: One, Section 2: B 2 results/ }).should('be.visible')\n cy.findByRole('heading', { name: /Section 1: Two, Section 2: A 8 results/ }).should('be.visible')\n cy.findByRole('heading', { name: /Section 1: Two, Section 2: B 5 results/ }).should('be.visible')\n // This is the best we can do for now until this report type gets refactored\n cy.findAllByRole('row', {\n name: (textContent) => {\n return textContent.includes('val')\n },\n })\n .filter((_idx, el) => [...el.querySelectorAll('td')].length === 2)\n .should('have.length', 100)\n })\n })\n})\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../../dpr/routes/journeys/view-report/async/report/routes.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Router } from 'express'\nimport ViewAsyncReportController from './controller'\nimport ViewReportController from '../controller'\nimport { Services } from '../../../../../types/Services'\n\nexport function routes({ layoutPath, services }: { layoutPath: string; services: Services }) {\n const router = Router({ mergeParams: true })\n const asyncReportController = new ViewAsyncReportController(layoutPath, services)\n const viewReportController = new ViewReportController(layoutPath, services)\n\n router.get([`/`, `/download-disabled`], asyncReportController.GET)\n\n router.post('/apply-filters', asyncReportController.applyFilters)\n router.post('/apply-columns', asyncReportController.applyColumns)\n\n // User defined defaults\n router.post('/save-defaults', viewReportController.saveDefaultFilterValues)\n router.post('/remove-defaults', viewReportController.removeDefaultFilterValues)\n\n return router\n}\n\nexport default routes\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAuB;AACvB,wBAAsC;AACtC,IAAAA,qBAAiC;AAG1B,SAAS,OAAO,EAAE,YAAY,SAAS,GAA+C;AAC3F,QAAM,aAAS,uBAAO,EAAE,aAAa,KAAK,CAAC;AAC3C,QAAM,wBAAwB,IAAI,kBAAAC,QAA0B,YAAY,QAAQ;AAChF,QAAM,uBAAuB,IAAI,mBAAAC,QAAqB,YAAY,QAAQ;AAE1E,SAAO,IAAI,CAAC,KAAK,oBAAoB,GAAG,sBAAsB,GAAG;AAEjE,SAAO,KAAK,kBAAkB,sBAAsB,YAAY;AAChE,SAAO,KAAK,kBAAkB,sBAAsB,YAAY;AAGhE,SAAO,KAAK,kBAAkB,qBAAqB,uBAAuB;AAC1E,SAAO,KAAK,oBAAoB,qBAAqB,yBAAyB;AAE9E,SAAO;AACT;AAEA,IAAO,iBAAQ;",
|
|
6
6
|
"names": ["import_controller", "ViewAsyncReportController", "ViewReportController"]
|