UNPKG

@ministryofjustice/hmpps-digital-prison-reporting-frontend

Version:

The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.

95 lines (91 loc) 3.01 kB
import { ChildReportExecutionData } from './ExecutionData.d.js'; import { QuerySummaryItem } from '../components/_async/request-details/types.d.js'; import Dict = NodeJS.Dict; interface StoredReportData { reportId: string; variantId?: string | undefined; id: string; executionId?: string | undefined; tableId?: string | undefined; reportName: string; variantName?: string | undefined; name: string; description: string; schedule?: string | undefined; status?: RequestStatus | undefined; timestamp: AsyncReportsTimestamp; dataProductDefinitionsPath?: string | undefined; dpdPathFromQuery?: boolean | undefined; query?: AsyncReportQueryData | undefined; interactiveQuery?: AsyncReportQueryData | undefined; url?: AsyncReportUrlData | undefined; type: ReportType; loadType?: LoadType | undefined; childExecutionData?: Array<ChildReportExecutionData> | undefined; } interface RequestedReport extends StoredReportData { errorMessage?: string | undefined; filters?: ParamsConfig | undefined; sortBy?: ParamsConfig | undefined; } interface RequestedDashboard extends StoredReportData { metrics: { name: string; }[]; } type RecentlyViewedReport = StoredReportData; type SubscribedReport = StoredReportData; type UserReportData = RequestedReport | RecentlyViewedReport | StoredReportData | RequestedDashboard | SubscribedReport; interface AsyncReportUrlData { origin: string; request?: AsyncReportUrlItemData | undefined; report?: AsyncReportUrlItemData | undefined; polling?: AsyncReportUrlItemData | undefined; } interface AsyncReportUrlItemData { pathname?: string | undefined; fullUrl?: string | undefined; search?: string | undefined; default?: string | undefined; } interface AsyncReportQueryData { data: Dict<string | string[]>; summary: QuerySummaryItem[]; } interface ParamsConfig { data: Dict<string>; queryString: string; } declare enum RequestStatus { SUBMITTED = "SUBMITTED", STARTED = "STARTED", PICKED = "PICKED", FINISHED = "FINISHED", FAILED = "FAILED", ABORTED = "ABORTED", EXPIRED = "EXPIRED", READY = "READY", ALL = "ALL" } declare enum ReportType { REPORT = "report", DASHBOARD = "dashboard", UNAVAILABLE = "unavailable" } interface AsyncReportsTimestamp { lastViewed?: Date | undefined; requested?: Date | undefined; completed?: Date | undefined; expired?: Date | undefined; failed?: Date | undefined; retried?: Date | undefined; aborted?: Date | undefined; refresh?: Date | undefined; } declare enum LoadType { SYNC = "sync", ASYNC = "async", SCHEDULED = "scheduled" } export { LoadType, ReportType, RequestStatus }; export type { AsyncReportQueryData, AsyncReportUrlData, AsyncReportUrlItemData, AsyncReportsTimestamp, ParamsConfig, RecentlyViewedReport, RequestedDashboard, RequestedReport, StoredReportData, SubscribedReport, UserReportData };