@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.26.8 → 4.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dpr/assets/app.js.map +2 -2
- package/dpr/components/_async/async-filters-form/sortByTemplate.js +60 -1
- package/dpr/components/_async/async-filters-form/sortByTemplate.js.map +2 -2
- package/dpr/components/_async/async-filters-form/types.d.js +16 -1
- package/dpr/components/_async/async-filters-form/types.d.js.map +2 -2
- package/dpr/components/_async/async-filters-form/utils.js +180 -1
- package/dpr/components/_async/async-filters-form/utils.js.map +2 -2
- package/dpr/components/_catalogue/catalogue/types.js +16 -1
- package/dpr/components/_catalogue/catalogue/types.js.map +2 -2
- package/dpr/components/_catalogue/catalogue/utils.js +83 -1
- package/dpr/components/_catalogue/catalogue/utils.js.map +2 -2
- package/dpr/components/_catalogue/catalogue-list/utils.js +140 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js.map +2 -2
- package/dpr/components/_charts/chart/Chart.js +99 -1
- package/dpr/components/_charts/chart/Chart.js.map +2 -2
- package/dpr/components/_charts/chart/ChartColours.js +61 -1
- package/dpr/components/_charts/chart/ChartColours.js.map +2 -2
- package/dpr/components/_charts/chart/ChartTimeseries.js +101 -1
- package/dpr/components/_charts/chart/ChartTimeseries.js.map +2 -2
- package/dpr/components/_charts/chart/bar/BarChart.js +193 -1
- package/dpr/components/_charts/chart/bar/BarChart.js.map +2 -2
- package/dpr/components/_charts/chart/bar/types.js +16 -1
- package/dpr/components/_charts/chart/bar/types.js.map +2 -2
- package/dpr/components/_charts/chart/bar/validate.js +73 -1
- package/dpr/components/_charts/chart/bar/validate.js.map +2 -2
- package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js +80 -1
- package/dpr/components/_charts/chart/bar-timeseries/BarTimeseriesChart.js.map +2 -2
- package/dpr/components/_charts/chart/bar-timeseries/types.js +16 -1
- package/dpr/components/_charts/chart/bar-timeseries/types.js.map +2 -2
- package/dpr/components/_charts/chart/bar-timeseries/validate.js +48 -1
- package/dpr/components/_charts/chart/bar-timeseries/validate.js.map +2 -2
- package/dpr/components/_charts/chart/buckets/Buckets.js +194 -1
- package/dpr/components/_charts/chart/buckets/Buckets.js.map +2 -2
- package/dpr/components/_charts/chart/buckets/types.js +16 -1
- package/dpr/components/_charts/chart/buckets/types.js.map +2 -2
- package/dpr/components/_charts/chart/buckets/validate.js +40 -1
- package/dpr/components/_charts/chart/buckets/validate.js.map +2 -2
- package/dpr/components/_charts/chart/chart-config.js +62 -1
- package/dpr/components/_charts/chart/chart-config.js.map +2 -2
- package/dpr/components/_charts/chart/doughnut/DoughnutChart.js +96 -1
- package/dpr/components/_charts/chart/doughnut/DoughnutChart.js.map +2 -2
- package/dpr/components/_charts/chart/doughnut/types.js +16 -1
- package/dpr/components/_charts/chart/doughnut/types.js.map +2 -2
- package/dpr/components/_charts/chart/doughnut/validate.js +48 -1
- package/dpr/components/_charts/chart/doughnut/validate.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +213 -1
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/types.js +16 -1
- package/dpr/components/_charts/chart/heatmap/types.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/validate.js +40 -1
- package/dpr/components/_charts/chart/heatmap/validate.js.map +2 -2
- package/dpr/components/_charts/chart/line/LineChart.js +107 -1
- package/dpr/components/_charts/chart/line/LineChart.js.map +2 -2
- package/dpr/components/_charts/chart/line/types.js +16 -1
- package/dpr/components/_charts/chart/line/types.js.map +2 -2
- package/dpr/components/_charts/chart/line/validate.js +48 -1
- package/dpr/components/_charts/chart/line/validate.js.map +2 -2
- package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js +81 -1
- package/dpr/components/_charts/chart/line-timeseries/LineTimeseriesChart.js.map +2 -2
- package/dpr/components/_charts/chart/line-timeseries/types.js +16 -1
- package/dpr/components/_charts/chart/line-timeseries/types.js.map +2 -2
- package/dpr/components/_charts/chart/line-timeseries/validate.js +48 -1
- package/dpr/components/_charts/chart/line-timeseries/validate.js.map +2 -2
- package/dpr/components/_charts/utils.js +240 -1
- package/dpr/components/_charts/utils.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-list/types.js +16 -1
- package/dpr/components/_dashboards/dashboard-list/types.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-list/utils.js +170 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-list/validate.js +43 -1
- package/dpr/components/_dashboards/dashboard-list/validate.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-visualisation/Validate.js +95 -1
- package/dpr/components/_dashboards/dashboard-visualisation/Validate.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-visualisation/types.js +40 -1
- package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/Scorecard.js +176 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/types.js +16 -1
- package/dpr/components/_dashboards/scorecard/types.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/utils.js +61 -1
- package/dpr/components/_dashboards/scorecard/utils.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/validate.js +50 -1
- package/dpr/components/_dashboards/scorecard/validate.js.map +2 -2
- package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js +212 -1
- package/dpr/components/_dashboards/scorecard-group/ScorecardGroup.js.map +2 -2
- package/dpr/components/_dashboards/scorecard-group/types.js +16 -1
- package/dpr/components/_dashboards/scorecard-group/types.js.map +2 -2
- package/dpr/components/_dashboards/scorecard-group/validate.js +50 -1
- package/dpr/components/_dashboards/scorecard-group/validate.js.map +2 -2
- package/dpr/components/_filters/filter-input/enum.js +38 -1
- package/dpr/components/_filters/filter-input/enum.js.map +2 -2
- package/dpr/components/_filters/filter-input/filters.js +37 -1
- package/dpr/components/_filters/filter-input/filters.js.map +2 -2
- package/dpr/components/_filters/filter-input/types.d.js +16 -1
- package/dpr/components/_filters/filter-input/types.d.js.map +2 -2
- package/dpr/components/_filters/filters-selected/utils.js +314 -1
- package/dpr/components/_filters/filters-selected/utils.js.map +2 -2
- package/dpr/components/_filters/filtersTypeEnum.js +32 -1
- package/dpr/components/_filters/filtersTypeEnum.js.map +2 -2
- package/dpr/components/_filters/types.d.js +16 -1
- package/dpr/components/_filters/types.d.js.map +2 -2
- package/dpr/components/_filters/utils.js +385 -1
- package/dpr/components/_filters/utils.js.map +2 -2
- package/dpr/components/_inputs/autocomplete-text-input/utils.js +45 -1
- package/dpr/components/_inputs/autocomplete-text-input/utils.js.map +2 -2
- package/dpr/components/_inputs/date-input/utils.js +88 -1
- package/dpr/components/_inputs/date-input/utils.js.map +2 -2
- package/dpr/components/_inputs/date-range/types.js +38 -1
- package/dpr/components/_inputs/date-range/types.js.map +2 -2
- package/dpr/components/_inputs/date-range/utils.js +229 -1
- package/dpr/components/_inputs/date-range/utils.js.map +2 -2
- package/dpr/components/_inputs/granular-date-range/types.js +70 -1
- package/dpr/components/_inputs/granular-date-range/types.js.map +2 -2
- package/dpr/components/_inputs/granular-date-range/utils.js +445 -1
- package/dpr/components/_inputs/granular-date-range/utils.js.map +2 -2
- package/dpr/components/_inputs/multi-select/utils.js +88 -1
- package/dpr/components/_inputs/multi-select/utils.js.map +2 -2
- package/dpr/components/_inputs/start-end-date/utils.js +84 -1
- package/dpr/components/_inputs/start-end-date/utils.js.map +2 -2
- package/dpr/components/_reports/report-actions/actionsTemplate.js +59 -1
- package/dpr/components/_reports/report-actions/actionsTemplate.js.map +2 -2
- package/dpr/components/_reports/report-actions/types.d.js +16 -1
- package/dpr/components/_reports/report-actions/types.d.js.map +2 -2
- package/dpr/components/_reports/report-actions/utils.js +97 -1
- package/dpr/components/_reports/report-actions/utils.js.map +2 -2
- package/dpr/components/_reports/report-columns-form/types.d.js +16 -1
- package/dpr/components/_reports/report-columns-form/types.d.js.map +2 -2
- package/dpr/components/_reports/report-columns-form/utils.js +65 -1
- package/dpr/components/_reports/report-columns-form/utils.js.map +2 -2
- package/dpr/components/_reports/report-data-table/types.d.js +16 -1
- package/dpr/components/_reports/report-data-table/types.d.js.map +2 -2
- package/dpr/components/_reports/report-data-table/utils.js +122 -1
- package/dpr/components/_reports/report-data-table/utils.js.map +2 -2
- package/dpr/components/_reports/report-pagination/types.d.js +16 -1
- package/dpr/components/_reports/report-pagination/types.d.js.map +2 -2
- package/dpr/components/_reports/report-pagination/utils.js +105 -1
- package/dpr/components/_reports/report-pagination/utils.js.map +2 -2
- package/dpr/components/_reports/report-totals/utils.js +42 -1
- package/dpr/components/_reports/report-totals/utils.js.map +2 -2
- package/dpr/components/card-group/utils.js +57 -1
- package/dpr/components/card-group/utils.js.map +2 -2
- package/dpr/components/report-list/defaultTokenProvider.js +36 -1
- package/dpr/components/report-list/defaultTokenProvider.js.map +2 -2
- package/dpr/components/report-list/types.d.js +16 -1
- package/dpr/components/report-list/types.d.js.map +2 -2
- package/dpr/components/report-list/utils.js +238 -1
- package/dpr/components/report-list/utils.js.map +2 -2
- package/dpr/components/show-more/utils.js +38 -3
- package/dpr/components/show-more/utils.js.map +2 -2
- package/dpr/components/user-reports/bookmarks/utils.js +198 -1
- package/dpr/components/user-reports/bookmarks/utils.js.map +2 -2
- package/dpr/components/user-reports/requested/utils.js +65 -1
- package/dpr/components/user-reports/requested/utils.js.map +2 -2
- package/dpr/components/user-reports/types.d.js +16 -1
- package/dpr/components/user-reports/types.d.js.map +2 -2
- package/dpr/components/user-reports/utils.js +365 -1
- package/dpr/components/user-reports/utils.js.map +2 -2
- package/dpr/components/user-reports/viewed/utils.js +37 -1
- package/dpr/components/user-reports/viewed/utils.js.map +2 -2
- package/dpr/data/agentConfig.js +35 -1
- package/dpr/data/agentConfig.js.map +2 -2
- package/dpr/data/dashboardClient.js +108 -1
- package/dpr/data/dashboardClient.js.map +2 -2
- package/dpr/data/dprReportingClient.js +55 -1
- package/dpr/data/dprReportingClient.js.map +2 -2
- package/dpr/data/missingReportClient.js +55 -1
- package/dpr/data/missingReportClient.js.map +2 -2
- package/dpr/data/productCollectionClient.js +58 -1
- package/dpr/data/productCollectionClient.js.map +2 -2
- package/dpr/data/reportDataStore.js +77 -1
- package/dpr/data/reportDataStore.js.map +2 -2
- package/dpr/data/reportingClient.js +173 -1
- package/dpr/data/reportingClient.js.map +2 -2
- package/dpr/data/restClient.js +143 -1
- package/dpr/data/restClient.js.map +2 -2
- package/dpr/data/types.d.js +16 -1
- package/dpr/data/types.d.js.map +2 -2
- package/dpr/middleware/reportAuthoriser.js +63 -1
- package/dpr/middleware/reportAuthoriser.js.map +2 -2
- package/dpr/middleware/setUpDprResources.js +173 -1
- package/dpr/middleware/setUpDprResources.js.map +3 -3
- package/dpr/middleware/setUpDprResources.ts +3 -1
- package/dpr/middleware/setUpNestedRoute.js +35 -1
- package/dpr/middleware/setUpNestedRoute.js.map +2 -2
- package/dpr/routes/index.js +50 -1
- package/dpr/routes/index.js.map +2 -2
- package/dpr/routes/journeys/api-failures.cy.js +295 -1
- package/dpr/routes/journeys/api-failures.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/controller.js +65 -1
- package/dpr/routes/journeys/download-report/controller.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/controller.js +98 -1
- package/dpr/routes/journeys/download-report/request-download/form/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/request-download/form/controller.ts +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/routes.js +50 -1
- package/dpr/routes/journeys/download-report/request-download/form/routes.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js +68 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/controller.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js +47 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/routes.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +17 -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 +24 -1
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/routes.js +46 -1
- package/dpr/routes/journeys/download-report/request-download/routes.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/service.js +90 -1
- package/dpr/routes/journeys/download-report/request-download/service.js.map +2 -2
- package/dpr/routes/journeys/download-report/routes.js +63 -1
- package/dpr/routes/journeys/download-report/routes.js.map +2 -2
- package/dpr/routes/journeys/download-report/tests.cy.js +104 -1
- package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/utils.js +196 -1
- package/dpr/routes/journeys/download-report/utils.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/controller.js +58 -1
- package/dpr/routes/journeys/my-reports/bookmarks/controller.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js +56 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/controller.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js +47 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/routes.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +32 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/routes.js +49 -1
- package/dpr/routes/journeys/my-reports/bookmarks/routes.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/service.js +123 -4
- package/dpr/routes/journeys/my-reports/bookmarks/service.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +448 -1
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js +44 -1
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/controller.js +53 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/controller.js.map +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js +65 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/controller.js.map +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js +47 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/routes.js.map +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +83 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/routes.js +49 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/routes.js.map +2 -2
- package/dpr/routes/journeys/my-reports/recently-viewed/service.js +118 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/service.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/controller.js +52 -1
- package/dpr/routes/journeys/my-reports/requested-reports/controller.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js +65 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/controller.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js +47 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/routes.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +15 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/routes.js +49 -1
- package/dpr/routes/journeys/my-reports/requested-reports/routes.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/service.js +200 -1
- package/dpr/routes/journeys/my-reports/requested-reports/service.js.map +2 -2
- package/dpr/routes/journeys/my-reports/routes.js +59 -1
- package/dpr/routes/journeys/my-reports/routes.js.map +2 -2
- package/dpr/routes/journeys/product-collection/routes.js +45 -1
- package/dpr/routes/journeys/product-collection/routes.js.map +2 -2
- package/dpr/routes/journeys/product-collection/selected/controller.js +55 -1
- package/dpr/routes/journeys/product-collection/selected/controller.js.map +2 -2
- package/dpr/routes/journeys/product-collection/selected/routes.js +37 -1
- package/dpr/routes/journeys/product-collection/selected/routes.js.map +2 -2
- package/dpr/routes/journeys/product-collection/selected/tests.cy.js +47 -1
- package/dpr/routes/journeys/product-collection/selected/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/product-collection/selected/validation.js +41 -1
- package/dpr/routes/journeys/product-collection/selected/validation.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/form/controller.js +104 -1
- package/dpr/routes/journeys/request-missing-report/form/controller.js.map +3 -3
- package/dpr/routes/journeys/request-missing-report/form/controller.ts +6 -3
- package/dpr/routes/journeys/request-missing-report/form/routes.js +50 -1
- package/dpr/routes/journeys/request-missing-report/form/routes.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +22 -1
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/form/validation.js +43 -1
- package/dpr/routes/journeys/request-missing-report/form/validation.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/routes.js +57 -1
- package/dpr/routes/journeys/request-missing-report/routes.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/submitted/controller.js +65 -1
- package/dpr/routes/journeys/request-missing-report/submitted/controller.js.map +3 -3
- package/dpr/routes/journeys/request-missing-report/submitted/controller.ts +1 -1
- package/dpr/routes/journeys/request-missing-report/submitted/routes.js +47 -1
- package/dpr/routes/journeys/request-missing-report/submitted/routes.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js +14 -1
- package/dpr/routes/journeys/request-missing-report/submitted/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/tests.cy.js +37 -1
- package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/controller.js +79 -1
- package/dpr/routes/journeys/request-report/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/controller.ts +3 -1
- package/dpr/routes/journeys/request-report/filters/controller.js +127 -1
- package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/controller.ts +3 -3
- package/dpr/routes/journeys/request-report/filters/routes.js +50 -1
- package/dpr/routes/journeys/request-report/filters/routes.js.map +2 -2
- package/dpr/routes/journeys/request-report/filters/tests.cy.js +451 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/filters/utils.js +331 -1
- package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
- package/dpr/routes/journeys/request-report/routes.js +100 -1
- package/dpr/routes/journeys/request-report/routes.js.map +3 -3
- package/dpr/routes/journeys/request-report/routes.ts +2 -0
- package/dpr/routes/journeys/request-report/status/controller.js +80 -1
- package/dpr/routes/journeys/request-report/status/controller.js.map +3 -3
- package/dpr/routes/journeys/request-report/status/controller.ts +1 -1
- package/dpr/routes/journeys/request-report/status/routes.js +48 -1
- package/dpr/routes/journeys/request-report/status/routes.js.map +2 -2
- package/dpr/routes/journeys/request-report/status/tests.cy.js +127 -1
- package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/status/utils.js +72 -1
- package/dpr/routes/journeys/request-report/status/utils.js.map +2 -2
- package/dpr/routes/journeys/request-report/tests.cy.js +307 -1
- package/dpr/routes/journeys/request-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/routes.js +46 -1
- package/dpr/routes/journeys/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/controller.js +89 -1
- package/dpr/routes/journeys/view-report/async/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/controller.ts +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/controller.js +82 -1
- package/dpr/routes/journeys/view-report/async/dashboard/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/dashboard/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js +48 -1
- package/dpr/routes/journeys/view-report/async/dashboard/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +33 -1
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js +242 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/controller.js +83 -1
- package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js +76 -1
- package/dpr/routes/journeys/view-report/async/report/report-variants.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/routes.js +53 -1
- package/dpr/routes/journeys/view-report/async/report/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js +895 -1
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/types.js +16 -1
- package/dpr/routes/journeys/view-report/async/report/types.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/utils.js +427 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/routes.js +52 -1
- package/dpr/routes/journeys/view-report/async/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/controller.js +62 -1
- package/dpr/routes/journeys/view-report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/controller.ts +7 -4
- package/dpr/routes/journeys/view-report/routes.js +87 -1
- package/dpr/routes/journeys/view-report/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/dashboard/controller.js +68 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/dashboard/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/routes.js +48 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/dashboard/utils.js +144 -1
- package/dpr/routes/journeys/view-report/sync/dashboard/utils.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js +102 -1
- package/dpr/routes/journeys/view-report/sync/load-report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/load-report/controller.ts +1 -1
- package/dpr/routes/journeys/view-report/sync/load-report/routes.js +47 -1
- package/dpr/routes/journeys/view-report/sync/load-report/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/report/controller.js +99 -1
- package/dpr/routes/journeys/view-report/sync/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/report/controller.ts +3 -3
- package/dpr/routes/journeys/view-report/sync/report/routes.js +51 -1
- package/dpr/routes/journeys/view-report/sync/report/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/report/utils.js +298 -1
- package/dpr/routes/journeys/view-report/sync/report/utils.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/routes.js +51 -1
- package/dpr/routes/journeys/view-report/sync/routes.js.map +2 -2
- package/dpr/routes/journeys/view-report/sync/tests.cy.js +43 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/utils.js +173 -1
- package/dpr/routes/journeys/view-report/utils.js.map +2 -2
- package/dpr/services/dashboardService.js +66 -1
- package/dpr/services/dashboardService.js.map +2 -2
- package/dpr/services/defaultFilterValuesService.js +114 -1
- package/dpr/services/defaultFilterValuesService.js.map +2 -2
- package/dpr/services/featureFlagService.js +65 -1
- package/dpr/services/featureFlagService.js.map +2 -2
- package/dpr/services/featureFlags.cy.js +72 -1
- package/dpr/services/featureFlags.cy.js.map +2 -2
- package/dpr/services/index.js +59 -1
- package/dpr/services/index.js.map +2 -2
- package/dpr/services/missingReport/missingReportService.js +52 -1
- package/dpr/services/missingReport/missingReportService.js.map +2 -2
- package/dpr/services/productCollection/productCollectionService.js +55 -1
- package/dpr/services/productCollection/productCollectionService.js.map +2 -2
- package/dpr/services/productCollection/productCollectionStoreService.js +61 -1
- package/dpr/services/productCollection/productCollectionStoreService.js.map +2 -2
- package/dpr/services/reportStoreService.js +51 -1
- package/dpr/services/reportStoreService.js.map +2 -2
- package/dpr/services/reportingService.js +81 -1
- package/dpr/services/reportingService.js.map +2 -2
- package/dpr/setUpNunjucksFilters.js +66 -1
- package/dpr/setUpNunjucksFilters.js.map +2 -2
- package/dpr/types/AsyncReportUtils.js +16 -1
- package/dpr/types/AsyncReportUtils.js.map +2 -2
- package/dpr/types/Bookmark.js +16 -1
- package/dpr/types/Bookmark.js.map +2 -2
- package/dpr/types/Charts.js +16 -1
- package/dpr/types/Charts.js.map +2 -2
- package/dpr/types/Download.js +16 -1
- package/dpr/types/Download.js.map +2 -2
- package/dpr/types/DprConfig.js +16 -1
- package/dpr/types/DprConfig.js.map +2 -2
- package/dpr/types/DprUser.js +43 -1
- package/dpr/types/DprUser.js.map +2 -2
- package/dpr/types/EmbeddedReportUtils.js +33 -1
- package/dpr/types/EmbeddedReportUtils.js.map +2 -2
- package/dpr/types/ExecutionData.d.js +16 -1
- package/dpr/types/ExecutionData.d.js.map +2 -2
- package/dpr/types/Metrics.js +16 -1
- package/dpr/types/Metrics.js.map +2 -2
- package/dpr/types/ReportQuery.js +168 -1
- package/dpr/types/ReportQuery.js.map +2 -2
- package/dpr/types/ReportStore.js +16 -1
- package/dpr/types/ReportStore.js.map +2 -2
- package/dpr/types/Services.d.js +16 -1
- package/dpr/types/Services.d.js.map +2 -2
- package/dpr/types/Templates.d.js +16 -1
- package/dpr/types/Templates.d.js.map +2 -2
- package/dpr/types/UserReports.js +55 -1
- package/dpr/types/UserReports.js.map +2 -2
- package/dpr/types/api.d.js +16 -1
- package/dpr/types/api.d.js.map +2 -2
- package/dpr/types/index.d.js +16 -1
- package/dpr/types/index.d.js.map +2 -2
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js +91 -1
- package/dpr/utils/CollatedSummaryBuilder/CollatedSummaryBuilder.js.map +2 -2
- package/dpr/utils/CreateDprServices.js +66 -1
- package/dpr/utils/CreateDprServices.js.map +2 -2
- package/dpr/utils/DataTableBuilder/DataTableBuilder.js +304 -1
- package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +2 -2
- package/dpr/utils/DataTableBuilder/types.d.js +16 -1
- package/dpr/utils/DataTableBuilder/types.d.js.map +2 -2
- package/dpr/utils/DateMapper/DateMapper.js +125 -1
- package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
- package/dpr/utils/DateMapper/types.d.js +16 -1
- package/dpr/utils/DateMapper/types.d.js.map +2 -2
- package/dpr/utils/ErrorHandler.js +94 -1
- package/dpr/utils/ErrorHandler.js.map +3 -3
- package/dpr/utils/ErrorHandler.ts +1 -1
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +201 -1
- package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js +16 -1
- package/dpr/utils/ParentChildDataTableBuilder/types.d.js.map +2 -2
- package/dpr/utils/Personalisation/personalisationUtils.js +202 -1
- package/dpr/utils/Personalisation/personalisationUtils.js.map +2 -2
- package/dpr/utils/Personalisation/types.d.js +16 -1
- package/dpr/utils/Personalisation/types.d.js.map +2 -2
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +310 -1
- package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
- package/dpr/utils/SectionedDataTableBuilder/types.d.js +16 -1
- package/dpr/utils/SectionedDataTableBuilder/types.d.js.map +2 -2
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +145 -1
- package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js.map +2 -2
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +60 -1
- package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +2 -2
- package/dpr/utils/UserStoreItemBuilder.js +247 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +2 -2
- package/dpr/utils/arrayUtils.js +28 -1
- package/dpr/utils/arrayUtils.js.map +2 -2
- package/dpr/utils/datasetHelper.js +229 -1
- package/dpr/utils/datasetHelper.js.map +2 -2
- package/dpr/utils/definitionUtils.js +133 -1
- package/dpr/utils/definitionUtils.js.map +2 -2
- package/dpr/utils/index.js +44 -1
- package/dpr/utils/index.js.map +2 -2
- package/dpr/utils/indexedAccesHelper.js +41 -1
- package/dpr/utils/indexedAccesHelper.js.map +2 -2
- package/dpr/utils/localsHelper.js +105 -1
- package/dpr/utils/localsHelper.js.map +2 -2
- package/dpr/utils/logger.js +48 -1
- package/dpr/utils/logger.js.map +2 -2
- package/dpr/utils/reportListsHelper.js +128 -12
- package/dpr/utils/reportListsHelper.js.map +2 -2
- package/dpr/utils/reportStoreHelper.js +65 -1
- package/dpr/utils/reportStoreHelper.js.map +2 -2
- package/dpr/utils/requestStatusHelper.js +172 -1
- package/dpr/utils/requestStatusHelper.js.map +2 -2
- package/dpr/utils/sanitisedError.js +45 -1
- package/dpr/utils/sanitisedError.js.map +2 -2
- package/dpr/utils/urlHelper.js +103 -1
- package/dpr/utils/urlHelper.js.map +2 -2
- package/dpr/validation/validate.js +52 -1
- package/dpr/validation/validate.js.map +2 -2
- package/package.json +9 -8
|
@@ -1,2 +1,177 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var Scorecard_exports = {};
|
|
30
|
+
__export(Scorecard_exports, {
|
|
31
|
+
ScorecardVisualisation: () => ScorecardVisualisation,
|
|
32
|
+
default: () => Scorecard_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(Scorecard_exports);
|
|
35
|
+
var import_Buckets = __toESM(require("../../_charts/chart/buckets/Buckets"));
|
|
36
|
+
var import_datasetHelper = __toESM(require("../../../utils/datasetHelper"));
|
|
37
|
+
var import_validate = __toESM(require("./validate"));
|
|
38
|
+
class ScorecardVisualisation {
|
|
39
|
+
definition;
|
|
40
|
+
id;
|
|
41
|
+
measures;
|
|
42
|
+
options;
|
|
43
|
+
dataset;
|
|
44
|
+
bucketsHelper;
|
|
45
|
+
buckets = [];
|
|
46
|
+
valueKey;
|
|
47
|
+
titleColumn;
|
|
48
|
+
responseData = [];
|
|
49
|
+
ragColours = ["#cce2d8", "#fff7bf", "#f4cdc6"];
|
|
50
|
+
withDefinition = (definition) => {
|
|
51
|
+
this.definition = import_validate.default.ScorecardSchema.parse(definition);
|
|
52
|
+
this.init();
|
|
53
|
+
return this;
|
|
54
|
+
};
|
|
55
|
+
withData = (responseData) => {
|
|
56
|
+
this.responseData = responseData;
|
|
57
|
+
this.dataset = this.getDataset(this.definition, this.responseData);
|
|
58
|
+
this.initBuckets(this.responseData, this.valueKey);
|
|
59
|
+
return this;
|
|
60
|
+
};
|
|
61
|
+
init = () => {
|
|
62
|
+
this.id = this.definition.id;
|
|
63
|
+
this.measures = this.definition.columns.measures;
|
|
64
|
+
this.options = this.definition.options;
|
|
65
|
+
this.titleColumn = { display: this.definition.display, id: this.valueKey };
|
|
66
|
+
this.initFromMeasures();
|
|
67
|
+
};
|
|
68
|
+
initFromMeasures = () => {
|
|
69
|
+
if (this.measures[0] !== void 0) {
|
|
70
|
+
this.valueKey = this.measures[0].id;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
initBuckets = (responseData, valueKey) => {
|
|
74
|
+
if (this.options?.buckets || this.options?.useRagColour) {
|
|
75
|
+
this.bucketsHelper = new import_Buckets.default(responseData, this.definition, valueKey, false, this.ragColours);
|
|
76
|
+
this.buckets = this.bucketsHelper.getBuckets();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
getDataset = (definition, rawData) => {
|
|
80
|
+
const latestData = import_datasetHelper.default.getLastestDataset(rawData);
|
|
81
|
+
const latestDataSetRows = import_datasetHelper.default.getDatasetRows(
|
|
82
|
+
definition,
|
|
83
|
+
latestData
|
|
84
|
+
);
|
|
85
|
+
const latestTs = latestDataSetRows[0]?.["ts"]?.raw;
|
|
86
|
+
const latestFiltered = import_datasetHelper.default.filterRowsByDisplayColumns(
|
|
87
|
+
definition,
|
|
88
|
+
latestDataSetRows,
|
|
89
|
+
true
|
|
90
|
+
);
|
|
91
|
+
const earliestData = import_datasetHelper.default.getEarliestDataset(rawData);
|
|
92
|
+
const earliestDataSetRows = import_datasetHelper.default.getDatasetRows(
|
|
93
|
+
definition,
|
|
94
|
+
earliestData
|
|
95
|
+
);
|
|
96
|
+
const earliestTs = earliestDataSetRows[0]?.["ts"]?.raw;
|
|
97
|
+
const earliestfiltered = import_datasetHelper.default.filterRowsByDisplayColumns(
|
|
98
|
+
definition,
|
|
99
|
+
earliestDataSetRows,
|
|
100
|
+
true
|
|
101
|
+
);
|
|
102
|
+
return {
|
|
103
|
+
earliest: earliestfiltered,
|
|
104
|
+
earliestTs,
|
|
105
|
+
latest: latestFiltered,
|
|
106
|
+
latestTs
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
createScorecardData = ({
|
|
110
|
+
id,
|
|
111
|
+
title,
|
|
112
|
+
value,
|
|
113
|
+
rag,
|
|
114
|
+
valueFor,
|
|
115
|
+
valueFrom,
|
|
116
|
+
prevVal,
|
|
117
|
+
groupTitle
|
|
118
|
+
}) => {
|
|
119
|
+
return {
|
|
120
|
+
id,
|
|
121
|
+
title,
|
|
122
|
+
value,
|
|
123
|
+
...rag && { rag },
|
|
124
|
+
valueFor,
|
|
125
|
+
trend: this.createTrend(valueFor, valueFrom, value, prevVal),
|
|
126
|
+
...groupTitle && {
|
|
127
|
+
group: groupTitle
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
createTrend = (valueFor, valueFrom, latestValue, earliestValue) => {
|
|
132
|
+
let trendData;
|
|
133
|
+
if (valueFrom !== valueFor) {
|
|
134
|
+
const value = earliestValue ? Number(latestValue) - Number(earliestValue) : 0;
|
|
135
|
+
const direction = Math.sign(value);
|
|
136
|
+
trendData = {
|
|
137
|
+
direction,
|
|
138
|
+
value: Math.abs(value),
|
|
139
|
+
from: valueFrom
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return trendData;
|
|
143
|
+
};
|
|
144
|
+
setRagScore = (value, rag, buckets, bucketsHelper) => {
|
|
145
|
+
let ragScore;
|
|
146
|
+
if (!Number.isNaN(value) && buckets?.length && bucketsHelper) {
|
|
147
|
+
ragScore = bucketsHelper.getBucketForValue(value, rag);
|
|
148
|
+
}
|
|
149
|
+
return ragScore;
|
|
150
|
+
};
|
|
151
|
+
build = () => {
|
|
152
|
+
const { latest, earliest, latestTs, earliestTs } = this.dataset;
|
|
153
|
+
const scorecordArr = latest.map((datasetRow, index) => {
|
|
154
|
+
const { raw: value, rag } = datasetRow[this.valueKey];
|
|
155
|
+
const prevVal = earliest[index][this.valueKey].raw;
|
|
156
|
+
const valueFor = `${latestTs}`;
|
|
157
|
+
const valueFrom = `${earliestTs}`;
|
|
158
|
+
const title = this.titleColumn?.display;
|
|
159
|
+
return this.createScorecardData({
|
|
160
|
+
id: this.id,
|
|
161
|
+
title: title || "",
|
|
162
|
+
value: value || "",
|
|
163
|
+
rag: this.setRagScore(value, rag, this.buckets, this.bucketsHelper),
|
|
164
|
+
prevVal,
|
|
165
|
+
valueFor,
|
|
166
|
+
valueFrom
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
return scorecordArr[0];
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
var Scorecard_default = ScorecardVisualisation;
|
|
173
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
174
|
+
0 && (module.exports = {
|
|
175
|
+
ScorecardVisualisation
|
|
176
|
+
});
|
|
2
177
|
//# sourceMappingURL=Scorecard.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/components/_dashboards/scorecard/Scorecard.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport { DashboardVisualisationBucket } from '../dashboard-visualisation/types'\nimport { CreateScorecardDataArgs, Scorecard, ScorecardDataset, ScorecardDefinitionType, ScorecardTrend } from './types'\nimport Buckets from '../../_charts/chart/buckets/Buckets'\nimport { components } from '../../../types/api'\nimport DatasetHelper from '../../../utils/datasetHelper'\nimport ScorecardSchemas from './validate'\nimport { ScorecardGroupDefinitionType } from '../scorecard-group/types'\n\nclass ScorecardVisualisation {\n private definition!: ScorecardDefinitionType\n\n private id!: string\n\n private measures!: ScorecardDefinitionType['columns']['measures']\n\n private options!: ScorecardDefinitionType['options']\n\n private dataset!: ScorecardDataset\n\n private bucketsHelper: Buckets | undefined\n\n private buckets: DashboardVisualisationBucket[] = []\n\n private valueKey!: string\n\n private titleColumn: components['schemas']['DashboardVisualisationColumnDefinition'] | undefined\n\n responseData: DashboardDataResponse[] = []\n\n ragColours: string[] = ['#cce2d8', '#fff7bf', '#f4cdc6']\n\n withDefinition = (definition: components['schemas']['DashboardVisualisationDefinition']) => {\n this.definition = ScorecardSchemas.ScorecardSchema.parse(definition)\n this.init()\n\n return this\n }\n\n withData = (responseData: DashboardDataResponse[]) => {\n this.responseData = responseData\n this.dataset = this.getDataset(this.definition, this.responseData)\n this.initBuckets(this.responseData, this.valueKey)\n\n return this\n }\n\n private init = () => {\n this.id = this.definition.id\n this.measures = this.definition.columns.measures\n this.options = this.definition.options\n this.titleColumn = { display: this.definition.display, id: this.valueKey }\n this.initFromMeasures()\n }\n\n private initFromMeasures = () => {\n // Zod should throw an error on line 40 so should always pass\n if (this.measures[0] !== undefined) {\n this.valueKey = this.measures[0].id\n }\n }\n\n private initBuckets = (responseData: DashboardDataResponse[], valueKey: string) => {\n if (this.options?.buckets || this.options?.useRagColour) {\n this.bucketsHelper = new Buckets(responseData, this.definition, valueKey, false, this.ragColours)\n this.buckets = this.bucketsHelper.getBuckets()\n }\n }\n\n getDataset = (\n definition: ScorecardDefinitionType | ScorecardGroupDefinitionType,\n rawData: DashboardDataResponse[],\n ): ScorecardDataset => {\n const latestData = DatasetHelper.getLastestDataset(rawData)\n const latestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestData,\n )\n const latestTs = latestDataSetRows[0]?.['ts']?.raw\n const latestFiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n latestDataSetRows,\n true,\n )\n\n const earliestData = DatasetHelper.getEarliestDataset(rawData)\n const earliestDataSetRows = DatasetHelper.getDatasetRows(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestData,\n )\n const earliestTs = earliestDataSetRows[0]?.['ts']?.raw\n const earliestfiltered = DatasetHelper.filterRowsByDisplayColumns(\n <components['schemas']['DashboardVisualisationDefinition']>definition,\n earliestDataSetRows,\n true,\n )\n\n return {\n earliest: earliestfiltered,\n earliestTs,\n latest: latestFiltered,\n latestTs,\n }\n }\n\n createScorecardData = ({\n id,\n title,\n value,\n rag,\n valueFor,\n valueFrom,\n prevVal,\n groupTitle,\n }: CreateScorecardDataArgs): Scorecard => {\n return {\n id,\n title,\n value,\n ...(rag && { rag }),\n valueFor,\n trend: this.createTrend(valueFor, valueFrom, value, prevVal),\n ...(groupTitle && {\n group: groupTitle,\n }),\n }\n }\n\n createTrend = (\n valueFor: string,\n valueFrom: string,\n latestValue: string | number,\n earliestValue: string | number | null | undefined,\n ): ScorecardTrend | undefined => {\n let trendData\n\n if (valueFrom !== valueFor) {\n const value = earliestValue ? Number(latestValue) - Number(earliestValue) : 0\n const direction = Math.sign(value)\n trendData = {\n direction,\n value: Math.abs(value),\n from: valueFrom,\n }\n }\n\n return trendData\n }\n\n setRagScore = (\n value: string | number | undefined | null,\n rag: number | undefined,\n buckets: DashboardVisualisationBucket[] | undefined,\n bucketsHelper: Buckets | undefined,\n ) => {\n let ragScore\n if (!Number.isNaN(value) && buckets?.length && bucketsHelper) {\n ragScore = bucketsHelper.getBucketForValue(<number>value, rag)\n }\n return ragScore\n }\n\n build = () => {\n const { latest, earliest, latestTs, earliestTs } = this.dataset\n const scorecordArr: Scorecard[] = latest.map((datasetRow: DashboardDataResponse, index: number) => {\n const { raw: value, rag } = datasetRow[this.valueKey]\n const prevVal = earliest[index][this.valueKey].raw\n const valueFor = `${latestTs}`\n const valueFrom = `${earliestTs}`\n const title = this.titleColumn?.display\n\n return this.createScorecardData({\n id: this.id,\n title: title || '',\n value: value || '',\n rag: this.setRagScore(value, rag, this.buckets, this.bucketsHelper),\n prevVal,\n valueFor,\n valueFrom,\n })\n })\n\n return scorecordArr[0]\n }\n}\n\nexport { ScorecardVisualisation }\nexport default ScorecardVisualisation\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["ScorecardSchemas", "Buckets", "DatasetHelper"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
2
17
|
//# sourceMappingURL=types.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/components/_dashboards/scorecard/types.ts"],
|
|
4
4
|
"sourcesContent": ["import z from 'zod'\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport ScorecardSchema from './validate'\n\nexport interface Scorecard {\n id: string\n title: string\n group?: string\n value: number | string\n trend?: ScorecardTrend | undefined\n link?:\n | {\n href: '#'\n displayName: 'View breakdown'\n }\n | undefined\n valueFor?: string\n rag?: ScorecardRag | undefined\n}\n\nexport interface ScorecardSubGroup {\n name: string\n scorecards: Scorecard[]\n}\n\nexport interface ScorecardGroup {\n title?: string\n description?: string\n scorecards: Scorecard[]\n}\n\nexport interface ScorecardTrend {\n direction: number\n value: number\n from: string\n}\n\nexport interface ScorecardRag {\n score: number\n colour: string\n}\n\nexport interface ScorecardDataset {\n earliest: DashboardDataResponse[]\n earliestTs?: string | number | null | undefined\n latest: DashboardDataResponse[]\n latestTs?: string | number | null | undefined\n}\n\nexport interface CreateScorecardDataArgs {\n id: string\n title: string\n value: string | number\n rag?:\n | {\n colour: string\n score: number\n }\n | undefined\n valueFor: string\n valueFrom: string\n prevVal: string | number | null | undefined\n groupTitle?: string\n}\n\nexport type ScorecardDefinitionType = z.infer<typeof ScorecardSchema.ScorecardSchema>\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,62 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var utils_exports = {};
|
|
20
|
+
__export(utils_exports, {
|
|
21
|
+
default: () => utils_default,
|
|
22
|
+
mergeScorecardsIntoGroup: () => mergeScorecardsIntoGroup
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(utils_exports);
|
|
25
|
+
var import_types = require("../dashboard-visualisation/types");
|
|
26
|
+
const mergeScorecardsIntoGroup = (visualisations) => {
|
|
27
|
+
const groupedScorecardIndexes = visualisations.reduce((acc, vis, i) => {
|
|
28
|
+
if (vis.type === import_types.DashboardVisualisationType.SCORECARD) acc.push(i);
|
|
29
|
+
return acc;
|
|
30
|
+
}, []).reduce((r, n) => {
|
|
31
|
+
const lastSubArray = r[r.length - 1];
|
|
32
|
+
if (!lastSubArray || lastSubArray[lastSubArray.length - 1] !== n - 1) r.push([]);
|
|
33
|
+
r[r.length - 1].push(n);
|
|
34
|
+
return r;
|
|
35
|
+
}, []);
|
|
36
|
+
groupedScorecardIndexes.reverse().forEach((group) => {
|
|
37
|
+
const spliceAtIndex = group[0];
|
|
38
|
+
const scorecardGroup = group.map((scIndex) => {
|
|
39
|
+
return visualisations[scIndex].data;
|
|
40
|
+
}).filter((scorecard) => !!scorecard);
|
|
41
|
+
while (group.length) {
|
|
42
|
+
const i = group.pop();
|
|
43
|
+
if (i !== void 0) visualisations.splice(i, 1);
|
|
44
|
+
}
|
|
45
|
+
if (scorecardGroup.length) {
|
|
46
|
+
visualisations.splice(spliceAtIndex, 0, {
|
|
47
|
+
id: `${spliceAtIndex}`,
|
|
48
|
+
type: import_types.DashboardVisualisationType.SCORECARD_GROUP,
|
|
49
|
+
data: [{ scorecards: scorecardGroup }]
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return visualisations;
|
|
54
|
+
};
|
|
55
|
+
var utils_default = {
|
|
56
|
+
mergeScorecardsIntoGroup
|
|
57
|
+
};
|
|
58
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
59
|
+
0 && (module.exports = {
|
|
60
|
+
mergeScorecardsIntoGroup
|
|
61
|
+
});
|
|
2
62
|
//# sourceMappingURL=utils.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/components/_dashboards/scorecard/utils.ts"],
|
|
4
4
|
"sourcesContent": ["import { DashboardVisualisation, DashboardVisualisationType } from '../dashboard-visualisation/types'\nimport { Scorecard } from './types'\n\nexport const mergeScorecardsIntoGroup = (visualisations: DashboardVisualisation[]) => {\n const groupedScorecardIndexes: number[][] = visualisations\n // get scorecard indexes\n .reduce((acc: number[], vis: DashboardVisualisation, i: number) => {\n if (vis.type === DashboardVisualisationType.SCORECARD) acc.push(i)\n return acc\n }, [])\n // group adjacent indexes\n .reduce((r: number[][], n) => {\n const lastSubArray = r[r.length - 1]\n if (!lastSubArray || lastSubArray[lastSubArray.length - 1] !== n - 1) r.push([])\n r[r.length - 1].push(n)\n return r\n }, [])\n\n groupedScorecardIndexes.reverse().forEach((group: number[]) => {\n const spliceAtIndex = group[0]\n const scorecardGroup: Scorecard[] = group\n .map((scIndex: number) => {\n return visualisations[scIndex].data as Scorecard\n })\n .filter((scorecard: Scorecard) => !!scorecard)\n\n while (group.length) {\n const i = group.pop()\n if (i !== undefined) visualisations.splice(i, 1)\n }\n\n if (scorecardGroup.length) {\n visualisations.splice(spliceAtIndex, 0, {\n id: `${spliceAtIndex}`,\n type: DashboardVisualisationType.SCORECARD_GROUP,\n data: [{ scorecards: scorecardGroup }],\n })\n }\n })\n\n return visualisations\n}\n\nexport default {\n mergeScorecardsIntoGroup,\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmE;AAG5D,MAAM,2BAA2B,CAAC,mBAA6C;AACpF,QAAM,0BAAsC,eAEzC,OAAO,CAAC,KAAe,KAA6B,MAAc;AACjE,QAAI,IAAI,SAAS,wCAA2B,UAAW,KAAI,KAAK,CAAC;AACjE,WAAO;AAAA,EACT,GAAG,CAAC,CAAC,EAEJ,OAAO,CAAC,GAAe,MAAM;AAC5B,UAAM,eAAe,EAAE,EAAE,SAAS,CAAC;AACnC,QAAI,CAAC,gBAAgB,aAAa,aAAa,SAAS,CAAC,MAAM,IAAI,EAAG,GAAE,KAAK,CAAC,CAAC;AAC/E,MAAE,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC;AACtB,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEP,0BAAwB,QAAQ,EAAE,QAAQ,CAAC,UAAoB;AAC7D,UAAM,gBAAgB,MAAM,CAAC;AAC7B,UAAM,iBAA8B,MACjC,IAAI,CAAC,YAAoB;AACxB,aAAO,eAAe,OAAO,EAAE;AAAA,IACjC,CAAC,EACA,OAAO,CAAC,cAAyB,CAAC,CAAC,SAAS;AAE/C,WAAO,MAAM,QAAQ;AACnB,YAAM,IAAI,MAAM,IAAI;AACpB,UAAI,MAAM,OAAW,gBAAe,OAAO,GAAG,CAAC;AAAA,IACjD;AAEA,QAAI,eAAe,QAAQ;AACzB,qBAAe,OAAO,eAAe,GAAG;AAAA,QACtC,IAAI,GAAG,aAAa;AAAA,QACpB,MAAM,wCAA2B;AAAA,QACjC,MAAM,CAAC,EAAE,YAAY,eAAe,CAAC;AAAA,MACvC,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,IAAO,gBAAQ;AAAA,EACb;AACF;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,51 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var validate_exports = {};
|
|
20
|
+
__export(validate_exports, {
|
|
21
|
+
default: () => validate_default
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(validate_exports);
|
|
24
|
+
var import_zod = require("zod");
|
|
25
|
+
var import_Validate = require("../dashboard-visualisation/Validate");
|
|
26
|
+
const scorecardKey = import_zod.z.object({
|
|
27
|
+
id: import_zod.z.string(),
|
|
28
|
+
optional: import_zod.z.boolean().default(false)
|
|
29
|
+
});
|
|
30
|
+
const scorecardMeasure = import_zod.z.object({
|
|
31
|
+
id: import_zod.z.string(),
|
|
32
|
+
unit: import_zod.z.enum(["NUMBER", "PERCENTAGE"]).optional()
|
|
33
|
+
});
|
|
34
|
+
const ScorecardMeasuresSchema = import_zod.z.array(scorecardMeasure).length(1, "Measure must contain a single item");
|
|
35
|
+
const ScorecardSchema = import_zod.z.object({
|
|
36
|
+
...import_Validate.DashboardVisualisationSchema.shape,
|
|
37
|
+
type: import_zod.z.literal("scorecard"),
|
|
38
|
+
display: import_zod.z.string(),
|
|
39
|
+
description: import_zod.z.undefined(),
|
|
40
|
+
options: import_zod.z.object(import_Validate.BucketOptionsSchema.shape).optional(),
|
|
41
|
+
columns: import_zod.z.object({
|
|
42
|
+
...import_Validate.DashboardColumns.shape,
|
|
43
|
+
keys: import_zod.z.array(scorecardKey).min(1),
|
|
44
|
+
measures: ScorecardMeasuresSchema
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
var validate_default = {
|
|
48
|
+
ScorecardSchema,
|
|
49
|
+
ScorecardMeasuresSchema
|
|
50
|
+
};
|
|
2
51
|
//# sourceMappingURL=validate.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/dpr/components/_dashboards/scorecard/validate.ts"],
|
|
4
4
|
"sourcesContent": ["import { z } from 'zod'\nimport {\n DashboardVisualisationSchema,\n DashboardColumns,\n BucketOptionsSchema,\n} from '../dashboard-visualisation/Validate'\n\nconst scorecardKey = z.object({\n id: z.string(),\n optional: z.boolean().default(false),\n})\n\nconst scorecardMeasure = z.object({\n id: z.string(),\n unit: z.enum(['NUMBER', 'PERCENTAGE']).optional(),\n})\n\nconst ScorecardMeasuresSchema = z.array(scorecardMeasure).length(1, 'Measure must contain a single item')\n\nconst ScorecardSchema = z.object({\n ...DashboardVisualisationSchema.shape,\n type: z.literal('scorecard'),\n display: z.string(),\n description: z.undefined(),\n options: z.object(BucketOptionsSchema.shape).optional(),\n columns: z.object({\n ...DashboardColumns.shape,\n keys: z.array(scorecardKey).min(1),\n measures: ScorecardMeasuresSchema,\n }),\n})\n\nexport default {\n ScorecardSchema,\n ScorecardMeasuresSchema,\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,sBAIO;AAEP,MAAM,eAAe,aAAE,OAAO;AAAA,EAC5B,IAAI,aAAE,OAAO;AAAA,EACb,UAAU,aAAE,QAAQ,EAAE,QAAQ,KAAK;AACrC,CAAC;AAED,MAAM,mBAAmB,aAAE,OAAO;AAAA,EAChC,IAAI,aAAE,OAAO;AAAA,EACb,MAAM,aAAE,KAAK,CAAC,UAAU,YAAY,CAAC,EAAE,SAAS;AAClD,CAAC;AAED,MAAM,0BAA0B,aAAE,MAAM,gBAAgB,EAAE,OAAO,GAAG,oCAAoC;AAExG,MAAM,kBAAkB,aAAE,OAAO;AAAA,EAC/B,GAAG,6CAA6B;AAAA,EAChC,MAAM,aAAE,QAAQ,WAAW;AAAA,EAC3B,SAAS,aAAE,OAAO;AAAA,EAClB,aAAa,aAAE,UAAU;AAAA,EACzB,SAAS,aAAE,OAAO,oCAAoB,KAAK,EAAE,SAAS;AAAA,EACtD,SAAS,aAAE,OAAO;AAAA,IAChB,GAAG,iCAAiB;AAAA,IACpB,MAAM,aAAE,MAAM,YAAY,EAAE,IAAI,CAAC;AAAA,IACjC,UAAU;AAAA,EACZ,CAAC;AACH,CAAC;AAED,IAAO,mBAAQ;AAAA,EACb;AAAA,EACA;AACF;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,213 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ScorecardGroup_exports = {};
|
|
30
|
+
__export(ScorecardGroup_exports, {
|
|
31
|
+
ScorecardGroupVisualisation: () => ScorecardGroupVisualisation,
|
|
32
|
+
default: () => ScorecardGroup_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(ScorecardGroup_exports);
|
|
35
|
+
var import_datasetHelper = __toESM(require("../../../utils/datasetHelper"));
|
|
36
|
+
var import_Buckets = __toESM(require("../../_charts/chart/buckets/Buckets"));
|
|
37
|
+
var import_Scorecard = __toESM(require("../scorecard/Scorecard"));
|
|
38
|
+
var import_validate = __toESM(require("./validate"));
|
|
39
|
+
class ScorecardGroupVisualisation {
|
|
40
|
+
definition;
|
|
41
|
+
id;
|
|
42
|
+
measures;
|
|
43
|
+
keys;
|
|
44
|
+
options;
|
|
45
|
+
dataset;
|
|
46
|
+
groupKey;
|
|
47
|
+
groupKeyId;
|
|
48
|
+
groupKeyDisplay;
|
|
49
|
+
bucketsHelper;
|
|
50
|
+
buckets = [];
|
|
51
|
+
valueColumn;
|
|
52
|
+
valueKey = "";
|
|
53
|
+
titleColumn;
|
|
54
|
+
titleKey = "";
|
|
55
|
+
responseData = [];
|
|
56
|
+
scoreCardBuilder;
|
|
57
|
+
constructor() {
|
|
58
|
+
this.scoreCardBuilder = new import_Scorecard.default();
|
|
59
|
+
}
|
|
60
|
+
withDefinition = (definition) => {
|
|
61
|
+
this.definition = import_validate.default.ScorecardGroupSchema.parse(definition);
|
|
62
|
+
this.init();
|
|
63
|
+
return this;
|
|
64
|
+
};
|
|
65
|
+
withData = (responseData) => {
|
|
66
|
+
this.responseData = responseData;
|
|
67
|
+
this.dataset = this.scoreCardBuilder.getDataset(this.definition, this.responseData);
|
|
68
|
+
this.initBuckets(this.responseData, this.valueKey);
|
|
69
|
+
this.initGroupVars();
|
|
70
|
+
return this;
|
|
71
|
+
};
|
|
72
|
+
init = () => {
|
|
73
|
+
this.id = this.definition.id;
|
|
74
|
+
this.measures = this.definition.columns.measures;
|
|
75
|
+
this.keys = this.definition.columns.keys;
|
|
76
|
+
this.options = this.definition.options;
|
|
77
|
+
this.valueKey = this.measures[0].id;
|
|
78
|
+
this.titleColumn = { display: this.definition.display || "", id: this.valueKey };
|
|
79
|
+
};
|
|
80
|
+
initBuckets = (responseData, valueKey) => {
|
|
81
|
+
if (this.options?.buckets || this.options?.useRagColour) {
|
|
82
|
+
this.bucketsHelper = new import_Buckets.default(responseData, this.definition, valueKey, false, this.scoreCardBuilder.ragColours);
|
|
83
|
+
this.buckets = this.bucketsHelper.getBuckets();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
initGroupVars = () => {
|
|
87
|
+
this.groupKey = import_datasetHelper.default.getGroupKey(
|
|
88
|
+
this.dataset.latest,
|
|
89
|
+
this.keys || []
|
|
90
|
+
);
|
|
91
|
+
this.groupKeyId = this.groupKey?.id;
|
|
92
|
+
this.groupKeyDisplay = this.groupKey?.display;
|
|
93
|
+
this.valueColumn = this.measures.find((col) => col.displayValue);
|
|
94
|
+
if (this.valueColumn) {
|
|
95
|
+
this.valueKey = this.valueColumn?.id;
|
|
96
|
+
this.titleColumn = this.measures.find((col) => {
|
|
97
|
+
return col.display || col.display === "";
|
|
98
|
+
});
|
|
99
|
+
this.titleKey = this.titleColumn?.id || "";
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
createScorecardGroupFromColumns = () => {
|
|
103
|
+
const { latest, earliest, latestTs, earliestTs } = this.dataset;
|
|
104
|
+
return latest.map((row, rowIndex) => {
|
|
105
|
+
return {
|
|
106
|
+
title: this.createGroupTitle(row),
|
|
107
|
+
scorecards: Object.keys(row).filter((colId) => colId !== this.groupKeyId).map((colId) => {
|
|
108
|
+
const measure = this.measures.find((m) => m.id === colId);
|
|
109
|
+
const title = measure?.display || colId;
|
|
110
|
+
const rowCol = row[colId];
|
|
111
|
+
const { raw, rag } = rowCol;
|
|
112
|
+
const value = Number(raw);
|
|
113
|
+
const ragValue = rag !== void 0 ? Number(rag) : void 0;
|
|
114
|
+
this.initBuckets([row], colId);
|
|
115
|
+
const valueFor = `${latestTs}`;
|
|
116
|
+
const valueFrom = `${earliestTs}`;
|
|
117
|
+
const comparisonRow = earliest[rowIndex];
|
|
118
|
+
const prevVal = comparisonRow[colId]?.raw;
|
|
119
|
+
const ragScore = this.scoreCardBuilder.setRagScore(value, ragValue, this.buckets, this.bucketsHelper);
|
|
120
|
+
return this.scoreCardBuilder.createScorecardData({
|
|
121
|
+
id: this.id,
|
|
122
|
+
title,
|
|
123
|
+
value,
|
|
124
|
+
rag: ragScore,
|
|
125
|
+
prevVal,
|
|
126
|
+
valueFor,
|
|
127
|
+
valueFrom
|
|
128
|
+
});
|
|
129
|
+
})
|
|
130
|
+
};
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
createScorecardGroupFromList = () => {
|
|
134
|
+
const { latest, earliest } = this.dataset;
|
|
135
|
+
return [
|
|
136
|
+
{
|
|
137
|
+
title: "",
|
|
138
|
+
scorecards: latest.map((row, index) => {
|
|
139
|
+
const values = this.getScorecardValues(row);
|
|
140
|
+
const prevVal = earliest[index][this.valueKey].raw;
|
|
141
|
+
return this.scoreCardBuilder.createScorecardData({
|
|
142
|
+
...values,
|
|
143
|
+
prevVal
|
|
144
|
+
});
|
|
145
|
+
})
|
|
146
|
+
}
|
|
147
|
+
];
|
|
148
|
+
};
|
|
149
|
+
createScorecardGroupFromListWithGroups = () => {
|
|
150
|
+
const { latest, earliest } = this.dataset;
|
|
151
|
+
let earliestGroupedByKey = import_datasetHelper.default.groupRowsByKey(earliest, this.groupKeyId);
|
|
152
|
+
let latestGroupedByKey = import_datasetHelper.default.groupRowsByKey(latest, this.groupKeyId);
|
|
153
|
+
if (this.groupKeyId === this.titleKey) {
|
|
154
|
+
latestGroupedByKey = [latestGroupedByKey.flat()];
|
|
155
|
+
earliestGroupedByKey = [earliestGroupedByKey.flat()];
|
|
156
|
+
}
|
|
157
|
+
const scorecardGroup = latestGroupedByKey.map((group, groupIndex) => {
|
|
158
|
+
return {
|
|
159
|
+
title: this.groupKeyDisplay ? `By ${this.groupKeyDisplay}` : "",
|
|
160
|
+
scorecards: group.map((row, rowIndex) => {
|
|
161
|
+
const values = this.getScorecardValues(row);
|
|
162
|
+
const comparisonRow = earliestGroupedByKey[groupIndex][rowIndex];
|
|
163
|
+
const prevVal = comparisonRow[this.valueKey]?.raw;
|
|
164
|
+
return this.scoreCardBuilder.createScorecardData({
|
|
165
|
+
...values,
|
|
166
|
+
prevVal
|
|
167
|
+
});
|
|
168
|
+
})
|
|
169
|
+
};
|
|
170
|
+
});
|
|
171
|
+
return scorecardGroup;
|
|
172
|
+
};
|
|
173
|
+
getScorecardValues = (row) => {
|
|
174
|
+
const { latestTs, earliestTs } = this.dataset;
|
|
175
|
+
const title = `${this.titleColumn?.display} ${row[this.titleKey].raw}`;
|
|
176
|
+
const rowCol = row[this.valueKey];
|
|
177
|
+
const { raw, rag: ragScore } = rowCol;
|
|
178
|
+
const value = Number(raw);
|
|
179
|
+
const rag = ragScore !== void 0 ? Number(ragScore) : void 0;
|
|
180
|
+
this.initBuckets([row], this.valueKey);
|
|
181
|
+
const valueFor = `${latestTs}`;
|
|
182
|
+
const valueFrom = `${earliestTs}`;
|
|
183
|
+
return {
|
|
184
|
+
id: this.id,
|
|
185
|
+
title,
|
|
186
|
+
value,
|
|
187
|
+
rag: this.scoreCardBuilder.setRagScore(value, rag, this.buckets, this.bucketsHelper),
|
|
188
|
+
valueFor,
|
|
189
|
+
valueFrom
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
createGroupTitle = (row) => {
|
|
193
|
+
const title = this.groupKeyId ? `${row[this.groupKeyId]?.raw}` : "";
|
|
194
|
+
return this.groupKeyDisplay && this.groupKeyDisplay.length ? `${this.groupKeyDisplay}: ${title}` : title;
|
|
195
|
+
};
|
|
196
|
+
build = () => {
|
|
197
|
+
let scorecardGroup;
|
|
198
|
+
if (!this.valueColumn) {
|
|
199
|
+
scorecardGroup = this.createScorecardGroupFromColumns();
|
|
200
|
+
} else if (this.groupKey) {
|
|
201
|
+
scorecardGroup = this.createScorecardGroupFromListWithGroups();
|
|
202
|
+
} else {
|
|
203
|
+
scorecardGroup = this.createScorecardGroupFromList();
|
|
204
|
+
}
|
|
205
|
+
return scorecardGroup;
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
var ScorecardGroup_default = ScorecardGroupVisualisation;
|
|
209
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
210
|
+
0 && (module.exports = {
|
|
211
|
+
ScorecardGroupVisualisation
|
|
212
|
+
});
|
|
2
213
|
//# sourceMappingURL=ScorecardGroup.js.map
|