@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.14.2 → 4.15.1

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.
Files changed (68) hide show
  1. package/dpr/all.mjs +2 -0
  2. package/dpr/all.scss +4 -0
  3. package/dpr/components/_catalogue/catalogue-list/utils.test.ts +1 -1
  4. package/dpr/components/_charts/chart/clientClass.mjs +4 -3
  5. package/dpr/components/_charts/chart/heatmap/Heatmap.js +2 -0
  6. package/dpr/components/_charts/chart/heatmap/Heatmap.js.map +7 -0
  7. package/dpr/components/_charts/chart/heatmap/Heatmap.ts +278 -0
  8. package/dpr/components/_charts/chart/heatmap/clientClass.mjs +175 -0
  9. package/dpr/components/_charts/chart/styles.scss +4 -0
  10. package/dpr/components/_charts/utils.js +1 -1
  11. package/dpr/components/_charts/utils.js.map +3 -3
  12. package/dpr/components/_charts/utils.test.ts +4 -1
  13. package/dpr/components/_charts/utils.ts +73 -27
  14. package/dpr/components/_dashboards/dashboard/types.js +1 -1
  15. package/dpr/components/_dashboards/dashboard/types.js.map +2 -2
  16. package/dpr/components/_dashboards/dashboard/types.ts +21 -1
  17. package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
  18. package/dpr/components/_dashboards/dashboard-list/utils.js.map +3 -3
  19. package/dpr/components/_dashboards/dashboard-list/utils.test.ts +1 -0
  20. package/dpr/components/_dashboards/dashboard-list/utils.ts +5 -1
  21. package/dpr/components/_filters/types.d.js.map +1 -1
  22. package/dpr/components/_filters/types.d.ts +12 -8
  23. package/dpr/components/_filters/utils.js +1 -1
  24. package/dpr/components/_filters/utils.js.map +3 -3
  25. package/dpr/components/_filters/utils.ts +24 -2
  26. package/dpr/components/user-reports/utils.js +1 -1
  27. package/dpr/components/user-reports/utils.js.map +3 -3
  28. package/dpr/components/user-reports/utils.ts +13 -3
  29. package/dpr/data/dashboardClient.js +1 -1
  30. package/dpr/data/dashboardClient.js.map +2 -2
  31. package/dpr/data/dashboardClient.ts +1 -1
  32. package/dpr/routes/journeys/request-report/filters/controller.js +1 -1
  33. package/dpr/routes/journeys/request-report/filters/controller.js.map +3 -3
  34. package/dpr/routes/journeys/request-report/filters/controller.ts +6 -2
  35. package/dpr/routes/journeys/request-report/filters/utils.js +1 -1
  36. package/dpr/routes/journeys/request-report/filters/utils.js.map +2 -2
  37. package/dpr/routes/journeys/request-report/filters/utils.ts +9 -3
  38. package/dpr/routes/journeys/view-report/async/dashboard/utils.js +1 -1
  39. package/dpr/routes/journeys/view-report/async/dashboard/utils.js.map +3 -3
  40. package/dpr/routes/journeys/view-report/async/dashboard/utils.ts +12 -3
  41. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
  42. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  43. package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +44 -8
  44. package/dpr/routes/journeys/view-report/utils.js +1 -1
  45. package/dpr/routes/journeys/view-report/utils.js.map +3 -3
  46. package/dpr/routes/journeys/view-report/utils.ts +6 -1
  47. package/dpr/services/dashboardService.js +1 -1
  48. package/dpr/services/dashboardService.js.map +2 -2
  49. package/dpr/services/dashboardService.ts +1 -1
  50. package/dpr/types/Charts.js +1 -1
  51. package/dpr/types/Charts.js.map +1 -1
  52. package/dpr/types/Charts.ts +10 -3
  53. package/dpr/types/ExecutionData.d.js +1 -1
  54. package/dpr/types/ExecutionData.d.js.map +1 -1
  55. package/dpr/types/ExecutionData.d.ts +1 -0
  56. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
  57. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +2 -2
  58. package/dpr/utils/DataTableBuilder/DataTableBuilder.ts +37 -19
  59. package/dpr/utils/DateMapper/DateMapper.js +1 -1
  60. package/dpr/utils/DateMapper/DateMapper.js.map +2 -2
  61. package/dpr/utils/DateMapper/DateMapper.ts +4 -0
  62. package/dpr/utils/UserStoreItemBuilder.js +1 -1
  63. package/dpr/utils/UserStoreItemBuilder.js.map +3 -3
  64. package/dpr/utils/UserStoreItemBuilder.ts +6 -4
  65. package/dpr/utils/requestStatusHelper.js +1 -1
  66. package/dpr/utils/requestStatusHelper.js.map +2 -2
  67. package/dpr/utils/requestStatusHelper.ts +1 -1
  68. package/package.json +5 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/dpr/routes/journeys/request-report/filters/utils.ts"],
4
- "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport FiltersUtils from '../../../../components/_filters/utils'\nimport { removeDuplicates } from '../../../../utils/reportStoreHelper'\nimport UserStoreItemBuilder from '../../../../utils/UserStoreItemBuilder'\n\n// Types\nimport type ReportingService from '../../../../services/reportingService'\nimport { ReportType, RequestFormData, RequestStatus } from '../../../../types/UserReports'\nimport type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData'\nimport type { AsyncReportUtilsParams, RequestDataResult, RequestReportData } from '../../../../types/AsyncReportUtils'\nimport type {\n RenderFiltersReturnValue,\n SetQueryFromFiltersResult,\n} from '../../../../components/_async/async-filters-form/types'\nimport type { components } from '../../../../types/api'\nimport type { DashboardDefinition } from '../../../../components/_dashboards/dashboard/types'\nimport type { Services } from '../../../../types/Services'\nimport type DashboardService from '../../../../services/dashboardService'\nimport PersonalistionUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\n/**\n * Updates the store with the request details\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Services} services\n * @param {SetQueryFromFiltersResult} querySummaryData\n * @param {string} executionData\n * @return {*} {Promise<string>}\n */\nexport const updateStore = async ({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: SetQueryFromFiltersResult\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n}): Promise<void> => {\n const { search, id, type } = req.body\n const { dprUser, definitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n\n await removeDuplicates({ storeService: services.requestedReportService, userId: dprUser.id, id, search })\n await removeDuplicates({ storeService: services.recentlyViewedService, userId: dprUser.id, id, search })\n\n const requestFormData: RequestFormData = req.body\n const reportData = {\n type: requestFormData.type as ReportType,\n reportId: requestFormData.reportId,\n reportName: requestFormData.reportName,\n description: requestFormData.description,\n id: requestFormData.id,\n name: requestFormData.name,\n }\n\n let requestedReportData\n switch (type) {\n case ReportType.REPORT:\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addSortData(queryData?.sortData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .build()\n break\n case ReportType.DASHBOARD: {\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .addMetrics(JSON.parse(req.body.sections))\n .build()\n break\n }\n default:\n break\n }\n\n await services.requestedReportService.addReport(dprUser.id, requestedReportData)\n}\n\nasync function requestChildReports(\n childVariants: Array<components['schemas']['ChildVariantDefinition']>,\n reportingService: ReportingService,\n token: string,\n reportId: string,\n queryData: SetQueryFromFiltersResult,\n dataProductDefinitionsPath: string,\n): Promise<Array<ChildReportExecutionData>> {\n return Promise.all(\n childVariants.map((childVariant) =>\n reportingService\n .requestAsyncReport(token, reportId, childVariant.id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n })\n .then((response) => {\n const { executionId, tableId } = response\n return { executionId, tableId, variantId: childVariant.id }\n }),\n ),\n )\n}\n\nconst requestProduct = async ({\n req,\n res,\n token,\n dashboardService,\n reportingService,\n}: {\n req: Request\n res: Response\n token: string\n dashboardService: DashboardService\n reportingService: ReportingService\n}): Promise<{\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n queryData: SetQueryFromFiltersResult\n}> => {\n const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields\n let queryData\n let executionId\n let tableId\n let definition\n let childVariants: components['schemas']['ChildVariantDefinition'][] = []\n\n if (type === ReportType.REPORT) {\n definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.variant.specification?.fields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n childVariants = definition.variant.childVariants ?? []\n }\n\n if (type === ReportType.DASHBOARD) {\n definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.filterFields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n }\n\n const childExecutionData = await requestChildReports(\n childVariants,\n reportingService,\n token,\n reportId,\n queryData,\n dataProductDefinitionsPath,\n )\n\n return {\n executionData: { executionId, tableId },\n childExecutionData,\n queryData,\n }\n}\n\nconst renderDashboardRequestData = async ({\n token,\n reportId,\n definitionPath,\n services,\n definition,\n}: {\n token: string\n reportId: string\n definitionPath: string\n services: Services\n definition: DashboardDefinition\n}) => {\n const productDefinitions = await services.reportingService.getDefinitions(token, definitionPath)\n const productDefinition = productDefinitions.find(\n (def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,\n )\n const reportName = productDefinition.name\n const { name, description, sections, filterFields: fields } = definition\n\n return {\n reportName,\n name,\n description,\n sections: sections || [],\n fields,\n }\n}\n\nconst renderReportRequestData = async (definition: components['schemas']['SingleVariantReportDefinition']) => {\n return {\n definition,\n reportName: definition.name,\n name: definition.variant.name,\n description: definition.variant.description || definition.description,\n template: definition.variant.specification,\n fields: definition?.variant?.specification?.fields,\n interactive: definition?.variant?.interactive,\n }\n}\n\nexport const getDefintionByType = async (req: Request, res: Response, next: NextFunction, services: Services) => {\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n const definition = await service.getDefinition(token, reportId, variantId || id, definitionsPath)\n\n return definition\n}\n\nconst getFilterData = async (\n req: Request,\n res: Response,\n fields: components['schemas']['FieldDefinition'][],\n interactive: boolean,\n services: Services,\n userId: string,\n) => {\n const { reportId, id } = req.params\n\n let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)\n filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)\n\n const defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n if (defaultFilterValues) {\n filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(\n filtersData.filters,\n filtersData.sortBy,\n defaultFilterValues,\n )\n }\n\n filtersData.filters = FiltersUtils.setFilterValuesFromRequest(filtersData.filters, req)\n\n return { filtersData, defaultFilterValues }\n}\n\n/**\n * Sends the request for the async report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const request = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const requestArgs = { req, res, token }\n\n const { executionData, queryData, childExecutionData } = await requestProduct({\n ...requestArgs,\n dashboardService: services.dashboardService,\n reportingService: services.reportingService,\n })\n\n if (executionData) {\n await updateStore({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n })\n }\n\n return executionData.executionId\n}\n\nexport const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, executionId, type } = req.params\n\n let service\n if (type === ReportType.REPORT) service = services.reportingService\n if (type === ReportType.DASHBOARD) service = services.dashboardService\n\n const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)\n\n if (response && response.cancellationSucceeded) {\n await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderRequest = async ({\n req,\n res,\n services,\n next,\n}: AsyncReportUtilsParams): Promise<RequestDataResult | boolean> => {\n try {\n const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)\n const { reportId, type, id } = req.params\n const { definition } = res.locals\n const defaultsSaved = <string>req.query.defaultsSaved\n\n const definitionApiArgs = { token, reportId, definitionPath, services }\n\n let name\n let reportName\n let description\n let template\n let fields: components['schemas']['FieldDefinition'][]\n let sections\n let interactive\n let filtersData\n let defaultFilterValues\n\n if (type === ReportType.REPORT) {\n ;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))\n }\n\n if (type === ReportType.DASHBOARD) {\n ;({ name, reportName, description, sections, fields } = await renderDashboardRequestData({\n ...definitionApiArgs,\n definition,\n }))\n }\n\n if (fields) {\n ;({ filtersData, defaultFilterValues } = await getFilterData(req, res, fields, interactive, services, dprUser.id))\n }\n\n const reportData: RequestReportData = {\n reportName,\n name,\n description,\n reportId,\n id,\n ...(dpdPathFromQuery && { definitionPath }),\n csrfToken,\n template,\n sections,\n hasDefaults: defaultFilterValues?.length,\n defaultsSaved,\n type: type as ReportType,\n }\n\n return {\n title: `Request ${type}`,\n filtersDescription: `Customise your ${type} using the filters below and submit your request.`,\n filtersData,\n reportData,\n }\n } catch (error) {\n next(error)\n return false\n }\n}\n\nexport const getFiltersFromReqBody = (req: Request) => {\n return Object.keys(req.body)\n .filter((attr) => attr.includes('filters.'))\n .filter((attr) => !!req.body[attr])\n .map((attr) => {\n return { name: attr, value: req.body[attr] }\n })\n}\n\nexport default {\n request,\n cancelRequest,\n renderRequest,\n getFiltersFromReqBody,\n getDefintionByType,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable no-param-reassign */\nimport { Request, Response, NextFunction } from 'express'\n\n// Utils\nimport FiltersFormUtils from '../../../../components/_async/async-filters-form/utils'\nimport LocalsHelper from '../../../../utils/localsHelper'\nimport FiltersUtils from '../../../../components/_filters/utils'\nimport { removeDuplicates } from '../../../../utils/reportStoreHelper'\nimport UserStoreItemBuilder from '../../../../utils/UserStoreItemBuilder'\n\n// Types\nimport type ReportingService from '../../../../services/reportingService'\nimport { ReportType, RequestFormData, RequestStatus } from '../../../../types/UserReports'\nimport type { ExecutionData, ChildReportExecutionData } from '../../../../types/ExecutionData'\nimport type { AsyncReportUtilsParams, RequestDataResult, RequestReportData } from '../../../../types/AsyncReportUtils'\nimport type {\n RenderFiltersReturnValue,\n SetQueryFromFiltersResult,\n} from '../../../../components/_async/async-filters-form/types'\nimport type { components } from '../../../../types/api'\nimport type { DashboardDefinition } from '../../../../components/_dashboards/dashboard/types'\nimport type { Services } from '../../../../types/Services'\nimport type DashboardService from '../../../../services/dashboardService'\nimport PersonalistionUtils from '../../../../utils/Personalisation/personalisationUtils'\nimport { FiltersType } from '../../../../components/_filters/filtersTypeEnum'\n\n/**\n * Updates the store with the request details\n *\n * @param {Request} req\n * @param {Response} res\n * @param {Services} services\n * @param {SetQueryFromFiltersResult} querySummaryData\n * @param {string} executionData\n * @return {*} {Promise<string>}\n */\nexport const updateStore = async ({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n}: {\n req: Request\n res: Response\n services: Services\n queryData?: SetQueryFromFiltersResult\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n}): Promise<void> => {\n const { search, id, type } = req.body\n const { dprUser, definitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n\n await removeDuplicates({ storeService: services.requestedReportService, userId: dprUser.id, id, search })\n await removeDuplicates({ storeService: services.recentlyViewedService, userId: dprUser.id, id, search })\n\n const requestFormData: RequestFormData = req.body\n const reportData = {\n type: requestFormData.type as ReportType,\n reportId: requestFormData.reportId,\n reportName: requestFormData.reportName,\n description: requestFormData.description,\n id: requestFormData.id,\n name: requestFormData.name,\n }\n\n let requestedReportData\n switch (type) {\n case ReportType.REPORT:\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addSortData(queryData?.sortData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .build()\n break\n case ReportType.DASHBOARD: {\n requestedReportData = new UserStoreItemBuilder(reportData, requestFormData)\n .addExecutionData(executionData)\n .addChildExecutionData(childExecutionData)\n .addFilters(queryData?.filterData)\n .addDefinitionsPath(definitionsPath, dpdPathFromQuery)\n .addRequestUrls(req)\n .addQuery(queryData)\n .addStatus(RequestStatus.SUBMITTED)\n .addTimestamp()\n .addMetrics(JSON.parse(req.body.sections))\n .build()\n break\n }\n default:\n break\n }\n\n await services.requestedReportService.addReport(dprUser.id, requestedReportData)\n}\n\nasync function requestChildReports(\n childVariants: Array<components['schemas']['ChildVariantDefinition']>,\n reportingService: ReportingService,\n token: string,\n reportId: string,\n queryData: SetQueryFromFiltersResult,\n dataProductDefinitionsPath: string,\n): Promise<Array<ChildReportExecutionData>> {\n return Promise.all(\n childVariants.map((childVariant) =>\n reportingService\n .requestAsyncReport(token, reportId, childVariant.id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n })\n .then((response) => {\n const { executionId, tableId } = response\n return { executionId, tableId, variantId: childVariant.id }\n }),\n ),\n )\n}\n\nconst requestProduct = async ({\n req,\n res,\n token,\n dashboardService,\n reportingService,\n}: {\n req: Request\n res: Response\n token: string\n dashboardService: DashboardService\n reportingService: ReportingService\n}): Promise<{\n executionData: ExecutionData\n childExecutionData: Array<ChildReportExecutionData>\n queryData: SetQueryFromFiltersResult\n}> => {\n const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)\n const { reportId, id, type } = req.body\n\n let fields\n let queryData\n let executionId\n let tableId\n let definition\n let childVariants: components['schemas']['ChildVariantDefinition'][] = []\n\n if (type === ReportType.REPORT) {\n definition = await reportingService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.variant.specification?.fields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await reportingService.requestAsyncReport(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n childVariants = definition.variant.childVariants ?? []\n }\n\n if (type === ReportType.DASHBOARD) {\n definition = await dashboardService.getDefinition(token, reportId, id, dataProductDefinitionsPath)\n\n fields = definition ? definition.filterFields : []\n queryData = FiltersFormUtils.setQueryFromFilters(req, fields)\n ;({ executionId, tableId } = await dashboardService.requestAsyncDashboard(token, reportId, id, {\n ...queryData.query,\n dataProductDefinitionsPath,\n }))\n }\n\n const childExecutionData = await requestChildReports(\n childVariants,\n reportingService,\n token,\n reportId,\n queryData,\n dataProductDefinitionsPath,\n )\n\n const executionData = {\n executionId,\n tableId,\n ...(dpdPathFromQuery && { dataProductDefinitionsPath }),\n }\n\n return {\n executionData,\n childExecutionData,\n queryData,\n }\n}\n\nconst renderDashboardRequestData = async ({\n token,\n reportId,\n definitionPath,\n services,\n definition,\n}: {\n token: string\n reportId: string\n definitionPath: string\n services: Services\n definition: DashboardDefinition\n}) => {\n const productDefinitions = await services.reportingService.getDefinitions(token, definitionPath)\n const productDefinition = productDefinitions.find(\n (def: components['schemas']['ReportDefinitionSummary']) => def.id === reportId,\n )\n const reportName = productDefinition.name\n const { name, description, sections, filterFields: fields } = definition\n\n return {\n reportName,\n name,\n description,\n sections: sections || [],\n fields,\n }\n}\n\nconst renderReportRequestData = async (definition: components['schemas']['SingleVariantReportDefinition']) => {\n return {\n definition,\n reportName: definition.name,\n name: definition.variant.name,\n description: definition.variant.description || definition.description,\n template: definition.variant.specification,\n fields: definition?.variant?.specification?.fields,\n interactive: definition?.variant?.interactive,\n }\n}\n\nexport const getDefintionByType = async (req: Request, res: Response, next: NextFunction, services: Services) => {\n const { token, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, variantId, type } = req.params\n\n const service = type === ReportType.REPORT ? services.reportingService : services.dashboardService\n const definition = await service.getDefinition(token, reportId, variantId || id, definitionsPath)\n\n return definition\n}\n\nconst getFilterData = async (\n req: Request,\n res: Response,\n fields: components['schemas']['FieldDefinition'][],\n interactive: boolean,\n services: Services,\n userId: string,\n) => {\n const { reportId, id } = req.params\n\n let filtersData = <RenderFiltersReturnValue>await FiltersFormUtils.renderFilters(fields, interactive)\n filtersData.filters = PersonalistionUtils.setUserContextDefaults(res, filtersData.filters)\n\n const defaultFilterValues = await services.defaultFilterValuesService.get(userId, reportId, id, FiltersType.REQUEST)\n if (defaultFilterValues) {\n filtersData = PersonalistionUtils.setFilterValuesFromSavedDefaults(\n filtersData.filters,\n filtersData.sortBy,\n defaultFilterValues,\n )\n }\n\n filtersData.filters = FiltersUtils.setFilterValuesFromRequest(filtersData.filters, req)\n\n return { filtersData, defaultFilterValues }\n}\n\n/**\n * Sends the request for the async report\n *\n * @param {AsyncReportUtilsParams} { req, res, services }\n * @return {*}\n */\nexport const request = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const requestArgs = { req, res, token }\n\n const { executionData, queryData, childExecutionData } = await requestProduct({\n ...requestArgs,\n dashboardService: services.dashboardService,\n reportingService: services.reportingService,\n })\n\n if (executionData) {\n await updateStore({\n req,\n res,\n services,\n queryData,\n executionData,\n childExecutionData,\n })\n }\n\n return executionData\n}\n\nexport const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { token, dprUser, definitionsPath } = LocalsHelper.getValues(res)\n const { reportId, id, executionId, type } = req.params\n\n let service\n if (type === ReportType.REPORT) service = services.reportingService\n if (type === ReportType.DASHBOARD) service = services.dashboardService\n\n const response = await service.cancelAsyncRequest(token, reportId, id, executionId, definitionsPath)\n\n if (response && response.cancellationSucceeded) {\n await services.requestedReportService.updateStatus(executionId, dprUser.id, RequestStatus.ABORTED)\n }\n}\n\n/**\n * Returns the data required for rendering the async filters component\n *\n * @param {AsyncReportUtilsParams} { req, res, dataSources }\n * @return {*}\n */\nexport const renderRequest = async ({\n req,\n res,\n services,\n next,\n}: AsyncReportUtilsParams): Promise<RequestDataResult | boolean> => {\n try {\n const { token, csrfToken, definitionsPath: definitionPath, dpdPathFromQuery, dprUser } = LocalsHelper.getValues(res)\n const { reportId, type, id } = req.params\n const { definition } = res.locals\n const defaultsSaved = <string>req.query.defaultsSaved\n\n const definitionApiArgs = { token, reportId, definitionPath, services }\n\n let name\n let reportName\n let description\n let template\n let fields: components['schemas']['FieldDefinition'][]\n let sections\n let interactive\n let filtersData\n let defaultFilterValues\n\n if (type === ReportType.REPORT) {\n ;({ name, reportName, description, fields, interactive } = await renderReportRequestData(definition))\n }\n\n if (type === ReportType.DASHBOARD) {\n ;({ name, reportName, description, sections, fields } = await renderDashboardRequestData({\n ...definitionApiArgs,\n definition,\n }))\n }\n\n if (fields) {\n ;({ filtersData, defaultFilterValues } = await getFilterData(req, res, fields, interactive, services, dprUser.id))\n }\n\n const reportData: RequestReportData = {\n reportName,\n name,\n description,\n reportId,\n id,\n ...(dpdPathFromQuery && { definitionPath }),\n csrfToken,\n template,\n sections,\n hasDefaults: defaultFilterValues?.length,\n defaultsSaved,\n type: type as ReportType,\n }\n\n return {\n title: `Request ${type}`,\n filtersDescription: `Customise your ${type} using the filters below and submit your request.`,\n filtersData,\n reportData,\n }\n } catch (error) {\n next(error)\n return false\n }\n}\n\nexport const getFiltersFromReqBody = (req: Request) => {\n return Object.keys(req.body)\n .filter((attr) => attr.includes('filters.'))\n .filter((attr) => !!req.body[attr])\n .map((attr) => {\n return { name: attr, value: req.body[attr] }\n })\n}\n\nexport default {\n request,\n cancelRequest,\n renderRequest,\n getFiltersFromReqBody,\n getDefintionByType,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["utils_exports", "__export", "cancelRequest", "utils_default", "getDefintionByType", "getFiltersFromReqBody", "renderRequest", "request", "updateStore", "__toCommonJS", "import_utils", "import_localsHelper", "import_reportStoreHelper", "import_UserStoreItemBuilder", "import_UserReports", "import_personalisationUtils", "import_filtersTypeEnum", "req", "res", "services", "queryData", "executionData", "childExecutionData", "search", "id", "type", "dprUser", "definitionsPath", "dpdPathFromQuery", "LocalsHelper", "requestFormData", "reportData", "requestedReportData", "UserStoreItemBuilder", "requestChildReports", "childVariants", "reportingService", "token", "reportId", "dataProductDefinitionsPath", "childVariant", "response", "executionId", "tableId", "requestProduct", "dashboardService", "fields", "definition", "FiltersFormUtils", "renderDashboardRequestData", "definitionPath", "reportName", "def", "name", "description", "sections", "renderReportRequestData", "next", "variantId", "getFilterData", "interactive", "userId", "filtersData", "PersonalistionUtils", "defaultFilterValues", "FiltersUtils", "requestArgs", "service", "csrfToken", "defaultsSaved", "definitionApiArgs", "template", "error", "attr"]
7
7
  }
@@ -141,7 +141,7 @@ const requestProduct = async ({
141
141
  childExecutionData: Array<ChildReportExecutionData>
142
142
  queryData: SetQueryFromFiltersResult
143
143
  }> => {
144
- const { definitionsPath: dataProductDefinitionsPath } = LocalsHelper.getValues(res)
144
+ const { definitionsPath: dataProductDefinitionsPath, dpdPathFromQuery } = LocalsHelper.getValues(res)
145
145
  const { reportId, id, type } = req.body
146
146
 
147
147
  let fields
@@ -183,8 +183,14 @@ const requestProduct = async ({
183
183
  dataProductDefinitionsPath,
184
184
  )
185
185
 
186
+ const executionData = {
187
+ executionId,
188
+ tableId,
189
+ ...(dpdPathFromQuery && { dataProductDefinitionsPath }),
190
+ }
191
+
186
192
  return {
187
- executionData: { executionId, tableId },
193
+ executionData,
188
194
  childExecutionData,
189
195
  queryData,
190
196
  }
@@ -295,7 +301,7 @@ export const request = async ({ req, res, services }: AsyncReportUtilsParams) =>
295
301
  })
296
302
  }
297
303
 
298
- return executionData.executionId
304
+ return executionData
299
305
  }
300
306
 
301
307
  export const cancelRequest = async ({ req, res, services }: AsyncReportUtilsParams) => {
@@ -1,2 +1,2 @@
1
- var x=Object.create;var R=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var Q=(t,e)=>{for(var r in e)R(t,r,{get:e[r],enumerable:!0})},g=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of O(e))!M.call(t,a)&&a!==r&&R(t,a,{get:()=>e[a],enumerable:!(n=N(e,a))||n.enumerable});return t};var c=(t,e,r)=>(r=t!=null?x(H(t)):{},g(e||!t||!t.__esModule?R(r,"default",{value:t,enumerable:!0}):r,t)),_=t=>g(R({},"__esModule",{value:!0}),t);var J={};Q(J,{default:()=>z,renderAsyncDashboard:()=>P});module.exports=_(J);var k=c(require("parseurl")),d=require("../../../../../components/_dashboards/dashboard/types"),b=require("../../../../../types/UserReports"),V=c(require("../../../../../components/_charts/utils")),T=c(require("../../../../../utils/definitionUtils")),E=c(require("../../../../../components/user-reports/utils")),w=c(require("../../../../../components/_dashboards/dashboard-list/utils")),S=c(require("../../../../../components/_filters/utils")),h=c(require("../../../../../components/_dashboards/scorecard/utils")),F=c(require("../../../../../components/_reports/report-actions/utils")),q=c(require("../../../../../types/ReportQuery")),U=c(require("../../../../../utils/localsHelper")),L=require("../../../../../components/_filters/filtersTypeEnum");const v=(t,e,r)=>{const n=e.name,{name:a}=t,s=r.url.request.fullUrl,{executionId:p}=r;return F.default.getActions({share:{reportName:n,name:a,url:s},refresh:{url:s,executionId:p},copy:{url:s}})},G=async({req:t,res:e,services:r,next:n})=>{const{token:a}=U.default.getValues(e),{reportId:s,id:p}=t.params,{dataProductDefinitionsPath:i}=t.query,o=await r.dashboardService.getDefinition(a,s,p,i),l=await T.default.getReportSummary(s,r.reportingService,a,i),u=await S.default.getFilters({fields:o.filterFields||[],req:t,filtersType:L.FiltersType.INTERACTIVE}),f=S.default.setRequestQueryFromFilterValues(u.filters);return{query:new q.default({fields:o.filterFields||[],queryParams:f,definitionsPath:i,reportType:b.ReportType.DASHBOARD}).toRecordWithFilterPrefix(!0),filters:u,dashboardDefinition:o,reportDefinition:l}},W=(t,e)=>t.sections.map(r=>{const{id:n,display:a,description:s}=r;let p=!1;const i=r.visualisations.map(o=>{const{type:l,display:u,description:f,id:D}=o;let m;switch(l){case d.DashboardVisualisationType.LIST:m=w.default.createList(o,e);break;case d.DashboardVisualisationType.SCORECARD:p=!0,m=h.default.createScorecard(o,e);break;case d.DashboardVisualisationType.SCORECARD_GROUP:m=h.default.createScorecards(o,e);break;case d.DashboardVisualisationType.BAR:case d.DashboardVisualisationType.LINE:case d.DashboardVisualisationType.BAR_TIMESERIES:case d.DashboardVisualisationType.LINE_TIMESERIES:case d.DashboardVisualisationType.DONUT:{m=V.default.createChart(o,e);break}default:break}return{id:D,title:u,description:f,type:l,data:m}});return p&&h.default.mergeScorecardsIntoGroup(i),{id:n,title:a,description:s,visualisations:i}}),j=async(t,e,r,n,a,s,p)=>{const i=await t.requestedReportService.getReportByTableId(e,r);return n&&n.length&&i&&E.default.updateLastViewed({services:t,reportStateData:i,userId:r,req:s,filters:p}),i},P=async({req:t,res:e,services:r,next:n})=>{const{token:a,csrfToken:s,dprUser:p,nestedBaseUrl:i}=U.default.getValues(e),{reportId:o,id:l,tableId:u}=t.params,f=(0,k.default)(t),{query:D,filters:m,reportDefinition:I,dashboardDefinition:y}=await G({req:t,res:e,services:r}),B=(await r.dashboardService.getAsyncDashboard(a,l,o,u,D)).flat(),A=W(y,B),C=await j(r,u,p.id,A,f,t,m.filters);return{dashboardData:{token:a,id:l,reportId:o,name:y.name,description:y.description,reportName:I.name,bookmarked:await r.bookmarkService.isBookmarked(l,o,p.id),nestedBaseUrl:i,csrfToken:s,sections:A,filters:m,type:b.ReportType.DASHBOARD,actions:v(y,I,C)}}};var z={renderAsyncDashboard:P};0&&(module.exports={renderAsyncDashboard});
1
+ var B=Object.create;var h=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var H=(t,e)=>{for(var r in e)h(t,r,{get:e[r],enumerable:!0})},T=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of N(e))!_.call(t,a)&&a!==r&&h(t,a,{get:()=>e[a],enumerable:!(o=M(e,a))||o.enumerable});return t};var m=(t,e,r)=>(r=t!=null?B(O(t)):{},T(e||!t||!t.__esModule?h(r,"default",{value:t,enumerable:!0}):r,t)),Q=t=>T(h({},"__esModule",{value:!0}),t);var z={};H(z,{default:()=>v,renderAsyncDashboard:()=>L});module.exports=Q(z);var k=m(require("parseurl")),c=require("../../../../../components/_dashboards/dashboard/types"),U=require("../../../../../types/UserReports"),b=m(require("../../../../../components/_charts/utils")),E=m(require("../../../../../utils/definitionUtils")),V=m(require("../../../../../components/user-reports/utils")),w=m(require("../../../../../components/_dashboards/dashboard-list/utils")),I=m(require("../../../../../components/_filters/utils")),S=m(require("../../../../../components/_dashboards/scorecard/utils")),F=m(require("../../../../../components/_reports/report-actions/utils")),q=m(require("../../../../../types/ReportQuery")),g=m(require("../../../../../utils/localsHelper")),C=require("../../../../../components/_filters/filtersTypeEnum");const G=(t,e,r)=>{const o=e.name,{name:a}=t,i=r.url.request.fullUrl,{executionId:p}=r;return F.default.getActions({share:{reportName:o,name:a,url:i},refresh:{url:i,executionId:p},copy:{url:i}})},X=async({req:t,res:e,services:r,next:o})=>{const{token:a}=g.default.getValues(e),{reportId:i,id:p}=t.params,{dataProductDefinitionsPath:n}=t.query,d=await r.dashboardService.getDefinition(a,i,p,n),s=await E.default.getReportSummary(i,r.reportingService,a,n),u=await I.default.getFilters({fields:d.filterFields||[],req:t,filtersType:C.FiltersType.INTERACTIVE}),f=I.default.setRequestQueryFromFilterValues(u.filters);return{query:new q.default({fields:d.filterFields||[],queryParams:f,definitionsPath:n,reportType:U.ReportType.DASHBOARD}).toRecordWithFilterPrefix(!0),filters:u,dashboardDefinition:d,reportDefinition:s}},W=(t,e,r)=>t.sections.map(o=>{const{id:a,display:i,description:p}=o;let n=!1;const d=o.visualisations.map(s=>{const{type:u,display:f,description:D,id:R}=s;let l;switch(u){case c.DashboardVisualisationType.LIST:l=w.default.createList(s,e);break;case c.DashboardVisualisationType.SCORECARD:n=!0,l=S.default.createScorecard(s,e);break;case c.DashboardVisualisationType.SCORECARD_GROUP:l=S.default.createScorecards(s,e);break;case c.DashboardVisualisationType.BAR:case c.DashboardVisualisationType.LINE:case c.DashboardVisualisationType.DONUT:{l=b.default.createChart(s,e);break}case c.DashboardVisualisationType.MATRIX:case c.DashboardVisualisationType.MATRIX_TIMESERIES:{l=b.default.createMatrixChart(s,e,r);break}case c.DashboardVisualisationType.BAR_TIMESERIES:case c.DashboardVisualisationType.LINE_TIMESERIES:{l=b.default.createTimeseriesCharts(s,e);break}default:break}return{id:R,title:f,description:D,type:u,data:l}});return n&&S.default.mergeScorecardsIntoGroup(d),{id:a,title:i,description:p,visualisations:d}}),j=async(t,e,r,o,a,i,p)=>{const n=await t.requestedReportService.getReportByTableId(e,r);return o&&o.length&&n&&V.default.updateLastViewed({services:t,reportStateData:n,userId:r,req:i,filters:p}),n},L=async({req:t,res:e,services:r,next:o})=>{const{token:a,csrfToken:i,dprUser:p,nestedBaseUrl:n}=g.default.getValues(e),{reportId:d,id:s,tableId:u}=t.params,f=(0,k.default)(t),{query:D,filters:R,reportDefinition:l,dashboardDefinition:y}=await X({req:t,res:e,services:r}),P=(await r.dashboardService.getAsyncDashboard(a,s,d,u,D)).flat(),A=W(y,P,D),x=await j(r,u,p.id,A,f,t,R.filters);return{dashboardData:{token:a,id:s,reportId:d,name:y.name,description:y.description,reportName:l.name,bookmarked:await r.bookmarkService.isBookmarked(s,d,p.id),nestedBaseUrl:n,csrfToken:i,sections:A,filters:R,type:U.ReportType.DASHBOARD,actions:G(y,l,x)}}};var v={renderAsyncDashboard:L};0&&(module.exports={renderAsyncDashboard});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/dpr/routes/journeys/view-report/async/dashboard/utils.ts"],
4
- "sourcesContent": ["import parseUrl from 'parseurl'\nimport { Url } from 'url'\nimport { Request } from 'express'\nimport type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils'\n\nimport {\n DashboardUIVisualisation,\n DashboardVisualisationType,\n ListVisualisation,\n type DashboardDefinition,\n type DashboardSection,\n type DashboardUISection,\n type DashboardVisualisation,\n} from '../../../../../components/_dashboards/dashboard/types'\nimport type { DashboardDataResponse } from '../../../../../types/Metrics'\nimport type { RequestedReport } from '../../../../../types/UserReports'\nimport { ReportType } from '../../../../../types/UserReports'\nimport type { components } from '../../../../../types/api'\n\nimport ChartUtils from '../../../../../components/_charts/utils'\nimport DefinitionUtils from '../../../../../utils/definitionUtils'\nimport UserReportsUtils from '../../../../../components/user-reports/utils'\nimport DashboardListUtils from '../../../../../components/_dashboards/dashboard-list/utils'\nimport FilterUtils from '../../../../../components/_filters/utils'\nimport ScorecardsUtils from '../../../../../components/_dashboards/scorecard/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport { Services } from '../../../../../types/Services'\nimport { FilterValue } from '../../../../../components/_filters/types'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\n\nconst setDashboardActions = (\n dashboardDefinition: DashboardDefinition,\n reportDefinition: components['schemas']['ReportDefinitionSummary'],\n requestData: RequestedReport,\n) => {\n const reportName = reportDefinition.name\n const { name } = dashboardDefinition\n const actionsUrl = requestData.url.request.fullUrl\n const { executionId } = requestData\n\n return ReportActionsUtils.getActions({\n share: {\n reportName,\n name,\n url: actionsUrl,\n },\n refresh: {\n url: actionsUrl,\n executionId,\n },\n copy: {\n url: actionsUrl,\n },\n })\n}\n\nconst getDefinitionData = async ({ req, res, services, next }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const { dataProductDefinitionsPath } = req.query\n\n // Dashboard Definition,\n const dashboardDefinition: DashboardDefinition = await services.dashboardService.getDefinition(\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n )\n\n // Report summary data\n const reportDefinition = await DefinitionUtils.getReportSummary(\n reportId,\n services.reportingService,\n token,\n <string>dataProductDefinitionsPath,\n )\n\n // Get the filters\n const filtersData = await FilterUtils.getFilters({\n fields: dashboardDefinition.filterFields || [],\n req,\n filtersType: FiltersType.INTERACTIVE,\n })\n\n const filtersQuery = FilterUtils.setRequestQueryFromFilterValues(filtersData.filters)\n\n // Create the query\n const query = new ReportQuery({\n fields: dashboardDefinition.filterFields || [],\n queryParams: filtersQuery,\n definitionsPath: <string>dataProductDefinitionsPath,\n reportType: ReportType.DASHBOARD,\n }).toRecordWithFilterPrefix(true)\n\n return {\n query,\n filters: filtersData,\n dashboardDefinition,\n reportDefinition,\n }\n}\n\nconst getSections = (\n dashboardDefinition: DashboardDefinition,\n dashboardData: DashboardDataResponse[],\n): DashboardUISection[] => {\n return dashboardDefinition.sections.map((section: DashboardSection) => {\n const { id, display: title, description } = section\n\n let hasScorecard = false\n const visualisations = section.visualisations.map((visDefinition: DashboardVisualisation) => {\n const { type, display, description: visDescription, id: visId } = visDefinition\n\n let data: DashboardUIVisualisation['data']\n\n switch (type) {\n case DashboardVisualisationType.LIST:\n data = DashboardListUtils.createList(visDefinition as ListVisualisation, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD:\n hasScorecard = true\n data = ScorecardsUtils.createScorecard(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD_GROUP:\n data = ScorecardsUtils.createScorecards(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.BAR:\n case DashboardVisualisationType.LINE:\n case DashboardVisualisationType.BAR_TIMESERIES:\n case DashboardVisualisationType.LINE_TIMESERIES:\n case DashboardVisualisationType.DONUT: {\n data = ChartUtils.createChart(visDefinition, dashboardData)\n break\n }\n default:\n break\n }\n\n return {\n id: visId,\n title: display,\n description: visDescription,\n type,\n data,\n }\n })\n\n if (hasScorecard) ScorecardsUtils.mergeScorecardsIntoGroup(visualisations)\n\n return { id, title, description, visualisations }\n })\n}\n\nconst updateStore = async (\n services: Services,\n tableId: string,\n userId: string,\n sections: DashboardUISection[],\n url: Url,\n req: Request,\n filters: FilterValue[],\n) => {\n const dashboardRequestData: RequestedReport = await services.requestedReportService.getReportByTableId(\n tableId,\n userId,\n )\n\n // Add to recently viewed\n if (sections && sections.length && dashboardRequestData) {\n UserReportsUtils.updateLastViewed({\n services,\n reportStateData: dashboardRequestData,\n userId,\n req,\n filters,\n })\n }\n\n return dashboardRequestData\n}\n\nexport const renderAsyncDashboard = async ({ req, res, services, next }: AsyncReportUtilsParams) => {\n const { token, csrfToken, dprUser, nestedBaseUrl } = LocalsHelper.getValues(res)\n const { reportId, id, tableId } = req.params\n const url = parseUrl(req)\n\n // Get the definition Data\n const { query, filters, reportDefinition, dashboardDefinition } = await getDefinitionData({\n req,\n res,\n services,\n })\n\n // Get the results data\n const dashboardData: DashboardDataResponse[][] = await services.dashboardService.getAsyncDashboard(\n token,\n id,\n reportId,\n tableId,\n query,\n )\n\n const flattenedData: DashboardDataResponse[] = dashboardData.flat()\n\n // Get the dashboard parts\n const sections: DashboardUISection[] = getSections(dashboardDefinition, flattenedData)\n\n // Update the store\n const dashboardRequestData = await updateStore(services, tableId, dprUser.id, sections, url, req, filters.filters)\n\n return {\n dashboardData: {\n token,\n id,\n reportId,\n name: dashboardDefinition.name,\n description: dashboardDefinition.description,\n reportName: reportDefinition.name,\n bookmarked: await services.bookmarkService.isBookmarked(id, reportId, dprUser.id),\n nestedBaseUrl,\n csrfToken,\n sections,\n filters,\n type: ReportType.DASHBOARD,\n actions: setDashboardActions(dashboardDefinition, reportDefinition, dashboardRequestData),\n },\n }\n}\n\nexport default {\n renderAsyncDashboard,\n}\n"],
5
- "mappings": "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",
6
- "names": ["utils_exports", "__export", "utils_default", "renderAsyncDashboard", "__toCommonJS", "import_parseurl", "import_types", "import_UserReports", "import_utils", "import_definitionUtils", "import_ReportQuery", "import_localsHelper", "import_filtersTypeEnum", "setDashboardActions", "dashboardDefinition", "reportDefinition", "requestData", "reportName", "name", "actionsUrl", "executionId", "ReportActionsUtils", "getDefinitionData", "req", "res", "services", "next", "token", "LocalsHelper", "reportId", "id", "dataProductDefinitionsPath", "DefinitionUtils", "filtersData", "FilterUtils", "filtersQuery", "ReportQuery", "getSections", "dashboardData", "section", "title", "description", "hasScorecard", "visualisations", "visDefinition", "type", "display", "visDescription", "visId", "data", "DashboardListUtils", "ScorecardsUtils", "ChartUtils", "updateStore", "tableId", "userId", "sections", "url", "filters", "dashboardRequestData", "UserReportsUtils", "csrfToken", "dprUser", "nestedBaseUrl", "parseUrl", "query", "flattenedData"]
4
+ "sourcesContent": ["import parseUrl from 'parseurl'\nimport { Url } from 'url'\nimport { Request } from 'express'\nimport type { AsyncReportUtilsParams } from '../../../../../types/AsyncReportUtils'\n\nimport {\n DashboardUIVisualisation,\n DashboardVisualisationType,\n ListVisualisation,\n type DashboardDefinition,\n type DashboardSection,\n type DashboardUISection,\n type DashboardVisualisation,\n} from '../../../../../components/_dashboards/dashboard/types'\nimport type { DashboardDataResponse } from '../../../../../types/Metrics'\nimport type { RequestedReport } from '../../../../../types/UserReports'\nimport { ReportType } from '../../../../../types/UserReports'\nimport type { components } from '../../../../../types/api'\n\nimport ChartUtils from '../../../../../components/_charts/utils'\nimport DefinitionUtils from '../../../../../utils/definitionUtils'\nimport UserReportsUtils from '../../../../../components/user-reports/utils'\nimport DashboardListUtils from '../../../../../components/_dashboards/dashboard-list/utils'\nimport FilterUtils from '../../../../../components/_filters/utils'\nimport ScorecardsUtils from '../../../../../components/_dashboards/scorecard/utils'\nimport ReportActionsUtils from '../../../../../components/_reports/report-actions/utils'\nimport ReportQuery from '../../../../../types/ReportQuery'\nimport LocalsHelper from '../../../../../utils/localsHelper'\nimport { Services } from '../../../../../types/Services'\nimport { FilterValue } from '../../../../../components/_filters/types'\nimport { FiltersType } from '../../../../../components/_filters/filtersTypeEnum'\n\nconst setDashboardActions = (\n dashboardDefinition: DashboardDefinition,\n reportDefinition: components['schemas']['ReportDefinitionSummary'],\n requestData: RequestedReport,\n) => {\n const reportName = reportDefinition.name\n const { name } = dashboardDefinition\n const actionsUrl = requestData.url.request.fullUrl\n const { executionId } = requestData\n\n return ReportActionsUtils.getActions({\n share: {\n reportName,\n name,\n url: actionsUrl,\n },\n refresh: {\n url: actionsUrl,\n executionId,\n },\n copy: {\n url: actionsUrl,\n },\n })\n}\n\nconst getDefinitionData = async ({ req, res, services, next }: AsyncReportUtilsParams) => {\n const { token } = LocalsHelper.getValues(res)\n const { reportId, id } = req.params\n const { dataProductDefinitionsPath } = req.query\n\n // Dashboard Definition,\n const dashboardDefinition: DashboardDefinition = await services.dashboardService.getDefinition(\n token,\n reportId,\n id,\n dataProductDefinitionsPath,\n )\n\n // Report summary data\n const reportDefinition = await DefinitionUtils.getReportSummary(\n reportId,\n services.reportingService,\n token,\n <string>dataProductDefinitionsPath,\n )\n\n // Get the filters\n const filtersData = await FilterUtils.getFilters({\n fields: dashboardDefinition.filterFields || [],\n req,\n filtersType: FiltersType.INTERACTIVE,\n })\n\n const filtersQuery = FilterUtils.setRequestQueryFromFilterValues(filtersData.filters)\n\n // Create the query\n const query = new ReportQuery({\n fields: dashboardDefinition.filterFields || [],\n queryParams: filtersQuery,\n definitionsPath: <string>dataProductDefinitionsPath,\n reportType: ReportType.DASHBOARD,\n }).toRecordWithFilterPrefix(true)\n\n return {\n query,\n filters: filtersData,\n dashboardDefinition,\n reportDefinition,\n }\n}\n\nconst getSections = (\n dashboardDefinition: DashboardDefinition,\n dashboardData: DashboardDataResponse[],\n query: Record<string, string | string[]>,\n): DashboardUISection[] => {\n return dashboardDefinition.sections.map((section: DashboardSection) => {\n const { id, display: title, description } = section\n\n let hasScorecard = false\n const visualisations = section.visualisations.map((visDefinition: DashboardVisualisation) => {\n const { type, display, description: visDescription, id: visId } = visDefinition\n\n let data: DashboardUIVisualisation['data']\n\n switch (type) {\n case DashboardVisualisationType.LIST:\n data = DashboardListUtils.createList(visDefinition as ListVisualisation, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD:\n hasScorecard = true\n data = ScorecardsUtils.createScorecard(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.SCORECARD_GROUP:\n data = ScorecardsUtils.createScorecards(visDefinition, dashboardData)\n break\n\n case DashboardVisualisationType.BAR:\n case DashboardVisualisationType.LINE:\n case DashboardVisualisationType.DONUT: {\n data = ChartUtils.createChart(visDefinition, dashboardData)\n break\n }\n case DashboardVisualisationType.MATRIX:\n case DashboardVisualisationType.MATRIX_TIMESERIES: {\n data = ChartUtils.createMatrixChart(visDefinition, dashboardData, query)\n break\n }\n case DashboardVisualisationType.BAR_TIMESERIES:\n case DashboardVisualisationType.LINE_TIMESERIES: {\n data = ChartUtils.createTimeseriesCharts(visDefinition, dashboardData)\n break\n }\n default:\n break\n }\n\n return {\n id: visId,\n title: display,\n description: visDescription,\n type,\n data,\n }\n })\n\n if (hasScorecard) ScorecardsUtils.mergeScorecardsIntoGroup(visualisations)\n\n return { id, title, description, visualisations }\n })\n}\n\nconst updateStore = async (\n services: Services,\n tableId: string,\n userId: string,\n sections: DashboardUISection[],\n url: Url,\n req: Request,\n filters: FilterValue[],\n) => {\n const dashboardRequestData: RequestedReport = await services.requestedReportService.getReportByTableId(\n tableId,\n userId,\n )\n\n // Add to recently viewed\n if (sections && sections.length && dashboardRequestData) {\n UserReportsUtils.updateLastViewed({\n services,\n reportStateData: dashboardRequestData,\n userId,\n req,\n filters,\n })\n }\n\n return dashboardRequestData\n}\n\nexport const renderAsyncDashboard = async ({ req, res, services, next }: AsyncReportUtilsParams) => {\n const { token, csrfToken, dprUser, nestedBaseUrl } = LocalsHelper.getValues(res)\n const { reportId, id, tableId } = req.params\n const url = parseUrl(req)\n\n // Get the definition Data\n const { query, filters, reportDefinition, dashboardDefinition } = await getDefinitionData({\n req,\n res,\n services,\n })\n\n // Get the results data\n const dashboardData: DashboardDataResponse[][] = await services.dashboardService.getAsyncDashboard(\n token,\n id,\n reportId,\n tableId,\n query,\n )\n\n const flattenedData: DashboardDataResponse[] = dashboardData.flat()\n\n // Get the dashboard parts\n const sections: DashboardUISection[] = getSections(dashboardDefinition, flattenedData, query)\n\n // Update the store\n const dashboardRequestData = await updateStore(services, tableId, dprUser.id, sections, url, req, filters.filters)\n\n return {\n dashboardData: {\n token,\n id,\n reportId,\n name: dashboardDefinition.name,\n description: dashboardDefinition.description,\n reportName: reportDefinition.name,\n bookmarked: await services.bookmarkService.isBookmarked(id, reportId, dprUser.id),\n nestedBaseUrl,\n csrfToken,\n sections,\n filters,\n type: ReportType.DASHBOARD,\n actions: setDashboardActions(dashboardDefinition, reportDefinition, dashboardRequestData),\n },\n }\n}\n\nexport default {\n renderAsyncDashboard,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["utils_exports", "__export", "utils_default", "renderAsyncDashboard", "__toCommonJS", "import_parseurl", "import_types", "import_UserReports", "import_utils", "import_definitionUtils", "import_ReportQuery", "import_localsHelper", "import_filtersTypeEnum", "setDashboardActions", "dashboardDefinition", "reportDefinition", "requestData", "reportName", "name", "actionsUrl", "executionId", "ReportActionsUtils", "getDefinitionData", "req", "res", "services", "next", "token", "LocalsHelper", "reportId", "id", "dataProductDefinitionsPath", "DefinitionUtils", "filtersData", "FilterUtils", "filtersQuery", "ReportQuery", "getSections", "dashboardData", "query", "section", "title", "description", "hasScorecard", "visualisations", "visDefinition", "type", "display", "visDescription", "visId", "data", "DashboardListUtils", "ScorecardsUtils", "ChartUtils", "updateStore", "tableId", "userId", "sections", "url", "filters", "dashboardRequestData", "UserReportsUtils", "csrfToken", "dprUser", "nestedBaseUrl", "parseUrl", "flattenedData"]
7
7
  }
@@ -105,6 +105,7 @@ const getDefinitionData = async ({ req, res, services, next }: AsyncReportUtilsP
105
105
  const getSections = (
106
106
  dashboardDefinition: DashboardDefinition,
107
107
  dashboardData: DashboardDataResponse[],
108
+ query: Record<string, string | string[]>,
108
109
  ): DashboardUISection[] => {
109
110
  return dashboardDefinition.sections.map((section: DashboardSection) => {
110
111
  const { id, display: title, description } = section
@@ -131,12 +132,20 @@ const getSections = (
131
132
 
132
133
  case DashboardVisualisationType.BAR:
133
134
  case DashboardVisualisationType.LINE:
134
- case DashboardVisualisationType.BAR_TIMESERIES:
135
- case DashboardVisualisationType.LINE_TIMESERIES:
136
135
  case DashboardVisualisationType.DONUT: {
137
136
  data = ChartUtils.createChart(visDefinition, dashboardData)
138
137
  break
139
138
  }
139
+ case DashboardVisualisationType.MATRIX:
140
+ case DashboardVisualisationType.MATRIX_TIMESERIES: {
141
+ data = ChartUtils.createMatrixChart(visDefinition, dashboardData, query)
142
+ break
143
+ }
144
+ case DashboardVisualisationType.BAR_TIMESERIES:
145
+ case DashboardVisualisationType.LINE_TIMESERIES: {
146
+ data = ChartUtils.createTimeseriesCharts(visDefinition, dashboardData)
147
+ break
148
+ }
140
149
  default:
141
150
  break
142
151
  }
@@ -208,7 +217,7 @@ export const renderAsyncDashboard = async ({ req, res, services, next }: AsyncRe
208
217
  const flattenedData: DashboardDataResponse[] = dashboardData.flat()
209
218
 
210
219
  // Get the dashboard parts
211
- const sections: DashboardUISection[] = getSections(dashboardDefinition, flattenedData)
220
+ const sections: DashboardUISection[] = getSections(dashboardDefinition, flattenedData, query)
212
221
 
213
222
  // Update the store
214
223
  const dashboardRequestData = await updateStore(services, tableId, dprUser.id, sections, url, req, filters.filters)
@@ -1,2 +1,2 @@
1
- var x=Object.create;var b=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var g=(n,a,d,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of v(a))!V.call(n,i)&&i!==d&&b(n,i,{get:()=>a[i],enumerable:!(o=B(a,i))||o.enumerable});return n};var w=(n,a,d)=>(d=n!=null?x(F(n)):{},g(a||!n||!n.__esModule?b(d,"default",{value:n,enumerable:!0}):d,n));var l=require("../../../../../../../cypress-tests/cypressUtils"),f=w(require("../../../../../utils/DateMapper/DateMapper"));context("Viewing a report",()=>{const n="/embedded/platform/";let a,d;describe("List report page",()=>{before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubReportStatusMock"),cy.task("stubReportsFinishedStatus"),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubReportsFinishedStatus"),cy.task("stubTestDashboard8"),cy.task("stubMockDashboardsStatusFinished"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessResult10"),cy.task("stubRequestSuccessReportTablesCount"),cy.task("stubRequestSuccessResult100"),cy.task("stubViewAsyncReportingResults"),(0,l.requestReport)({name:"Successful Report",description:"this will succeed",path:n}),cy.url().then(o=>{a=o;const i=o.split("/");d=i[i.length-2]})}),beforeEach(()=>{cy.visit(a)}),describe("Report details",()=>{it("should show the report details",()=>{cy.findAllByRole("group").contains("Report details").should("be.visible").click(),cy.findAllByRole("group").contains("Report details").parent().parent().within(()=>{cy.findAllByRole("row").each((o,i)=>{cy.wrap(o).within(()=>{switch(i){case 0:cy.findAllByRole("cell",{name:"Name:"}).should("exist"),cy.findAllByRole("cell",{name:"Successful Report"}).should("exist");break;case 1:cy.findAllByRole("cell",{name:"Product:"}).should("exist"),cy.findAllByRole("cell",{name:"Successful Report"}).should("exist");break;case 2:cy.findAllByRole("cell",{name:"Description:"}).should("exist"),cy.findAllByRole("cell",{name:"this will succeed"}).should("exist");break;case 3:cy.findAllByRole("cell",{name:"Classification:"}).should("exist"),cy.findAllByRole("cell",{name:"OFFICIAL"}).should("exist");break;case 4:cy.findAllByRole("cell",{name:"Requested at:"}).should("exist"),cy.findAllByRole("cell",{name:/\d{1,2}\/\d{1,2}\/\d{2,4}/}).should("exist");break;case 5:cy.findAllByRole("cell",{name:"Applied Filters:"}).should("exist"),cy.findAllByRole("listitem").each((t,e)=>{switch(e){case 0:cy.wrap(t).contains("Field 1: value1.2");break;case 1:cy.wrap(t).contains("Field 3 start: 01/02/2003");break;case 2:cy.wrap(t).contains("Field 3 end: 04/05/2006");break;case 3:cy.wrap(t).contains("Field 7: 01/02/2005");break;case 4:cy.wrap(t).contains("Field 8: value8.2,value8.3");break;case 5:cy.wrap(t).contains("Sort column: Field 1");break;case 6:cy.wrap(t).contains("Sort direction: Descending");break;default:break}});break;default:break}})})})})}),describe("Actions",()=>{it("should show the actions and go to the filters page when refresh action is clicked",()=>{cy.findByLabelText("Refresh report").should("be.visible"),cy.findByLabelText(/Print screen/).should("be.visible").should("be.disabled"),cy.findByLabelText(/download/).should("be.visible"),cy.findByLabelText(/Copy report link/).should("be.visible"),cy.findByRole("button",{name:/Add bookmark/}).should("be.visible"),cy.findByLabelText("Refresh report").should("be.visible").click(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/request-report\/report\/request-examples\/request-example-success\/filters/i),cy.location().should(o=>{expect(o.search).to.contain("filters.field1=value1.2"),expect(o.search).to.contain("filters.field3.start=2003-02-01"),expect(o.search).to.contain("filters.field3.end=2006-05-04"),expect(o.search).to.contain("filters.field7=2005-02-01"),expect(o.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")})})}),describe("Column interactions",()=>{const o=()=>{cy.findByRole("checkbox",{name:"Field 1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("not.be.checked"),cy.location().should(e=>{expect(e.search).to.contain("columns=field1"),expect(e.search).to.contain("columns=field2"),expect(e.search).to.contain("columns=field3"),expect(e.search).not.to.contain("columns=field4"),expect(e.search).not.to.contain("columns=field5"),expect(e.search).to.contain("columns=field6"),expect(e.search).to.contain("columns=field7"),expect(e.search).not.to.contain("columns=field8")}),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("row").eq(1).within(()=>{cy.findAllByRole("columnheader").should("have.length",5)})})})},i=()=>{cy.findByRole("checkbox",{name:"Field 1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("be.checked"),cy.location().should(e=>{expect(e.search).not.to.contain("columns=field1"),expect(e.search).to.contain("columns=field2"),expect(e.search).not.to.contain("columns=field3"),expect(e.search).not.to.contain("columns=field4"),expect(e.search).to.contain("columns=field5"),expect(e.search).to.contain("columns=field6"),expect(e.search).not.to.contain("columns=field7"),expect(e.search).to.contain("columns=field8")}),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("row").eq(1).within(()=>{cy.findAllByRole("columnheader").should("have.length",4)})})})},t=()=>{cy.findByRole("checkbox",{name:"Field 1"}).uncheck(),cy.findByRole("checkbox",{name:"Field 3"}).uncheck(),cy.findByRole("checkbox",{name:"Field 5"}).check(),cy.findByRole("checkbox",{name:"Field 7"}).uncheck(),cy.findByRole("checkbox",{name:"Field 8"}).check()};it("should initialise the column content correctly",()=>{cy.findAllByRole("group").contains(/Show columns/).should("be.visible").click(),o(),cy.findAllByRole("group").contains("Show columns (5 of 8 shown)"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("columnheader").each((e,s)=>{switch(s){case 0:cy.wrap(e).contains("Field 1");break;case 1:cy.wrap(e).contains("Field 2");break;case 2:cy.wrap(e).contains("Field 3");break;case 3:cy.wrap(e).contains("Field 6");break;case 4:cy.wrap(e).contains("Field 7");break;default:break}})})})}),it("should apply the columns",()=>{cy.findAllByRole("group").contains(/Show columns/).click(),t(),cy.findByRole("button",{name:"Apply columns"}).click(),i(),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("columnheader").each((e,s)=>{switch(s){case 0:cy.wrap(e).contains("Field 2");break;case 1:cy.wrap(e).contains("Field 5");break;case 2:cy.wrap(e).contains("Field 6");break;case 3:cy.wrap(e).contains("Field 8");break;default:break}})})})}),it("should reset the columns to their DPD defaults",()=>{cy.findAllByRole("group").contains(/Show columns/).click(),t(),cy.findByRole("button",{name:"Apply columns"}).click(),i(),cy.findAllByRole("group").contains(/Show columns/).click(),cy.findByRole("link",{name:"Reset columns"}).click(),o()}),it("should apply the columns from the URL",()=>{cy.visit(`/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${d}/report?columns=field1&columns=field5&columns=field8`),cy.findByRole("checkbox",{name:"Field 1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("be.checked"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("columnheader").each((e,s)=>{switch(s){case 0:cy.wrap(e).contains("Field 1");break;case 1:cy.wrap(e).contains("Field 2");break;case 2:cy.wrap(e).contains("Field 5");break;case 3:cy.wrap(e).contains("Field 6");break;case 4:cy.wrap(e).contains("Field 8");break;default:break}})})})}),it("should only apply mandatory columms",()=>{cy.findAllByRole("group").contains(/Show columns/).click(),cy.findByRole("checkbox",{name:"Field 1"}).uncheck(),cy.findByRole("checkbox",{name:"Field 3"}).uncheck(),cy.findByRole("checkbox",{name:"Field 7"}).uncheck(),cy.findByRole("button",{name:"Apply columns"}).click(),cy.findByRole("checkbox",{name:"Field 1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("not.be.checked"),cy.location().should(e=>{expect(e.search).not.to.contain("columns=field1"),expect(e.search).to.contain("columns=field2"),expect(e.search).not.to.contain("columns=field3"),expect(e.search).not.to.contain("columns=field4"),expect(e.search).not.to.contain("columns=field5"),expect(e.search).to.contain("columns=field6"),expect(e.search).not.to.contain("columns=field7"),expect(e.search).not.to.contain("columns=field8")}),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("row").eq(1).within(()=>{cy.findAllByRole("columnheader").should("have.length",2)})})})})}),describe("Paging interaction",()=>{it("should show the table totals",()=>{cy.findAllByRole("paragraph").contains(/Showing \d{1,4} to \d{1,4} of \d{1,4} results/).should("exist"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(1).within(()=>{cy.findAllByRole("row").should("have.length",20)})})}),it("should change the page size",()=>{cy.get("#page-size-select").select("10"),cy.findAllByRole("paragraph").contains(/Showing 1 to 10 of 100 results/).should("exist"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(1).within(()=>{cy.findAllByRole("row").should("have.length",10)})})}),it("should change the page size via the URL",()=>{cy.visit(`/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${d}/report?pageSize=100`),cy.findAllByRole("paragraph").contains(/100 total results/).should("exist"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(1).within(()=>{cy.findAllByRole("row").should("have.length",100)})})}),it("should change the page",()=>{cy.findByLabelText("Page 5").click(),cy.location().should(o=>{expect(o.search).to.contain("selectedPage=5")})}),it("should change the page via the URL",()=>{cy.visit(`/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${d}/report?selectedPage=3`),cy.findByRole("link",{current:"page"}).contains("3")})})}),describe("Interactive report",()=>{const o=()=>{cy.findByRole("button",{name:"Apply filters"}).click()},i=()=>{cy.findAllByRole("group").contains(/Show filters/).click()};before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubDefinitionFeatureTestingInteractive"),cy.task("stubReportStatusMock"),cy.task("stubAsyncRequestSuccessReportTablesCount"),cy.task("stubViewAsyncReportingResults"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessResult100")}),describe("Apply filters",()=>{before(()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(e=>{a=e})}),beforeEach(()=>{cy.visit(a)});const t=()=>{for(let e=0;e<4;e+=1)cy.findByLabelText("Selected filters").within(()=>{cy.findAllByRole("link").first().click()})};describe("Date range",()=>{it("should apply the date range",()=>{cy.findByRole("textbox",{name:"From"}).should("have.value","01/02/2003"),cy.findByRole("textbox",{name:"To"}).should("have.value","04/05/2006"),t(),i(),cy.findByRole("textbox",{name:"From"}).type("02/05/2025"),cy.findByRole("textbox",{name:"To"}).type("05/07/2025").blur(),o(),cy.location().should(e=>{expect(e.search).to.contain("filters.field3.start=2025-05-02"),expect(e.search).to.contain("filters.field3.end=2025-07-05")}),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 3",value:"02/05/2025 - 05/07/2025"}]})}),it("should apply the relative daterange",()=>{t(),i(),cy.findByRole("tab",{name:"Preset date ranges"}).click(),cy.findByRole("radio",{name:"Tomorrow"}).check(),o();let e,s;cy.findByRole("textbox",{name:"From"}).invoke("val").should("not.be.empty").then(c=>{e=c}),cy.findByRole("textbox",{name:"To"}).invoke("val").should("not.be.empty").then(c=>{s=c});const u=new f.default;cy.location().should(c=>{expect(c.search).to.contain(`filters.field3.start=${u.toDateString(e,"iso")}`),expect(c.search).to.contain(`filters.field3.end=${u.toDateString(s,"iso")}`),expect(c.search).to.contain("filters.field3.relative-duration=tomorrow")}),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 3",value:"Tomorrow"}]})})}),describe("Multiselect",()=>{it("should apply the multiselect values",()=>{cy.findByRole("checkbox",{name:"Value 8.2"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),t(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.3"}).check(),o(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 8",value:"Value 8.1, Value 8.3"}]})}),it("should set the selected filter values correctly",()=>{cy.findByRole("checkbox",{name:"Value 8.2"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),t(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.2"}).check(),cy.findByRole("checkbox",{name:"Value 8.3"}).check(),cy.findByRole("checkbox",{name:"Value 8.4"}).check(),o(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("be.checked"),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}]})}),it("should set the values correctly when only one checkbox selected",()=>{t(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),o(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 8",value:"Value 8.1"}]})})})}),describe("User defined interactive defaults",()=>{const t=()=>cy.findByRole("button",{name:"Save current filter values as defaults"}),e=()=>cy.findByRole("button",{name:"Update defaults"}),s=()=>cy.findByRole("button",{name:"Delete defaults"}),u=({name:c,product:y,length:p,selectedFilters:k})=>{cy.findByLabelText(/Viewed \(/).within(()=>{cy.findByRole("row",{name:(r,h)=>h.textContent.includes(c)&&h.textContent.includes(y)}).within(()=>{cy.findAllByRole("listitem").should("have.length",p).each((r,h)=>{if(k[h]){const{key:m,value:R}=k[h];cy.wrap(r).contains(m),cy.wrap(r).contains(R)}})})})};it("should save the interactive filters correctly",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.4"}).check(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.2"),o();const c=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:c}),t().click(),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:6,buttonValues:c})}),it("should init the report with saved interactive defaults",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(y=>{a=y}),e().should("exist"),s().should("exist");const c=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:c}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:c})}),it("should reset the filter values to the saved defaults",()=>{cy.visit(a),e().should("exist"),s().should("exist");const c=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:c}),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).uncheck(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.3"),o(),(0,l.checkSelectedFilterValues)({length:6,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.4"}]}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.4"}]}),cy.visit(a),cy.findByRole("link",{name:"Reset filters"}).click(),(0,l.checkSelectedFilterValues)({length:6,buttonValues:c}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:c})}),it("should update the filter values and init the report with the updated interactive defaults",()=>{cy.visit(a),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:6,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}]}),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).uncheck(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.3"),o();const c=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.4"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:c}),e().click(),(0,l.checkSelectedFilterValues)({length:6,buttonValues:c}),(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(y=>{a=y}),(0,l.checkSelectedFilterValues)({length:6,buttonValues:c}),e().should("exist"),s().should("exist"),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:c})}),it("should delete the saved defaults",()=>{cy.visit(a),(0,l.checkSelectedFilterValues)({length:6,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.4"}]}),s().click(),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:4,selectedFilters:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]})}),describe("Input types",()=>{describe("Relative date range",()=>{it("should save the relative daterange",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),i(),cy.findByRole("tab",{name:"Preset date ranges"}).click(),cy.findByRole("radio",{name:"Tomorrow"}).check(),o();const c=[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"Tomorrow"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}];(0,l.checkSelectedFilterValues)({length:5,buttonValues:c}),t().click(),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:5,buttonValues:c}),(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:c}),s().click()})}),describe("Multiselect",()=>{it("should save a single multiselect value",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),i(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),o();const c=[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2"}];(0,l.checkSelectedFilterValues)({length:5,buttonValues:c}),t().click(),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:5,buttonValues:c}),(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:c})})})})}),describe("Sorting",()=>{before(()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(t=>{a=t})}),beforeEach(()=>{cy.visit(a)}),it("should show the sort direction in the column header and the url",()=>{cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-ascending"),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-none"),cy.findByRole("link",{name:"Field 1"}).click(),cy.location().should(t=>{expect(t.search).to.contain("&sortColumn=field1&sortedAsc=false")}),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-descending"),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-none"),cy.findByRole("link",{name:"Field 1"}).click(),cy.location().should(t=>{expect(t.search).to.contain("&sortColumn=field1&sortedAsc=true")}),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-ascending"),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-none"),cy.findByRole("link",{name:"Field 2"}).click(),cy.location().should(t=>{expect(t.search).to.contain("&sortColumn=field2&sortedAsc=true")}),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-ascending"),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-none"),cy.findByRole("link",{name:"Field 2"}).click(),cy.location().should(t=>{expect(t.search).to.contain("&sortColumn=field2&sortedAsc=false")}),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-descending"),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-none")})})})});
1
+ var x=Object.create;var b=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var g=(n,a,d,o)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of v(a))!V.call(n,i)&&i!==d&&b(n,i,{get:()=>a[i],enumerable:!(o=B(a,i))||o.enumerable});return n};var w=(n,a,d)=>(d=n!=null?x(F(n)):{},g(a||!n||!n.__esModule?b(d,"default",{value:n,enumerable:!0}):d,n));var l=require("../../../../../../../cypress-tests/cypressUtils"),f=w(require("../../../../../utils/DateMapper/DateMapper"));context("Viewing a report",()=>{const n="/embedded/platform/";let a,d;describe("List report page",()=>{before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubReportStatusMock"),cy.task("stubReportsFinishedStatus"),cy.task("stubDefinitionRequestExamplesSuccess"),cy.task("stubReportsFinishedStatus"),cy.task("stubTestDashboard8"),cy.task("stubMockDashboardsStatusFinished"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessResult10"),cy.task("stubRequestSuccessReportTablesCount"),cy.task("stubRequestSuccessResult100"),cy.task("stubViewAsyncReportingResults"),(0,l.requestReport)({name:"Successful Report",description:"this will succeed",path:n}),cy.url().then(o=>{a=o;const i=o.split("/");d=i[i.length-2]})}),beforeEach(()=>{cy.visit(a)}),describe("Report details",()=>{it("should show the report details",()=>{cy.findAllByRole("group").contains("Report details").should("be.visible").click(),cy.findAllByRole("group").contains("Report details").parent().parent().within(()=>{cy.findAllByRole("row").each((o,i)=>{cy.wrap(o).within(()=>{switch(i){case 0:cy.findAllByRole("cell",{name:"Name:"}).should("exist"),cy.findAllByRole("cell",{name:"Successful Report"}).should("exist");break;case 1:cy.findAllByRole("cell",{name:"Product:"}).should("exist"),cy.findAllByRole("cell",{name:"Successful Report"}).should("exist");break;case 2:cy.findAllByRole("cell",{name:"Description:"}).should("exist"),cy.findAllByRole("cell",{name:"this will succeed"}).should("exist");break;case 3:cy.findAllByRole("cell",{name:"Classification:"}).should("exist"),cy.findAllByRole("cell",{name:"OFFICIAL"}).should("exist");break;case 4:cy.findAllByRole("cell",{name:"Requested at:"}).should("exist"),cy.findAllByRole("cell",{name:/\d{1,2}\/\d{1,2}\/\d{2,4}/}).should("exist");break;case 5:cy.findAllByRole("cell",{name:"Applied Filters:"}).should("exist"),cy.findAllByRole("listitem").each((c,e)=>{switch(e){case 0:cy.wrap(c).contains("Field 1: value1.2");break;case 1:cy.wrap(c).contains("Field 3 start: 01/02/2003");break;case 2:cy.wrap(c).contains("Field 3 end: 04/05/2006");break;case 3:cy.wrap(c).contains("Field 7: 01/02/2005");break;case 4:cy.wrap(c).contains("Field 8: value8.2,value8.3");break;case 5:cy.wrap(c).contains("Sort column: Field 1");break;case 6:cy.wrap(c).contains("Sort direction: Descending");break;default:break}});break;default:break}})})})})}),describe("Actions",()=>{it("should show the actions and go to the filters page when refresh action is clicked",()=>{cy.findByLabelText("Refresh report").should("be.visible"),cy.findByLabelText(/Print screen/).should("be.visible").should("be.disabled"),cy.findByLabelText(/download/).should("be.visible"),cy.findByLabelText(/Copy report link/).should("be.visible"),cy.findByRole("button",{name:/Add bookmark/}).should("be.visible"),cy.findByLabelText("Refresh report").should("be.visible").click(),cy.url().should("match",/.*\/embedded\/platform\/dpr\/request-report\/report\/request-examples\/request-example-success\/filters/i),cy.location().should(o=>{expect(o.search).to.contain("filters.field1=value1.2"),expect(o.search).to.contain("filters.field3.start=2003-02-01"),expect(o.search).to.contain("filters.field3.end=2006-05-04"),expect(o.search).to.contain("filters.field7=2005-02-01"),expect(o.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")})})}),describe("Column interactions",()=>{const o=()=>{cy.findByRole("checkbox",{name:"Field 1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("not.be.checked"),cy.location().should(e=>{expect(e.search).to.contain("columns=field1"),expect(e.search).to.contain("columns=field2"),expect(e.search).to.contain("columns=field3"),expect(e.search).not.to.contain("columns=field4"),expect(e.search).not.to.contain("columns=field5"),expect(e.search).to.contain("columns=field6"),expect(e.search).to.contain("columns=field7"),expect(e.search).not.to.contain("columns=field8")}),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("row").eq(1).within(()=>{cy.findAllByRole("columnheader").should("have.length",5)})})})},i=()=>{cy.findByRole("checkbox",{name:"Field 1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("be.checked"),cy.location().should(e=>{expect(e.search).not.to.contain("columns=field1"),expect(e.search).to.contain("columns=field2"),expect(e.search).not.to.contain("columns=field3"),expect(e.search).not.to.contain("columns=field4"),expect(e.search).to.contain("columns=field5"),expect(e.search).to.contain("columns=field6"),expect(e.search).not.to.contain("columns=field7"),expect(e.search).to.contain("columns=field8")}),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("row").eq(1).within(()=>{cy.findAllByRole("columnheader").should("have.length",4)})})})},c=()=>{cy.findByRole("checkbox",{name:"Field 1"}).uncheck(),cy.findByRole("checkbox",{name:"Field 3"}).uncheck(),cy.findByRole("checkbox",{name:"Field 5"}).check(),cy.findByRole("checkbox",{name:"Field 7"}).uncheck(),cy.findByRole("checkbox",{name:"Field 8"}).check()};it("should initialise the column content correctly",()=>{cy.findAllByRole("group").contains(/Show columns/).should("be.visible").click(),o(),cy.findAllByRole("group").contains("Show columns (5 of 8 shown)"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("columnheader").each((e,s)=>{switch(s){case 0:cy.wrap(e).contains("Field 1");break;case 1:cy.wrap(e).contains("Field 2");break;case 2:cy.wrap(e).contains("Field 3");break;case 3:cy.wrap(e).contains("Field 6");break;case 4:cy.wrap(e).contains("Field 7");break;default:break}})})})}),it("should apply the columns",()=>{cy.findAllByRole("group").contains(/Show columns/).click(),c(),cy.findByRole("button",{name:"Apply columns"}).click(),i(),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("columnheader").each((e,s)=>{switch(s){case 0:cy.wrap(e).contains("Field 2");break;case 1:cy.wrap(e).contains("Field 5");break;case 2:cy.wrap(e).contains("Field 6");break;case 3:cy.wrap(e).contains("Field 8");break;default:break}})})})}),it("should reset the columns to their DPD defaults",()=>{cy.findAllByRole("group").contains(/Show columns/).click(),c(),cy.findByRole("button",{name:"Apply columns"}).click(),i(),cy.findAllByRole("group").contains(/Show columns/).click(),cy.findByRole("link",{name:"Reset columns"}).click(),o()}),it("should apply the columns from the URL",()=>{cy.visit(`/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${d}/report?columns=field1&columns=field5&columns=field8`),cy.findByRole("checkbox",{name:"Field 1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("be.checked"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("columnheader").each((e,s)=>{switch(s){case 0:cy.wrap(e).contains("Field 1");break;case 1:cy.wrap(e).contains("Field 2");break;case 2:cy.wrap(e).contains("Field 5");break;case 3:cy.wrap(e).contains("Field 6");break;case 4:cy.wrap(e).contains("Field 8");break;default:break}})})})}),it("should only apply mandatory columms",()=>{cy.findAllByRole("group").contains(/Show columns/).click(),cy.findByRole("checkbox",{name:"Field 1"}).uncheck(),cy.findByRole("checkbox",{name:"Field 3"}).uncheck(),cy.findByRole("checkbox",{name:"Field 7"}).uncheck(),cy.findByRole("button",{name:"Apply columns"}).click(),cy.findByRole("checkbox",{name:"Field 1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 2"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 4"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 5"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 6"}).should("be.checked").should("be.disabled"),cy.findByRole("checkbox",{name:"Field 7"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Field 8"}).should("not.be.checked"),cy.location().should(e=>{expect(e.search).not.to.contain("columns=field1"),expect(e.search).to.contain("columns=field2"),expect(e.search).not.to.contain("columns=field3"),expect(e.search).not.to.contain("columns=field4"),expect(e.search).not.to.contain("columns=field5"),expect(e.search).to.contain("columns=field6"),expect(e.search).not.to.contain("columns=field7"),expect(e.search).not.to.contain("columns=field8")}),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(0).within(()=>{cy.findAllByRole("row").eq(1).within(()=>{cy.findAllByRole("columnheader").should("have.length",2)})})})})}),describe("Paging interaction",()=>{it("should show the table totals",()=>{cy.findAllByRole("paragraph").contains(/Showing \d{1,4} to \d{1,4} of \d{1,4} results/).should("exist"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(1).within(()=>{cy.findAllByRole("row").should("have.length",20)})})}),it("should change the page size",()=>{cy.get("#page-size-select").select("10"),cy.findAllByRole("paragraph").contains(/Showing 1 to 10 of 100 results/).should("exist"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(1).within(()=>{cy.findAllByRole("row").should("have.length",10)})})}),it("should change the page size via the URL",()=>{cy.visit(`/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${d}/report?pageSize=100`),cy.findAllByRole("paragraph").contains(/100 total results/).should("exist"),cy.findByLabelText(/Successful Report/).within(()=>{cy.findAllByRole("rowgroup").eq(1).within(()=>{cy.findAllByRole("row").should("have.length",100)})})}),it("should change the page",()=>{cy.findByLabelText("Page 5").click(),cy.location().should(o=>{expect(o.search).to.contain("selectedPage=5")})}),it("should change the page via the URL",()=>{cy.visit(`/embedded/platform/dpr/view-report/async/report/request-examples/request-example-success/${d}/report?selectedPage=3`),cy.findByRole("link",{current:"page"}).contains("3")})})}),describe("Interactive report",()=>{const o=()=>{cy.findByRole("button",{name:"Apply filters"}).click()},i=()=>{cy.findAllByRole("group").contains(/Show filters/).click()};before(()=>{cy.task("resetStubs"),cy.task("resetRedis"),cy.task("stubDefinitions"),cy.task("stubDefinitionFeatureTestingInteractive"),cy.task("stubReportStatusMock"),cy.task("stubAsyncRequestSuccessReportTablesCount"),cy.task("stubViewAsyncReportingResults"),cy.task("stubRequestSuccessResult20"),cy.task("stubRequestSuccessResult100")}),describe("Apply filters",()=>{before(()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(e=>{a=e})}),beforeEach(()=>{cy.visit(a)});const c=()=>{for(let e=0;e<4;e+=1)cy.findByLabelText("Selected filters").within(()=>{cy.findAllByRole("link").first().click()})};describe("Date range",()=>{it("should apply the date range",()=>{cy.findByRole("textbox",{name:"From"}).should("have.value","01/02/2003"),cy.findByRole("textbox",{name:"To"}).should("have.value","04/05/2006"),c(),i(),cy.findByRole("textbox",{name:"From"}).type("02/05/2025"),cy.findByRole("textbox",{name:"To"}).type("05/07/2025").blur(),o(),cy.location().should(e=>{expect(e.search).to.contain("filters.field3.start=2025-05-02"),expect(e.search).to.contain("filters.field3.end=2025-07-05")}),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 3",value:"02/05/2025 - 05/07/2025"}]})}),it("should apply the relative daterange",()=>{c(),i(),cy.findByRole("tab",{name:"Preset date ranges"}).click(),cy.findByRole("radio",{name:"Tomorrow"}).check(),o();let e,s;cy.findByRole("textbox",{name:"From"}).invoke("val").should("not.be.empty").then(t=>{e=t}),cy.findByRole("textbox",{name:"To"}).invoke("val").should("not.be.empty").then(t=>{s=t});const u=new f.default;cy.location().should(t=>{expect(t.search).to.contain(`filters.field3.start=${u.toDateString(e,"iso")}`),expect(t.search).to.contain(`filters.field3.end=${u.toDateString(s,"iso")}`),expect(t.search).to.contain("filters.field3.relative-duration=tomorrow")}),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 3",value:"Tomorrow"}]})})}),describe("Multiselect",()=>{it("should apply the multiselect values",()=>{cy.findByRole("checkbox",{name:"Value 8.2"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),c(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.3"}).check(),o(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 8",value:"Value 8.1, Value 8.3"}]})}),it("should set the selected filter values correctly",()=>{cy.findByRole("checkbox",{name:"Value 8.2"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),c(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.2"}).check(),cy.findByRole("checkbox",{name:"Value 8.3"}).check(),cy.findByRole("checkbox",{name:"Value 8.4"}).check(),o(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("be.checked"),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}]})}),it("should set the values correctly when only one checkbox selected",()=>{c(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),o(),cy.findByRole("checkbox",{name:"Value 8.1"}).should("be.checked"),cy.findByRole("checkbox",{name:"Value 8.2"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.3"}).should("not.be.checked"),cy.findByRole("checkbox",{name:"Value 8.4"}).should("not.be.checked"),(0,l.checkSelectedFilterValues)({length:2,buttonValues:[{key:"Field 8",value:"Value 8.1"}]})})}),it("Applying filters should persist current applied columns",()=>{cy.findAllByRole("group").contains(/Show columns/).should("be.visible").click(),cy.findByRole("checkbox",{name:"Field 1"}).uncheck(),cy.findByRole("checkbox",{name:"Field 3"}).uncheck(),cy.findByRole("checkbox",{name:"Field 5"}).check(),cy.findByRole("checkbox",{name:"Field 7"}).uncheck(),cy.findByRole("checkbox",{name:"Field 8"}).check(),cy.findByRole("button",{name:"Apply columns"}).click(),cy.findAllByRole("group").contains("Show columns (4 of 8 shown)"),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.3"}).check(),o(),cy.findAllByRole("group").contains("Show columns (4 of 8 shown)")})}),describe("User defined interactive defaults",()=>{const c=()=>cy.findByRole("button",{name:"Save current filter values as defaults"}),e=()=>cy.findByRole("button",{name:"Update defaults"}),s=()=>cy.findByRole("button",{name:"Delete defaults"}),u=({name:t,product:y,length:p,selectedFilters:k})=>{cy.findByLabelText(/Viewed \(/).within(()=>{cy.findByRole("row",{name:(r,h)=>h.textContent.includes(t)&&h.textContent.includes(y)}).within(()=>{cy.findAllByRole("listitem").should("have.length",p).each((r,h)=>{if(k[h]){const{key:m,value:R}=k[h];cy.wrap(r).contains(m),cy.wrap(r).contains(R)}})})})};it("should save the interactive filters correctly",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).check(),cy.findByRole("checkbox",{name:"Value 8.4"}).check(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.2"),o();const t=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:t}),c().click(),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:6,buttonValues:t})}),it("should init the report with saved interactive defaults",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(y=>{a=y}),e().should("exist"),s().should("exist");const t=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:t}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:t})}),it("should reset the filter values to the saved defaults",()=>{cy.visit(a),e().should("exist"),s().should("exist");const t=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:t}),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).uncheck(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.3"),o(),(0,l.checkSelectedFilterValues)({length:6,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.4"}]}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.4"}]}),cy.visit(a),cy.findByRole("link",{name:"Reset filters"}).click(),(0,l.checkSelectedFilterValues)({length:6,buttonValues:t}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:t})}),it("should update the filter values and init the report with the updated interactive defaults",()=>{cy.visit(a),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:6,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.1, Value 8.2, Value 8.3 + 1 more"}]}),i(),cy.findByRole("checkbox",{name:"Value 8.1"}).uncheck(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),cy.findByRole("combobox",{name:"Field 2"}).select("value2.3"),o();const t=[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.4"}];(0,l.checkSelectedFilterValues)({length:6,buttonValues:t}),e().click(),(0,l.checkSelectedFilterValues)({length:6,buttonValues:t}),(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(y=>{a=y}),(0,l.checkSelectedFilterValues)({length:6,buttonValues:t}),e().should("exist"),s().should("exist"),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:5,selectedFilters:t})}),it("should delete the saved defaults",()=>{cy.visit(a),(0,l.checkSelectedFilterValues)({length:6,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 2",value:"Value 2.3"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.4"}]}),s().click(),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),cy.visit(n),cy.findByRole("tab",{name:/Viewed/}).click(),u({name:"Interactive Report",product:"Interactive Report",length:4,selectedFilters:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]})}),describe("Input types",()=>{describe("Relative date range",()=>{it("should save the relative daterange",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),i(),cy.findByRole("tab",{name:"Preset date ranges"}).click(),cy.findByRole("radio",{name:"Tomorrow"}).check(),o();const t=[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"Tomorrow"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}];(0,l.checkSelectedFilterValues)({length:5,buttonValues:t}),c().click(),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:5,buttonValues:t}),(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:t}),s().click()})}),describe("Multiselect",()=>{it("should save a single multiselect value",()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2, Value 8.3"}]}),i(),cy.findByRole("checkbox",{name:"Value 8.3"}).uncheck(),o();const t=[{key:"Field 1",value:"Value 1.2"},{key:"Field 3",value:"01/02/2003 - 04/05/2006"},{key:"Field 7",value:"01/02/2005"},{key:"Field 8",value:"Value 8.2"}];(0,l.checkSelectedFilterValues)({length:5,buttonValues:t}),c().click(),e().should("exist"),s().should("exist"),(0,l.checkSelectedFilterValues)({length:5,buttonValues:t}),(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),(0,l.checkSelectedFilterValues)({length:5,buttonValues:t}),s().click()})})})}),describe("Sorting",()=>{before(()=>{(0,l.requestReport)({name:"Interactive Report",description:"this is an interactive report",path:n}),cy.url().then(c=>{a=c})}),beforeEach(()=>{cy.visit(a)}),it("should show the sort direction in the column header and the url",()=>{cy.findByRole("link",{name:"Reset filters"}).click(),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-ascending"),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-none"),cy.findByRole("link",{name:"Field 1"}).click(),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-descending"),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-none"),cy.location().should(c=>{expect(c.search).to.contain("&sortColumn=field1&sortedAsc=false"),expect(c.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")}),cy.findByRole("link",{name:"Field 1"}).click(),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-ascending"),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-none"),cy.location().should(c=>{expect(c.search).to.contain("&sortColumn=field1&sortedAsc=true"),expect(c.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")}),cy.findByRole("link",{name:"Field 2"}).click(),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-ascending"),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-none"),cy.location().should(c=>{expect(c.search).to.contain("&sortColumn=field2&sortedAsc=true"),expect(c.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")}),cy.findByRole("link",{name:"Field 2"}).click(),cy.findByRole("link",{name:"Field 2"}).should("have.class","data-table-header-button-sort-descending"),cy.findByRole("link",{name:"Field 1"}).should("have.class","data-table-header-button-sort-none"),cy.location().should(c=>{expect(c.search).to.contain("&sortColumn=field2&sortedAsc=false"),expect(c.search).to.contain("filters.field8=value8.2&filters.field8=value8.3")})})})})});
2
2
  //# sourceMappingURL=tests.cy.js.map