@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.17.0 → 4.17.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/components/_catalogue/catalogue-list/utils.js +1 -1
- package/dpr/components/_catalogue/catalogue-list/utils.js.map +3 -3
- package/dpr/components/_catalogue/catalogue-list/utils.ts +4 -5
- package/dpr/components/_catalogue/catalogue-search/view.njk +1 -0
- package/dpr/components/_charts/chart/Buckets.js +1 -1
- package/dpr/components/_charts/chart/Buckets.js.map +3 -3
- package/dpr/components/_charts/chart/Buckets.ts +44 -36
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js +1 -1
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.js.map +2 -2
- package/dpr/components/_charts/chart/heatmap/HeatmapChart.ts +22 -14
- package/dpr/components/_charts/chart/heatmap/types.js +2 -0
- package/dpr/components/_charts/chart/heatmap/types.js.map +7 -0
- package/dpr/components/_charts/chart/heatmap/types.ts +6 -0
- package/dpr/components/_charts/utils.js +1 -1
- package/dpr/components/_charts/utils.js.map +3 -3
- package/dpr/components/_charts/utils.test.ts +10 -7
- package/dpr/components/_charts/utils.ts +57 -50
- package/dpr/components/_dashboards/dashboard/view.njk +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
- package/dpr/components/_dashboards/dashboard-list/utils.js.map +2 -2
- package/dpr/components/_dashboards/dashboard-list/utils.test.ts +3 -3
- package/dpr/components/_dashboards/dashboard-list/utils.ts +16 -12
- package/dpr/components/_dashboards/dashboard-section/view.njk +1 -1
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js +2 -0
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.js.map +7 -0
- package/dpr/components/_dashboards/dashboard-visualisation/DashboardVisualisation.ts +40 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.js +2 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.js.map +7 -0
- package/dpr/components/_dashboards/dashboard-visualisation/types.ts +102 -0
- package/dpr/components/_dashboards/dashboard-visualisation/view.njk +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js +1 -1
- package/dpr/components/_dashboards/scorecard/Scorecard.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/Scorecard.ts +37 -29
- package/dpr/components/_dashboards/scorecard/types.js.map +1 -1
- package/dpr/components/_dashboards/scorecard/types.ts +1 -0
- package/dpr/components/_dashboards/scorecard/utils.js +1 -1
- package/dpr/components/_dashboards/scorecard/utils.js.map +2 -2
- package/dpr/components/_dashboards/scorecard/utils.test.ts +13 -4
- package/dpr/components/_dashboards/scorecard/utils.ts +6 -5
- package/dpr/components/_dashboards/scorecard/view.njk +6 -5
- package/dpr/components/_dashboards/scorecard-group/view.njk +4 -4
- package/dpr/components/_reports/report-actions/types.d.js.map +1 -1
- package/dpr/components/_reports/report-actions/types.d.ts +1 -1
- package/dpr/components/_reports/report-heading/view.njk +1 -1
- package/dpr/data/dashboardClient.js +1 -1
- package/dpr/data/dashboardClient.js.map +2 -2
- package/dpr/data/dashboardClient.ts +8 -7
- package/dpr/data/reportingClient.js +1 -1
- package/dpr/data/reportingClient.js.map +1 -1
- package/dpr/data/reportingClient.ts +1 -1
- package/dpr/middleware/reportAuthoriser.js +1 -1
- package/dpr/middleware/reportAuthoriser.js.map +3 -3
- package/dpr/middleware/reportAuthoriser.ts +9 -20
- package/dpr/routes/journeys/download-report/controller.js +1 -1
- package/dpr/routes/journeys/download-report/controller.js.map +3 -3
- package/dpr/routes/journeys/download-report/controller.ts +4 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/submitted/tests.cy.ts +1 -0
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/request-download/form/tests.cy.ts +1 -0
- package/dpr/routes/journeys/download-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/download-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/download-report/tests.cy.ts +2 -8
- package/dpr/routes/journeys/download-report/utils.js +1 -1
- package/dpr/routes/journeys/download-report/utils.js.map +3 -3
- package/dpr/routes/journeys/download-report/utils.ts +10 -7
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/bookmarks/list/tests.cy.ts +1 -0
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/tests.cy.ts +5 -14
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js +1 -1
- package/dpr/routes/journeys/my-reports/bookmarks/utils.js.map +3 -3
- package/dpr/routes/journeys/my-reports/bookmarks/utils.ts +11 -5
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/my-reports/recently-viewed/list/tests.cy.ts +4 -7
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js +1 -1
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/my-reports/requested-reports/list/tests.cy.ts +1 -0
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/form/tests.cy.ts +1 -0
- package/dpr/routes/journeys/request-missing-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-missing-report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-missing-report/tests.cy.ts +3 -5
- package/dpr/routes/journeys/request-report/filters/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/filters/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/request-report/filters/tests.cy.ts +3 -6
- package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
- package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
- package/dpr/routes/journeys/request-report/filters/utils.ts +2 -3
- package/dpr/routes/journeys/request-report/status/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/status/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/request-report/status/tests.cy.ts +2 -7
- package/dpr/routes/journeys/request-report/tests.cy.js +1 -1
- package/dpr/routes/journeys/request-report/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/request-report/tests.cy.ts +5 -21
- package/dpr/routes/journeys/view-report/async/controller.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/controller.ts +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/dashboard/tests.cy.ts +2 -10
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +100 -95
- package/dpr/routes/journeys/view-report/async/report/controller.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/controller.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/controller.ts +4 -6
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
- package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +8 -19
- package/dpr/routes/journeys/view-report/async/report/types.js +2 -0
- package/dpr/routes/journeys/view-report/async/report/types.js.map +7 -0
- package/dpr/routes/journeys/view-report/async/report/types.ts +31 -0
- package/dpr/routes/journeys/view-report/async/report/utils.js +1 -1
- package/dpr/routes/journeys/view-report/async/report/utils.js.map +3 -3
- package/dpr/routes/journeys/view-report/async/report/utils.ts +173 -136
- package/dpr/routes/journeys/view-report/sync/tests.cy.js +1 -1
- package/dpr/routes/journeys/view-report/sync/tests.cy.js.map +3 -3
- package/dpr/routes/journeys/view-report/sync/tests.cy.ts +3 -5
- package/dpr/services/dashboardService.js +1 -1
- package/dpr/services/dashboardService.js.map +2 -2
- package/dpr/services/dashboardService.ts +7 -5
- package/dpr/services/productCollection/productCollectionService.js +1 -1
- package/dpr/services/productCollection/productCollectionService.js.map +2 -2
- package/dpr/services/productCollection/productCollectionService.ts +3 -3
- package/dpr/services/reportingService.js +1 -1
- package/dpr/services/reportingService.js.map +1 -1
- package/dpr/services/reportingService.ts +1 -1
- package/dpr/types/AsyncReportUtils.js.map +1 -1
- package/dpr/types/AsyncReportUtils.ts +3 -4
- package/dpr/types/Charts.js +1 -1
- package/dpr/types/Charts.js.map +3 -3
- package/dpr/types/Charts.ts +0 -82
- package/dpr/types/Metrics.js +1 -1
- package/dpr/types/Metrics.js.map +1 -1
- package/dpr/types/Metrics.ts +7 -0
- package/dpr/types/ReportQuery.js +1 -1
- package/dpr/types/ReportQuery.js.map +3 -3
- package/dpr/types/ReportQuery.ts +24 -15
- package/dpr/types/Services.d.js +1 -1
- package/dpr/types/Services.d.js.map +1 -1
- package/dpr/types/Services.d.ts +2 -0
- package/dpr/types/api.d.js.map +1 -1
- package/dpr/types/api.d.ts +14 -16
- package/dpr/utils/Personalisation/personalisationUtils.js +1 -1
- package/dpr/utils/Personalisation/personalisationUtils.js.map +3 -3
- package/dpr/utils/Personalisation/personalisationUtils.ts +15 -6
- package/dpr/utils/UserStoreItemBuilder.js +1 -1
- package/dpr/utils/UserStoreItemBuilder.js.map +1 -1
- package/dpr/utils/UserStoreItemBuilder.ts +2 -2
- package/dpr/utils/datasetHelper.js +1 -1
- package/dpr/utils/datasetHelper.js.map +3 -3
- package/dpr/utils/datasetHelper.test.ts +11 -11
- package/dpr/utils/datasetHelper.ts +23 -8
- package/dpr/utils/logger.js +1 -1
- package/dpr/utils/logger.js.map +3 -3
- package/dpr/utils/logger.ts +6 -1
- package/package.json +2 -1
- package/dpr/components/_charts/chart/DashboardVisualisation.js +0 -2
- package/dpr/components/_charts/chart/DashboardVisualisation.js.map +0 -7
- package/dpr/components/_charts/chart/DashboardVisualisation.ts +0 -43
- package/dpr/components/_dashboards/dashboard/types.js +0 -2
- package/dpr/components/_dashboards/dashboard/types.js.map +0 -7
- package/dpr/components/_dashboards/dashboard/types.ts +0 -120
|
@@ -24,13 +24,17 @@ export const saveDefaults = async (type: FiltersType, res: Response, req: Reques
|
|
|
24
24
|
const defaultValuesForReport = await getDefaultValues(req, res, services, type)
|
|
25
25
|
const { dprUser } = localsHelper.getValues(res)
|
|
26
26
|
const { reportId, id } = req.params
|
|
27
|
-
|
|
27
|
+
const { defaultFilterValuesService } = services
|
|
28
|
+
return defaultFilterValuesService
|
|
29
|
+
? defaultFilterValuesService.save(dprUser.id, reportId, id, defaultValuesForReport)
|
|
30
|
+
: undefined
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
export const removeDefaults = async (type: FiltersType, res: Response, req: Request, services: Services) => {
|
|
31
34
|
const { dprUser } = localsHelper.getValues(res)
|
|
32
35
|
const { reportId, id } = req.params
|
|
33
|
-
|
|
36
|
+
const { defaultFilterValuesService } = services
|
|
37
|
+
return defaultFilterValuesService ? defaultFilterValuesService.delete(dprUser.id, reportId, id, type) : undefined
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
const getDefaultValues = async (
|
|
@@ -42,10 +46,15 @@ const getDefaultValues = async (
|
|
|
42
46
|
const { token, definitionsPath } = localsHelper.getValues(res)
|
|
43
47
|
const { reportId, id, type } = req.params
|
|
44
48
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
let definition: components['schemas']['SingleVariantReportDefinition'] | components['schemas']['DashboardDefinition']
|
|
50
|
+
let fields = []
|
|
51
|
+
if (type === ReportType.REPORT) {
|
|
52
|
+
definition = await services.reportingService.getDefinition(token, reportId, id, definitionsPath)
|
|
53
|
+
fields = definition.variant.specification?.fields || []
|
|
54
|
+
} else {
|
|
55
|
+
definition = await services.dashboardService.getDefinition(token, reportId, id, definitionsPath)
|
|
56
|
+
fields = definition.filterFields || []
|
|
57
|
+
}
|
|
49
58
|
|
|
50
59
|
const bodyFilterValues = Object.keys(req.body)
|
|
51
60
|
.filter((k) => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var I=Object.create;var u=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var
|
|
1
|
+
var I=Object.create;var u=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var f=(r,t)=>{for(var e in t)u(r,e,{get:t[e],enumerable:!0})},d=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of y(t))!R.call(r,s)&&s!==e&&u(r,s,{get:()=>t[s],enumerable:!(i=g(t,s))||i.enumerable});return r};var q=(r,t,e)=>(e=r!=null?I(D(r)):{},d(t||!r||!r.__esModule?u(e,"default",{value:r,enumerable:!0}):e,r)),U=r=>d(u({},"__esModule",{value:!0}),r);var T={};f(T,{UserStoreItemBuilder:()=>h,default:()=>E});module.exports=U(T);var p=q(require("parseurl")),o=require("../types/UserReports");class h{constructor(t,e){this.build=()=>this.userStoreItem;this.addReportData=({type:t,reportId:e,reportName:i,description:s,id:m,name:n})=>({type:t,reportId:e,reportName:i,description:s,id:m,name:n,timestamp:{}});this.addExecutionData=t=>(this.userStoreItem={...this.userStoreItem,...t},this);this.addChildExecutionData=t=>(this.userStoreItem={...this.userStoreItem,childExecutionData:t},this);this.addFilters=t=>{const e=new URLSearchParams(t).toString();return this.userStoreItem={...this.userStoreItem,filters:{data:t,queryString:e}},this};this.addSortData=t=>{const e=new URLSearchParams(t).toString();return this.userStoreItem={...this.userStoreItem,sortBy:{data:t,queryString:e}},this};this.addRequestUrls=t=>{const{origin:e,pathname:i,search:s,href:m}=this.requestFormData,{executionId:n,dataProductDefinitionsPath:S,dpdPathFromQuery:l}=this.userStoreItem;let a=t.baseUrl.replace("/filters",`/${n}/status`);l&&(a=`${a}?dataProductDefinitionsPath=${S}`);const c=`${e}${a}`;return this.userStoreItem={...this.userStoreItem,url:{origin:e,request:{fullUrl:m,pathname:i,search:s},polling:{fullUrl:c,pathname:a}}},this};this.addAsyncUrls=t=>(this.userStoreItem={...this.userStoreItem,url:t},this);this.addReportUrls=t=>{const e=t.get("host"),i=`${t.protocol}://${t.get("host")}${t.originalUrl}`,s=(0,p.default)(t);return this.userStoreItem={...this.userStoreItem,url:{origin:e||this.userStoreItem.url?.origin||"",...this.userStoreItem.url?.request&&{request:this.userStoreItem.url.request},...this.userStoreItem.url?.polling&&{polling:this.userStoreItem.url.polling},report:{...this.userStoreItem.url?.report&&this.userStoreItem.url.report,fullUrl:i,...s&&s.search&&{search:s.search}}}},this};this.addLoadType=t=>(this.userStoreItem={...this.userStoreItem,loadType:t},this);this.addQuery=t=>(this.userStoreItem={...this.userStoreItem,...t&&{query:{data:t.query,summary:t.querySummary}}},this);this.addInteractiveQuery=t=>(t&&(this.userStoreItem={...this.userStoreItem,interactiveQuery:{data:t.query,summary:t.querySummary}}),this);this.addStatus=t=>(this.userStoreItem={...this.userStoreItem,status:t},this);this.addMetrics=t=>(this.userStoreItem={...this.userStoreItem,metrics:t.filter(e=>e.display).map(e=>({name:e.display||""}))},this);this.addTimestamp=()=>{const{status:t}=this.userStoreItem,e=new Date;switch(t){case o.RequestStatus.FAILED:this.userStoreItem.timestamp.failed=e;break;case o.RequestStatus.EXPIRED:this.userStoreItem.timestamp.expired=e;break;case o.RequestStatus.ABORTED:this.userStoreItem.timestamp.aborted=e;break;case o.RequestStatus.FINISHED:this.userStoreItem.timestamp.completed=e;break;case o.RequestStatus.SUBMITTED:this.userStoreItem.timestamp.requested=e;break;case o.RequestStatus.STARTED:case o.RequestStatus.PICKED:break;default:this.userStoreItem.timestamp.lastViewed=e;break}return this};this.addDefinitionsPath=(t,e)=>(t&&(this.userStoreItem={...this.userStoreItem,dataProductDefinitionsPath:t,dpdPathFromQuery:e}),this);this.requestFormData=e||{},this.userStoreItem=this.addReportData(t)}}var E=h;0&&(module.exports={UserStoreItemBuilder});
|
|
2
2
|
//# sourceMappingURL=UserStoreItemBuilder.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/utils/UserStoreItemBuilder.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Request } from 'express'\nimport parseUrl from 'parseurl'\nimport {\n AsyncReportUrlData,\n LoadType,\n ReportType,\n RequestedReport,\n RequestFormData,\n RequestStatus,\n UserReportData,\n} from '../types/UserReports'\nimport Dict = NodeJS.Dict\nimport { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'\nimport {
|
|
4
|
+
"sourcesContent": ["import type { Request } from 'express'\nimport parseUrl from 'parseurl'\nimport {\n AsyncReportUrlData,\n LoadType,\n ReportType,\n RequestedReport,\n RequestFormData,\n RequestStatus,\n UserReportData,\n} from '../types/UserReports'\nimport Dict = NodeJS.Dict\nimport { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'\nimport { components } from '../types/api'\n\nclass UserStoreItemBuilder {\n userStoreItem: UserReportData\n\n requestFormData: RequestFormData | Record<string, never>\n\n constructor(\n reportData: {\n type: ReportType\n reportId: string\n reportName: string\n description: string\n id: string\n name: string\n },\n requestFormData?: RequestFormData,\n ) {\n this.requestFormData = requestFormData || {}\n this.userStoreItem = this.addReportData(reportData)\n }\n\n build = () => {\n return this.userStoreItem as RequestedReport\n }\n\n addReportData = ({\n type,\n reportId,\n reportName,\n description,\n id,\n name,\n }: {\n type: ReportType\n reportId: string\n reportName: string\n description: string\n id: string\n name: string\n }) => {\n return {\n type: type as ReportType,\n reportId,\n reportName,\n description,\n id,\n name,\n timestamp: {},\n }\n }\n\n addExecutionData = (executionData: ExecutionData) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n ...executionData,\n }\n return this\n }\n\n addChildExecutionData = (childExecutionData: Array<ChildReportExecutionData>) => {\n this.userStoreItem = {\n ...(<UserReportData>this.userStoreItem),\n childExecutionData,\n }\n return this\n }\n\n addFilters = (filterData?: Record<string, string>) => {\n const filtersQueryString = new URLSearchParams(filterData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n filters: {\n data: filterData,\n queryString: filtersQueryString,\n },\n },\n }\n return this\n }\n\n addSortData = (sortData: Record<string, string>) => {\n const sortByQueryString = new URLSearchParams(sortData).toString()\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n sortBy: {\n data: sortData,\n queryString: sortByQueryString,\n },\n },\n }\n return this\n }\n\n addRequestUrls = (req: Request) => {\n const { origin, pathname, search, href } = this.requestFormData\n const { executionId, dataProductDefinitionsPath, dpdPathFromQuery } = this.userStoreItem\n\n // Polling path\n let pollingPath = req.baseUrl.replace('/filters', `/${executionId}/status`)\n if (dpdPathFromQuery) {\n pollingPath = `${pollingPath}?dataProductDefinitionsPath=${dataProductDefinitionsPath}`\n }\n const pollingFullUrl = `${origin}${pollingPath}`\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin,\n request: {\n fullUrl: href,\n pathname,\n search,\n },\n polling: {\n fullUrl: pollingFullUrl,\n pathname: pollingPath,\n },\n },\n },\n }\n\n return this\n }\n\n addAsyncUrls = (url: AsyncReportUrlData) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url,\n },\n }\n\n return this\n }\n\n addReportUrls = (req: Request) => {\n const origin = req.get('host')\n const fullUrl = `${req.protocol}://${req.get('host')}${req.originalUrl}`\n const urlData = parseUrl(req)\n\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n url: {\n origin: origin || this.userStoreItem.url?.origin || '',\n ...(this.userStoreItem.url?.request && { request: this.userStoreItem.url.request }),\n ...(this.userStoreItem.url?.polling && { polling: this.userStoreItem.url.polling }),\n report: {\n ...(this.userStoreItem.url?.report && this.userStoreItem.url.report),\n fullUrl,\n ...(urlData && urlData.search && { search: urlData.search }),\n },\n },\n },\n }\n\n return this\n }\n\n addLoadType = (loadType: LoadType) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n loadType,\n }\n\n return this\n }\n\n addQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...(queryData && {\n query: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n }),\n }\n return this\n }\n\n addInteractiveQuery = (queryData?: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> }) => {\n if (queryData) {\n this.userStoreItem = {\n ...this.userStoreItem,\n ...{\n interactiveQuery: {\n data: queryData.query,\n summary: queryData.querySummary,\n },\n },\n }\n }\n return this\n }\n\n addStatus = (status: RequestStatus) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n status,\n }\n return this\n }\n\n addMetrics = (metrics: components['schemas']['DashboardSectionDefinition'][]) => {\n this.userStoreItem = {\n ...this.userStoreItem,\n metrics: metrics.filter((metric) => metric.display).map((metric) => ({ name: metric.display || '' })),\n }\n return this\n }\n\n addTimestamp = () => {\n const { status } = this.userStoreItem\n const ts = new Date()\n switch (status) {\n case RequestStatus.FAILED:\n this.userStoreItem.timestamp.failed = ts\n break\n case RequestStatus.EXPIRED:\n this.userStoreItem.timestamp.expired = ts\n break\n case RequestStatus.ABORTED:\n this.userStoreItem.timestamp.aborted = ts\n break\n case RequestStatus.FINISHED:\n this.userStoreItem.timestamp.completed = ts\n break\n case RequestStatus.SUBMITTED:\n this.userStoreItem.timestamp.requested = ts\n break\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n break\n default:\n this.userStoreItem.timestamp.lastViewed = ts\n break\n }\n return this\n }\n\n addDefinitionsPath = (definitionsPath: string, dpdPathFromQuery: boolean) => {\n if (definitionsPath) {\n this.userStoreItem = {\n ...this.userStoreItem,\n dataProductDefinitionsPath: definitionsPath,\n dpdPathFromQuery,\n }\n }\n return this\n }\n}\n\nexport { UserStoreItemBuilder }\nexport default UserStoreItemBuilder\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["UserStoreItemBuilder_exports", "__export", "UserStoreItemBuilder", "UserStoreItemBuilder_default", "__toCommonJS", "import_parseurl", "import_UserReports", "reportData", "requestFormData", "type", "reportId", "reportName", "description", "id", "name", "executionData", "childExecutionData", "filterData", "filtersQueryString", "sortData", "sortByQueryString", "req", "origin", "pathname", "search", "href", "executionId", "dataProductDefinitionsPath", "dpdPathFromQuery", "pollingPath", "pollingFullUrl", "url", "fullUrl", "urlData", "parseUrl", "loadType", "queryData", "status", "metrics", "metric", "ts", "definitionsPath"]
|
|
7
7
|
}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from '../types/UserReports'
|
|
12
12
|
import Dict = NodeJS.Dict
|
|
13
13
|
import { ChildReportExecutionData, ExecutionData } from '../types/ExecutionData'
|
|
14
|
-
import {
|
|
14
|
+
import { components } from '../types/api'
|
|
15
15
|
|
|
16
16
|
class UserStoreItemBuilder {
|
|
17
17
|
userStoreItem: UserReportData
|
|
@@ -218,7 +218,7 @@ class UserStoreItemBuilder {
|
|
|
218
218
|
return this
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
addMetrics = (metrics:
|
|
221
|
+
addMetrics = (metrics: components['schemas']['DashboardSectionDefinition'][]) => {
|
|
222
222
|
this.userStoreItem = {
|
|
223
223
|
...this.userStoreItem,
|
|
224
224
|
metrics: metrics.filter((metric) => metric.display).map((metric) => ({ name: metric.display || '' })),
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var h=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var q=(e,s)=>{for(var n in s)h(e,n,{get:s[n],enumerable:!0})},T=(e,s,n,
|
|
1
|
+
var h=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var q=(e,s)=>{for(var n in s)h(e,n,{get:s[n],enumerable:!0})},T=(e,s,n,o)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of E(s))!O.call(e,t)&&t!==n&&h(e,t,{get:()=>s[t],enumerable:!(o=k(s,t))||o.enumerable});return e};var j=e=>T(h({},"__esModule",{value:!0}),e);var B={};q(B,{default:()=>A,filterKeys:()=>R,filterRowsByDisplayColumns:()=>K,getDatasetRows:()=>w,getEarliestDataset:()=>x,getGroupKey:()=>I,getKeyIds:()=>b,getKeyVariations:()=>y,getLastestDataset:()=>v,groupRowsByKey:()=>V,groupRowsByTimestamp:()=>C});module.exports=j(B);const w=(e,s)=>{const{measures:n,filters:o,expectNulls:t}=e.columns,a=e.columns.keys,r=n.map(p=>p.id),i=a?.map(p=>p.id)||[],l=o?.map(p=>p.id)||[],u=a?.some(p=>p.optional);s.length&&s[0].ts&&i.unshift("ts");const d=s.filter(p=>{const g=[];return Object.keys(p).forEach(f=>{const c=p[f].raw;let m=!0;l.includes(f)?m=(o?o.filter(D=>D.id===f).map(D=>D.equals):[]).includes(c):i.includes(f)&&u?m=!0:i.includes(f)&&!u||r.includes(f)?m=c!==""&&c!==void 0&&c!==null:t&&(m=c===""||c===void 0||c===null),g.push(m)}),g.every(f=>f)});return u?R(d,a||[]):d},y=(e,s)=>{const n=[],o=s.map(r=>r.id),t=s.every(r=>r.optional),a=[...o];return o.reverse().forEach(r=>{const i=s.find(l=>l.id===r);n.push([...a]),i&&i.optional&&a.pop()}),t&&n.push([]),n},b=(e,s)=>{let n=[];return s.every(o=>{const t=[];return e.forEach(a=>{const r=[];Object.keys(a).forEach(i=>{const l=a[i].raw;let u=!0;o.includes(i)&&(u=l!==""&&l!==void 0&&l!==null),r.push(u)}),r.every(i=>i)&&t.push(a)}),t.length>0?(n=o,!1):(n=o,!0)}),n},R=(e,s)=>{const n=y(e,s),o=b(e,n);return e.filter(t=>{const a=[];return Object.keys(t).forEach(r=>{const i=t[r].raw;let l=!0;o.includes(r)&&(l=i!==""&&i!==void 0&&i!==null),a.push(l)}),a.every(r=>r)})},v=e=>{const s=e[e.length-1]?.ts?.raw;return s?e.filter(n=>n.ts.raw===s):e},x=e=>{const s=e[0]?.ts?.raw;return s?e.filter(n=>n.ts.raw===s):e},C=e=>[...new Set(e.map(n=>n.ts.raw))].map(n=>e.filter(o=>o.ts.raw===n)),V=(e,s)=>[...new Set(e.map(o=>o[s].raw))].map(o=>e.filter(t=>t[s].raw===o)),I=(e,s)=>{if(!e||!e.length||!s.length)return;const n=s[0];let o=e.length-1,t=!1;for(;!t;){const a=`${e[o]?.id}`;a&&o!==-1&&(!n[a]||!n[a].raw||n[a].raw===""||n[a].raw===null)?o-=1:t=!0}return o!==-1?e[o]:void 0},K=(e,s,n=!1)=>{const{keys:o,measures:t}=e.columns,a=o||[];let r=[...t];n&&(r=[...a,...t]);const i=r.map(l=>l.id);return s.map(l=>Object.keys(l).filter(u=>i.includes(u)).reduce((u,d)=>(u[d]=l[d],u),{}))};var A={getDatasetRows:w,getLastestDataset:v,getEarliestDataset:x,filterRowsByDisplayColumns:K,groupRowsByTimestamp:C,groupRowsByKey:V,getGroupKey:I,getKeyVariations:y,getKeyIds:b,filterKeys:R};0&&(module.exports={filterKeys,filterRowsByDisplayColumns,getDatasetRows,getEarliestDataset,getGroupKey,getKeyIds,getKeyVariations,getLastestDataset,groupRowsByKey,groupRowsByTimestamp});
|
|
2
2
|
//# sourceMappingURL=datasetHelper.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/utils/datasetHelper.ts"],
|
|
4
|
-
"sourcesContent": ["import { DashboardDataResponse } from '../types/Metrics'\nimport {
|
|
5
|
-
"mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,eAAAC,EAAA,+BAAAC,EAAA,mBAAAC,EAAA,uBAAAC,EAAA,gBAAAC,EAAA,cAAAC,EAAA,qBAAAC,EAAA,sBAAAC,EAAA,mBAAAC,EAAA,yBAAAC,IAAA,eAAAC,EAAAb,GAGO,MAAMK,EAAiB,
|
|
6
|
-
"names": ["datasetHelper_exports", "__export", "datasetHelper_default", "filterKeys", "filterRowsByDisplayColumns", "getDatasetRows", "getEarliestDataset", "getGroupKey", "getKeyIds", "getKeyVariations", "getLastestDataset", "groupRowsByKey", "groupRowsByTimestamp", "__toCommonJS", "listDefinition", "dashboardData", "
|
|
4
|
+
"sourcesContent": ["import { DashboardDataResponse } from '../types/Metrics'\nimport { components } from '../types/api'\n\nexport const getDatasetRows = (\n listDefinition: components['schemas']['DashboardVisualisationDefinition'],\n dashboardData: DashboardDataResponse[],\n) => {\n const { measures, filters, expectNulls } = listDefinition.columns\n const keys = <Array<components['schemas']['DashboardVisualisationColumnDefinition'] & { optional: boolean }>>(\n listDefinition.columns.keys\n )\n\n const displayColumnsIds = measures.map((col) => col.id)\n const keyColumnsIds = keys?.map((col) => col.id) || []\n const filterColIds = filters?.map((col) => col.id) || []\n const hasOptionalKeys = keys?.some((key) => key.optional)\n\n if (dashboardData.length && dashboardData[0].ts) keyColumnsIds.unshift('ts')\n\n const filtered = dashboardData.filter((datasetRow: DashboardDataResponse) => {\n const validRow: boolean[] = []\n\n Object.keys(datasetRow).forEach((datasetField) => {\n const value = datasetRow[datasetField].raw\n // All rows are valid until proven otherwise\n let valid = true\n\n // 1. check if the column value is equal to a defined column value\n if (filterColIds.includes(datasetField)) {\n const filterValues = filters ? filters.filter((f) => f.id === datasetField).map((f) => f.equals) : []\n valid = filterValues.includes(<string>value)\n\n // 3. check keys exist in the defined columns\n } else if (keyColumnsIds.includes(datasetField) && hasOptionalKeys) {\n valid = true\n\n // 3. check keys exist in the defined columns\n } else if (keyColumnsIds.includes(datasetField) && !hasOptionalKeys) {\n valid = value !== '' && value !== undefined && value !== null\n\n // 2. check values exist in the defined columns\n } else if (displayColumnsIds.includes(datasetField)) {\n valid = value !== '' && value !== undefined && value !== null\n\n // 3. check that all remaining columns are null.\n } else if (expectNulls) {\n valid = value === '' || value === undefined || value === null\n }\n\n validRow.push(valid)\n })\n\n return validRow.every((val) => val)\n })\n\n if (hasOptionalKeys) {\n return filterKeys(filtered, keys || [])\n }\n\n return filtered\n}\n\nexport const getKeyVariations = (\n dashboardData: DashboardDataResponse[],\n keys: Array<components['schemas']['DashboardVisualisationColumnDefinition'] & { optional: boolean }>,\n) => {\n const colIdVariations: string[][] = []\n const keyColumnsIds = keys.map((col) => col.id)\n const allOptional = keys.every((key) => key.optional)\n const colIdCopy = [...keyColumnsIds]\n\n keyColumnsIds.reverse().forEach((id) => {\n const key = keys.find((k) => k.id === id)\n colIdVariations.push([...colIdCopy])\n if (key && key.optional) {\n colIdCopy.pop()\n }\n })\n\n if (allOptional) colIdVariations.push([])\n return colIdVariations\n}\n\nexport const getKeyIds = (dashboardData: DashboardDataResponse[], colIdVariations: string[][]) => {\n let validHeadIds: string[] = []\n colIdVariations.every((ids: string[]) => {\n const validRows = []\n\n dashboardData.forEach((datasetRow: DashboardDataResponse) => {\n const validRow: boolean[] = []\n\n Object.keys(datasetRow).forEach((datasetField) => {\n const value = datasetRow[datasetField].raw\n let valid = true\n if (ids.includes(datasetField)) {\n valid = value !== '' && value !== undefined && value !== null\n }\n validRow.push(valid)\n })\n\n if (validRow.every((val) => val)) {\n validRows.push(datasetRow)\n }\n })\n\n if (validRows.length > 0) {\n validHeadIds = ids\n return false\n }\n validHeadIds = ids\n return true\n })\n\n return validHeadIds\n}\n\nexport const filterKeys = (\n dashboardData: DashboardDataResponse[],\n keys: Array<components['schemas']['DashboardVisualisationColumnDefinition'] & { optional: boolean }>,\n) => {\n const colIdVariations = getKeyVariations(dashboardData, keys)\n const validHeadIds = getKeyIds(dashboardData, colIdVariations)\n\n return dashboardData.filter((datasetRow: DashboardDataResponse) => {\n const validRow: boolean[] = []\n Object.keys(datasetRow).forEach((datasetField) => {\n const value = datasetRow[datasetField].raw\n let valid = true\n if (validHeadIds.includes(datasetField)) {\n valid = value !== '' && value !== undefined && value !== null\n }\n validRow.push(valid)\n })\n\n return validRow.every((val) => val)\n })\n}\n\nexport const getLastestDataset = (dashboardData: DashboardDataResponse[]): DashboardDataResponse[] => {\n const latestTimestamp = dashboardData[dashboardData.length - 1]?.ts?.raw\n if (latestTimestamp) {\n return dashboardData.filter((data) => data.ts.raw === latestTimestamp)\n }\n return dashboardData\n}\n\nexport const getEarliestDataset = (dashboardData: DashboardDataResponse[]): DashboardDataResponse[] => {\n const latestTimestamp = dashboardData[0]?.ts?.raw\n if (latestTimestamp) {\n return dashboardData.filter((data) => data.ts.raw === latestTimestamp)\n }\n return dashboardData\n}\n\nexport const groupRowsByTimestamp = (dashboardData: DashboardDataResponse[]): DashboardDataResponse[][] => {\n const uniqueTimestamps = [...new Set(dashboardData.map((item) => item.ts.raw))]\n return uniqueTimestamps.map((ts) => {\n return dashboardData.filter((d) => d.ts.raw === ts)\n })\n}\n\nexport const groupRowsByKey = (dashboardData: DashboardDataResponse[], key: string): DashboardDataResponse[][] => {\n const uniqueKeyValues = [...new Set(dashboardData.map((item) => item[key].raw))]\n return uniqueKeyValues.map((keyValue) => {\n return dashboardData.filter((d) => d[key].raw === keyValue)\n })\n}\n\nexport const getGroupKey = (\n keys: Array<components['schemas']['DashboardVisualisationColumnDefinition']>,\n rawData: DashboardDataResponse[],\n) => {\n if (!keys || !keys.length || !rawData.length) {\n return undefined\n }\n\n const data = rawData[0]\n let index = keys.length - 1\n let keyFound = false\n while (!keyFound) {\n const k = `${keys[index]?.id}`\n if (k && index !== -1 && (!data[k] || !data[k].raw || data[k].raw === '' || data[k].raw === null)) {\n index -= 1\n } else {\n keyFound = true\n }\n }\n\n return index !== -1 ? keys[index] : undefined\n}\n\nexport const filterRowsByDisplayColumns = (\n listDefinition: components['schemas']['DashboardVisualisationDefinition'],\n dashboardData: DashboardDataResponse[],\n includeKeys = false,\n) => {\n const { keys: keyCols, measures } = listDefinition.columns\n const keys = keyCols || []\n let displayColumns = [...measures]\n if (includeKeys) {\n displayColumns = [...keys, ...measures]\n }\n const displayColumnsIds = displayColumns.map((col) => col.id)\n\n return dashboardData.map((datasetRow: DashboardDataResponse) => {\n return Object.keys(datasetRow)\n .filter((key) => displayColumnsIds.includes(key))\n .reduce((acc, key) => {\n acc[key] = datasetRow[key]\n return acc\n }, {} as unknown as DashboardDataResponse)\n })\n}\n\nexport default {\n getDatasetRows,\n getLastestDataset,\n getEarliestDataset,\n filterRowsByDisplayColumns,\n groupRowsByTimestamp,\n groupRowsByKey,\n getGroupKey,\n getKeyVariations,\n getKeyIds,\n filterKeys,\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["datasetHelper_exports", "__export", "datasetHelper_default", "filterKeys", "filterRowsByDisplayColumns", "getDatasetRows", "getEarliestDataset", "getGroupKey", "getKeyIds", "getKeyVariations", "getLastestDataset", "groupRowsByKey", "groupRowsByTimestamp", "__toCommonJS", "listDefinition", "dashboardData", "measures", "filters", "expectNulls", "keys", "displayColumnsIds", "col", "keyColumnsIds", "filterColIds", "hasOptionalKeys", "key", "filtered", "datasetRow", "validRow", "datasetField", "value", "valid", "f", "val", "colIdVariations", "allOptional", "colIdCopy", "id", "k", "validHeadIds", "ids", "validRows", "latestTimestamp", "data", "item", "ts", "d", "keyValue", "rawData", "index", "keyFound", "includeKeys", "keyCols", "displayColumns", "acc"]
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { components } from '../types/api'
|
|
2
2
|
import { DashboardDataResponse } from '../types/Metrics'
|
|
3
3
|
import DatasetHelper from './datasetHelper'
|
|
4
4
|
|
|
@@ -57,7 +57,7 @@ describe('DatasetHelper', () => {
|
|
|
57
57
|
},
|
|
58
58
|
],
|
|
59
59
|
},
|
|
60
|
-
} as unknown as
|
|
60
|
+
} as unknown as components['schemas']['DashboardVisualisationDefinition']
|
|
61
61
|
|
|
62
62
|
const result = DatasetHelper.getDatasetRows(definition, dataset)
|
|
63
63
|
expect(result).toEqual(expectedResult)
|
|
@@ -121,7 +121,7 @@ describe('DatasetHelper', () => {
|
|
|
121
121
|
},
|
|
122
122
|
],
|
|
123
123
|
},
|
|
124
|
-
} as unknown as
|
|
124
|
+
} as unknown as components['schemas']['DashboardVisualisationDefinition']
|
|
125
125
|
|
|
126
126
|
const result = DatasetHelper.getDatasetRows(definition, dataset)
|
|
127
127
|
expect(result).toEqual(expectedResult)
|
|
@@ -165,7 +165,7 @@ describe('DatasetHelper', () => {
|
|
|
165
165
|
],
|
|
166
166
|
expectNulls: true,
|
|
167
167
|
},
|
|
168
|
-
} as unknown as
|
|
168
|
+
} as unknown as components['schemas']['DashboardVisualisationDefinition']
|
|
169
169
|
|
|
170
170
|
const result = DatasetHelper.getDatasetRows(definition, dataset)
|
|
171
171
|
expect(result).toEqual(expectedResult)
|
|
@@ -274,7 +274,7 @@ describe('DatasetHelper', () => {
|
|
|
274
274
|
},
|
|
275
275
|
],
|
|
276
276
|
},
|
|
277
|
-
} as unknown as
|
|
277
|
+
} as unknown as components['schemas']['DashboardVisualisationDefinition']
|
|
278
278
|
|
|
279
279
|
const result = DatasetHelper.getDatasetRows(definition, dataset)
|
|
280
280
|
expect(result).toEqual(expectedResult)
|
|
@@ -396,7 +396,7 @@ describe('DatasetHelper', () => {
|
|
|
396
396
|
},
|
|
397
397
|
],
|
|
398
398
|
},
|
|
399
|
-
} as unknown as
|
|
399
|
+
} as unknown as components['schemas']['DashboardVisualisationDefinition']
|
|
400
400
|
|
|
401
401
|
const result = DatasetHelper.getDatasetRows(definition, dataset)
|
|
402
402
|
expect(result).toEqual(expectedResult)
|
|
@@ -475,7 +475,7 @@ describe('DatasetHelper', () => {
|
|
|
475
475
|
},
|
|
476
476
|
],
|
|
477
477
|
},
|
|
478
|
-
} as unknown as
|
|
478
|
+
} as unknown as components['schemas']['DashboardVisualisationDefinition']
|
|
479
479
|
|
|
480
480
|
const data = [
|
|
481
481
|
{
|
|
@@ -501,7 +501,7 @@ describe('DatasetHelper', () => {
|
|
|
501
501
|
})
|
|
502
502
|
|
|
503
503
|
describe('getChartGroupKey', () => {
|
|
504
|
-
let keys:
|
|
504
|
+
let keys: components['schemas']['DashboardVisualisationColumnDefinition'][]
|
|
505
505
|
beforeEach(() => {
|
|
506
506
|
keys = [
|
|
507
507
|
{
|
|
@@ -513,7 +513,7 @@ describe('DatasetHelper', () => {
|
|
|
513
513
|
{
|
|
514
514
|
id: 'key3',
|
|
515
515
|
},
|
|
516
|
-
]
|
|
516
|
+
]
|
|
517
517
|
})
|
|
518
518
|
|
|
519
519
|
it('should set the correct key - value is empty string - key3', () => {
|
|
@@ -711,7 +711,7 @@ describe('DatasetHelper', () => {
|
|
|
711
711
|
|
|
712
712
|
describe('getKeyVariations', () => {
|
|
713
713
|
let data: DashboardDataResponse[]
|
|
714
|
-
let keys:
|
|
714
|
+
let keys: components['schemas']['DashboardVisualisationColumnDefinition'][]
|
|
715
715
|
|
|
716
716
|
beforeEach(() => {
|
|
717
717
|
data = [
|
|
@@ -904,7 +904,7 @@ describe('DatasetHelper', () => {
|
|
|
904
904
|
|
|
905
905
|
describe('filterKeys', () => {
|
|
906
906
|
let data: DashboardDataResponse[]
|
|
907
|
-
let keys:
|
|
907
|
+
let keys: components['schemas']['DashboardVisualisationColumnDefinition'][]
|
|
908
908
|
|
|
909
909
|
it('should filter the data by the keys 1', () => {
|
|
910
910
|
data = [
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { DashboardDataResponse } from '../types/Metrics'
|
|
2
|
-
import {
|
|
2
|
+
import { components } from '../types/api'
|
|
3
3
|
|
|
4
|
-
export const getDatasetRows = (
|
|
5
|
-
|
|
4
|
+
export const getDatasetRows = (
|
|
5
|
+
listDefinition: components['schemas']['DashboardVisualisationDefinition'],
|
|
6
|
+
dashboardData: DashboardDataResponse[],
|
|
7
|
+
) => {
|
|
8
|
+
const { measures, filters, expectNulls } = listDefinition.columns
|
|
9
|
+
const keys = <Array<components['schemas']['DashboardVisualisationColumnDefinition'] & { optional: boolean }>>(
|
|
10
|
+
listDefinition.columns.keys
|
|
11
|
+
)
|
|
6
12
|
|
|
7
13
|
const displayColumnsIds = measures.map((col) => col.id)
|
|
8
14
|
const keyColumnsIds = keys?.map((col) => col.id) || []
|
|
@@ -22,7 +28,7 @@ export const getDatasetRows = (listDefinition: DashboardVisualisation, dashboard
|
|
|
22
28
|
// 1. check if the column value is equal to a defined column value
|
|
23
29
|
if (filterColIds.includes(datasetField)) {
|
|
24
30
|
const filterValues = filters ? filters.filter((f) => f.id === datasetField).map((f) => f.equals) : []
|
|
25
|
-
valid = filterValues.includes(value)
|
|
31
|
+
valid = filterValues.includes(<string>value)
|
|
26
32
|
|
|
27
33
|
// 3. check keys exist in the defined columns
|
|
28
34
|
} else if (keyColumnsIds.includes(datasetField) && hasOptionalKeys) {
|
|
@@ -54,7 +60,10 @@ export const getDatasetRows = (listDefinition: DashboardVisualisation, dashboard
|
|
|
54
60
|
return filtered
|
|
55
61
|
}
|
|
56
62
|
|
|
57
|
-
export const getKeyVariations = (
|
|
63
|
+
export const getKeyVariations = (
|
|
64
|
+
dashboardData: DashboardDataResponse[],
|
|
65
|
+
keys: Array<components['schemas']['DashboardVisualisationColumnDefinition'] & { optional: boolean }>,
|
|
66
|
+
) => {
|
|
58
67
|
const colIdVariations: string[][] = []
|
|
59
68
|
const keyColumnsIds = keys.map((col) => col.id)
|
|
60
69
|
const allOptional = keys.every((key) => key.optional)
|
|
@@ -105,7 +114,10 @@ export const getKeyIds = (dashboardData: DashboardDataResponse[], colIdVariation
|
|
|
105
114
|
return validHeadIds
|
|
106
115
|
}
|
|
107
116
|
|
|
108
|
-
export const filterKeys = (
|
|
117
|
+
export const filterKeys = (
|
|
118
|
+
dashboardData: DashboardDataResponse[],
|
|
119
|
+
keys: Array<components['schemas']['DashboardVisualisationColumnDefinition'] & { optional: boolean }>,
|
|
120
|
+
) => {
|
|
109
121
|
const colIdVariations = getKeyVariations(dashboardData, keys)
|
|
110
122
|
const validHeadIds = getKeyIds(dashboardData, colIdVariations)
|
|
111
123
|
|
|
@@ -154,7 +166,10 @@ export const groupRowsByKey = (dashboardData: DashboardDataResponse[], key: stri
|
|
|
154
166
|
})
|
|
155
167
|
}
|
|
156
168
|
|
|
157
|
-
export const getGroupKey = (
|
|
169
|
+
export const getGroupKey = (
|
|
170
|
+
keys: Array<components['schemas']['DashboardVisualisationColumnDefinition']>,
|
|
171
|
+
rawData: DashboardDataResponse[],
|
|
172
|
+
) => {
|
|
158
173
|
if (!keys || !keys.length || !rawData.length) {
|
|
159
174
|
return undefined
|
|
160
175
|
}
|
|
@@ -175,7 +190,7 @@ export const getGroupKey = (keys: DashboardVisualisationColumnKey[], rawData: Da
|
|
|
175
190
|
}
|
|
176
191
|
|
|
177
192
|
export const filterRowsByDisplayColumns = (
|
|
178
|
-
listDefinition:
|
|
193
|
+
listDefinition: components['schemas']['DashboardVisualisationDefinition'],
|
|
179
194
|
dashboardData: DashboardDataResponse[],
|
|
180
195
|
includeKeys = false,
|
|
181
196
|
) => {
|
package/dpr/utils/logger.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var p=Object.create;var a=Object.defineProperty;var
|
|
1
|
+
var p=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var f=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var d=(o,e)=>{for(var t in e)a(o,t,{get:e[t],enumerable:!0})},g=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of c(e))!b.call(o,r)&&r!==t&&a(o,r,{get:()=>e[r],enumerable:!(s=u(e,r))||s.enumerable});return o};var l=(o,e,t)=>(t=o!=null?p(f(o)):{},g(e||!o||!o.__esModule?a(t,"default",{value:o,enumerable:!0}):t,o)),L=o=>g(a({},"__esModule",{value:!0}),o);var x={};d(x,{default:()=>v,logger:()=>i});module.exports=L(x);var n=l(require("bunyan")),m=l(require("bunyan-format"));const S=(0,m.default)({outputMode:"short",color:!1}),P=process.env.SUPPRESS_LOGS,i=n.default.createLogger({name:"Digital Prison Reporting:",stream:S,level:P?n.default.FATAL+1:"debug"});var v=i;0&&(module.exports={logger});
|
|
2
2
|
//# sourceMappingURL=logger.js.map
|
package/dpr/utils/logger.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/dpr/utils/logger.ts"],
|
|
4
|
-
"sourcesContent": ["import bunyan from 'bunyan'\nimport bunyanFormat from 'bunyan-format'\n\nconst formatOut = bunyanFormat({ outputMode: 'short', color: false })\n\nexport const logger = bunyan.createLogger({
|
|
5
|
-
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAmB,qBACnBC,EAAyB,4BAEzB,MAAMC,KAAY,EAAAC,SAAa,CAAE,WAAY,QAAS,MAAO,EAAM,CAAC,
|
|
6
|
-
"names": ["logger_exports", "__export", "logger_default", "logger", "__toCommonJS", "import_bunyan", "import_bunyan_format", "formatOut", "bunyanFormat", "bunyan"]
|
|
4
|
+
"sourcesContent": ["import bunyan from 'bunyan'\nimport bunyanFormat from 'bunyan-format'\n\nconst formatOut = bunyanFormat({ outputMode: 'short', color: false })\n\nconst disableLogs = process.env.SUPPRESS_LOGS\nexport const logger = bunyan.createLogger({\n name: 'Digital Prison Reporting:',\n stream: formatOut,\n level: disableLogs ? bunyan.FATAL + 1 : 'debug',\n})\n\nexport default logger\n"],
|
|
5
|
+
"mappings": "6iBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAmB,qBACnBC,EAAyB,4BAEzB,MAAMC,KAAY,EAAAC,SAAa,CAAE,WAAY,QAAS,MAAO,EAAM,CAAC,EAE9DC,EAAc,QAAQ,IAAI,cACnBN,EAAS,EAAAO,QAAO,aAAa,CACxC,KAAM,4BACN,OAAQH,EACR,MAAOE,EAAc,EAAAC,QAAO,MAAQ,EAAI,OAC1C,CAAC,EAED,IAAOR,EAAQC",
|
|
6
|
+
"names": ["logger_exports", "__export", "logger_default", "logger", "__toCommonJS", "import_bunyan", "import_bunyan_format", "formatOut", "bunyanFormat", "disableLogs", "bunyan"]
|
|
7
7
|
}
|
package/dpr/utils/logger.ts
CHANGED
|
@@ -3,6 +3,11 @@ import bunyanFormat from 'bunyan-format'
|
|
|
3
3
|
|
|
4
4
|
const formatOut = bunyanFormat({ outputMode: 'short', color: false })
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
const disableLogs = process.env.SUPPRESS_LOGS
|
|
7
|
+
export const logger = bunyan.createLogger({
|
|
8
|
+
name: 'Digital Prison Reporting:',
|
|
9
|
+
stream: formatOut,
|
|
10
|
+
level: disableLogs ? bunyan.FATAL + 1 : 'debug',
|
|
11
|
+
})
|
|
7
12
|
|
|
8
13
|
export default logger
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ministryofjustice/hmpps-digital-prison-reporting-frontend",
|
|
3
3
|
"description": "The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.",
|
|
4
|
-
"version": "4.17.
|
|
4
|
+
"version": "4.17.2",
|
|
5
5
|
"main": "dpr/all.mjs",
|
|
6
6
|
"sass": "dpr/all.scss",
|
|
7
7
|
"engines": {
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"start-test-app": "npm run package && node $NODE_OPTIONS test-app/start-server.js",
|
|
53
53
|
"start:dev": "USE_MOCK_CLIENTS=true concurrently -k -p \"[{name}]\" -n \"ESBuild,Node\" -c \"yellow.bold,cyan.bold\" \"node esbuild/esbuild.config.js --build --watch\" \"node esbuild/esbuild.config.js --dev-server\"",
|
|
54
54
|
"start:dev:noMockClients": "concurrently -k -p \"[{name}]\" -n \"ESBuild,Node\" -c \"yellow.bold,cyan.bold\" \"node esbuild/esbuild.config.js --build --watch\" \"node esbuild/esbuild.config.js --dev-server\"",
|
|
55
|
+
"start:dev:noMockClients:noLogs": "SUPPRESS_LOGS=true concurrently -k -p \"[{name}]\" -n \"ESBuild,Node\" -c \"yellow.bold,cyan.bold\" \"node esbuild/esbuild.config.js --build --watch\" \"node esbuild/esbuild.config.js --dev-server\"",
|
|
55
56
|
"start:server": "node esbuild/esbuild.config.js --dev-server",
|
|
56
57
|
"security_audit": "npx audit-ci --config audit-ci.json",
|
|
57
58
|
"int-test-cucumber": "cypress run --config-file cypress-tests/integration-tests/cypress.config.js",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var l=(a,s)=>{for(var i in s)o(a,i,{get:s[i],enumerable:!0})},m=(a,s,i,e)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of r(s))!h.call(a,t)&&t!==i&&o(a,t,{get:()=>s[t],enumerable:!(e=u(s,t))||e.enumerable});return a};var p=a=>m(o({},"__esModule",{value:!0}),a);var D={};l(D,{DashboardVisualisationClass:()=>n,default:()=>d});module.exports=p(D);class n{constructor(s,i){this.initUnit=()=>{this.unit=this.columns.measures[0].unit?this.columns.measures[0].unit:void 0};this.definition=i,this.columns=i.columns,this.measures=this.columns.measures,this.keys=this.columns.keys,this.type=this.definition.type.split("-")[0],this.initUnit(),this.responseData=s}}var d=n;0&&(module.exports={DashboardVisualisationClass});
|
|
2
|
-
//# sourceMappingURL=DashboardVisualisation.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/dpr/components/_charts/chart/DashboardVisualisation.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable prefer-destructuring */\nimport { ChartType, UnitType } from '../../../types/Charts'\nimport { DashboardDataResponse } from '../../../types/Metrics'\nimport {\n DashboardVisualisation,\n DashboardVisualisationColumnKey,\n DashboardVisualisationColumnMeasure,\n DashboardVisualisationColumns,\n} from '../../_dashboards/dashboard/types'\n\nclass DashboardVisualisationClass {\n responseData: DashboardDataResponse[]\n\n definition: DashboardVisualisation\n\n columns: DashboardVisualisationColumns\n\n measures: DashboardVisualisationColumnMeasure[]\n\n keys: DashboardVisualisationColumnKey[]\n\n unit: UnitType\n\n type: ChartType\n\n constructor(responseData: DashboardDataResponse[], definition: DashboardVisualisation) {\n this.definition = definition\n this.columns = definition.columns\n this.measures = this.columns.measures\n this.keys = this.columns.keys\n this.type = this.definition.type.split('-')[0] as ChartType\n this.initUnit()\n this.responseData = responseData\n }\n\n initUnit = () => {\n // todo\n this.unit = this.columns.measures[0].unit ? this.columns.measures[0].unit : undefined\n }\n}\n\nexport { DashboardVisualisationClass }\nexport default DashboardVisualisationClass\n"],
|
|
5
|
-
"mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAUA,MAAME,CAA4B,CAehC,YAAYG,EAAuCC,EAAoC,CAUvF,cAAW,IAAM,CAEf,KAAK,KAAO,KAAK,QAAQ,SAAS,CAAC,EAAE,KAAO,KAAK,QAAQ,SAAS,CAAC,EAAE,KAAO,MAC9E,EAZE,KAAK,WAAaA,EAClB,KAAK,QAAUA,EAAW,QAC1B,KAAK,SAAW,KAAK,QAAQ,SAC7B,KAAK,KAAO,KAAK,QAAQ,KACzB,KAAK,KAAO,KAAK,WAAW,KAAK,MAAM,GAAG,EAAE,CAAC,EAC7C,KAAK,SAAS,EACd,KAAK,aAAeD,CACtB,CAMF,CAGA,IAAOF,EAAQD",
|
|
6
|
-
"names": ["DashboardVisualisation_exports", "__export", "DashboardVisualisationClass", "DashboardVisualisation_default", "__toCommonJS", "responseData", "definition"]
|
|
7
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/* eslint-disable prefer-destructuring */
|
|
2
|
-
import { ChartType, UnitType } from '../../../types/Charts'
|
|
3
|
-
import { DashboardDataResponse } from '../../../types/Metrics'
|
|
4
|
-
import {
|
|
5
|
-
DashboardVisualisation,
|
|
6
|
-
DashboardVisualisationColumnKey,
|
|
7
|
-
DashboardVisualisationColumnMeasure,
|
|
8
|
-
DashboardVisualisationColumns,
|
|
9
|
-
} from '../../_dashboards/dashboard/types'
|
|
10
|
-
|
|
11
|
-
class DashboardVisualisationClass {
|
|
12
|
-
responseData: DashboardDataResponse[]
|
|
13
|
-
|
|
14
|
-
definition: DashboardVisualisation
|
|
15
|
-
|
|
16
|
-
columns: DashboardVisualisationColumns
|
|
17
|
-
|
|
18
|
-
measures: DashboardVisualisationColumnMeasure[]
|
|
19
|
-
|
|
20
|
-
keys: DashboardVisualisationColumnKey[]
|
|
21
|
-
|
|
22
|
-
unit: UnitType
|
|
23
|
-
|
|
24
|
-
type: ChartType
|
|
25
|
-
|
|
26
|
-
constructor(responseData: DashboardDataResponse[], definition: DashboardVisualisation) {
|
|
27
|
-
this.definition = definition
|
|
28
|
-
this.columns = definition.columns
|
|
29
|
-
this.measures = this.columns.measures
|
|
30
|
-
this.keys = this.columns.keys
|
|
31
|
-
this.type = this.definition.type.split('-')[0] as ChartType
|
|
32
|
-
this.initUnit()
|
|
33
|
-
this.responseData = responseData
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
initUnit = () => {
|
|
37
|
-
// todo
|
|
38
|
-
this.unit = this.columns.measures[0].unit ? this.columns.measures[0].unit : undefined
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export { DashboardVisualisationClass }
|
|
43
|
-
export default DashboardVisualisationClass
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var e=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var p=(s,a)=>{for(var t in a)e(s,t,{get:a[t],enumerable:!0})},b=(s,a,t,r)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of d(a))!c.call(s,o)&&o!==t&&e(s,o,{get:()=>a[o],enumerable:!(r=u(a,o))||r.enumerable});return s};var m=s=>b(e({},"__esModule",{value:!0}),s);var x={};p(x,{AggregateType:()=>l,DashboardVisualisationType:()=>n});module.exports=m(x);var n=(i=>(i.LIST="list",i.DONUT="doughnut",i.BAR="bar",i.LINE="line",i.MATRIX="matrix",i.MATRIX_TIMESERIES="matrix-timeseries",i.BAR_TIMESERIES="bar-timeseries",i.LINE_TIMESERIES="line-timeseries",i.SCORECARD="scorecard",i.SCORECARD_GROUP="scorecard-group",i))(n||{}),l=(t=>(t.SUM="sum",t.AVG="average",t))(l||{});0&&(module.exports={AggregateType,DashboardVisualisationType});
|
|
2
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/dpr/components/_dashboards/dashboard/types.ts"],
|
|
4
|
-
"sourcesContent": ["import { components } from '../../../types/api'\nimport { ChartCardData, MoJTable, UnitType } from '../../../types/Charts'\nimport { Scorecard, ScorecardGroup } from '../scorecard/types'\n\nexport interface DashboardDefinition {\n id: string\n name: string\n description?: string\n sections: DashboardSection[]\n isMissing?: boolean\n filterFields: components['schemas']['FieldDefinition'][]\n}\n\nexport interface DashboardSection {\n id: string\n display?: string\n description?: string\n visualisations: DashboardVisualisation[]\n}\n\nexport interface DashboardUISection {\n id: string\n title?: string\n description?: string\n visualisations?: DashboardUIVisualisation[]\n}\n\nexport interface DashboardUIVisualisation {\n id: string\n type: DashboardVisualisationType\n title?: string\n description?: string\n data: Scorecard | Scorecard[] | ScorecardGroup[] | ChartCardData | { table: MoJTable; ts: string }\n}\n\nexport interface DashboardVisualisation {\n id: string\n type: DashboardVisualisationType\n display?: string\n description?: string\n columns: DashboardVisualisationColumns\n options: DashboardVisualisationOptions\n}\n\nexport type DashboardVisualisationOptions = ListDashboardVisualisationOptions | BucketDashboardVisualisationOptions\n\nexport interface ListDashboardVisualisationOptions {\n showLatest?: boolean\n columnsAsList?: boolean\n}\n\nexport interface BucketDashboardVisualisationOptions {\n useRagColours?: boolean\n buckets?: DashboardVisualisationBucket[]\n baseColour?: string\n}\n\nexport interface DashboardVisualisationBucket {\n min?: number\n max?: number\n hexColour?: string\n}\n\nexport interface ListVisualisation extends DashboardVisualisation {\n type: DashboardVisualisationType.LIST\n}\n\nexport enum DashboardVisualisationType {\n LIST = 'list',\n DONUT = 'doughnut',\n BAR = 'bar',\n LINE = 'line',\n MATRIX = 'matrix',\n MATRIX_TIMESERIES = 'matrix-timeseries',\n BAR_TIMESERIES = 'bar-timeseries',\n LINE_TIMESERIES = 'line-timeseries',\n SCORECARD = 'scorecard',\n SCORECARD_GROUP = 'scorecard-group',\n}\n\nexport interface DashboardVisualisationColumns {\n keys?: DashboardVisualisationColumnKey[]\n measures: DashboardVisualisationColumnMeasure[]\n filters?: DashboardVisualisationColumnFilter[]\n expectNulls: boolean\n}\n\nexport interface DashboardVisualisationColumn {\n id: string\n display?: string\n}\n\nexport interface DashboardVisualisationColumnKey extends DashboardVisualisationColumn {\n optional?: boolean\n}\n\nexport interface DashboardVisualisationColumnMeasure extends DashboardVisualisationColumn {\n aggregate?: AggregateType\n displayValue?: boolean\n unit?: UnitType\n axis?: 'x' | 'y'\n}\n\nexport interface DashboardVisualisationColumnFilter {\n id: string\n equals: string | number\n}\n\nexport interface BarChartVisualisationColumn extends DashboardVisualisationColumnMeasure {\n axis?: 'x' | 'y'\n}\n\nexport interface ScorecardVisualisationColumn extends DashboardVisualisationColumn {\n displayValue: boolean\n}\n\nexport enum AggregateType {\n SUM = 'sum',\n AVG = 'average',\n}\n"],
|
|
5
|
-
"mappings": "4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,EAAA,+BAAAC,IAAA,eAAAC,EAAAJ,GAmEO,IAAKG,OACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,WACRA,EAAA,IAAM,MACNA,EAAA,KAAO,OACPA,EAAA,OAAS,SACTA,EAAA,kBAAoB,oBACpBA,EAAA,eAAiB,iBACjBA,EAAA,gBAAkB,kBAClBA,EAAA,UAAY,YACZA,EAAA,gBAAkB,kBAVRA,OAAA,IAiDAD,OACVA,EAAA,IAAM,MACNA,EAAA,IAAM,UAFIA,OAAA",
|
|
6
|
-
"names": ["types_exports", "__export", "AggregateType", "DashboardVisualisationType", "__toCommonJS"]
|
|
7
|
-
}
|