@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.15.0 → 4.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dpr/components/_charts/chart/heatmap/Heatmap.js +2 -0
  2. package/dpr/components/_charts/chart/heatmap/Heatmap.js.map +7 -0
  3. package/dpr/components/_charts/chart/heatmap/Heatmap.ts +278 -0
  4. package/dpr/components/_charts/utils.js +1 -1
  5. package/dpr/components/_charts/utils.js.map +3 -3
  6. package/dpr/components/_charts/utils.ts +2 -2
  7. package/dpr/components/_dashboards/dashboard/types.js +1 -1
  8. package/dpr/components/_dashboards/dashboard/types.js.map +2 -2
  9. package/dpr/components/_dashboards/dashboard/types.ts +8 -0
  10. package/dpr/components/_dashboards/dashboard-list/utils.js +1 -1
  11. package/dpr/components/_dashboards/dashboard-list/utils.js.map +3 -3
  12. package/dpr/components/_dashboards/dashboard-list/utils.ts +3 -2
  13. package/dpr/components/user-reports/utils.js +1 -1
  14. package/dpr/components/user-reports/utils.js.map +3 -3
  15. package/dpr/components/user-reports/utils.ts +13 -3
  16. package/dpr/routes/journeys/view-report/async/report/tests.cy.js +1 -1
  17. package/dpr/routes/journeys/view-report/async/report/tests.cy.js.map +2 -2
  18. package/dpr/routes/journeys/view-report/async/report/tests.cy.ts +44 -8
  19. package/dpr/routes/journeys/view-report/utils.js +1 -1
  20. package/dpr/routes/journeys/view-report/utils.js.map +3 -3
  21. package/dpr/routes/journeys/view-report/utils.ts +6 -1
  22. package/dpr/utils/DataTableBuilder/DataTableBuilder.js +1 -1
  23. package/dpr/utils/DataTableBuilder/DataTableBuilder.js.map +2 -2
  24. package/dpr/utils/DataTableBuilder/DataTableBuilder.ts +37 -19
  25. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js +1 -1
  26. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.js.map +2 -2
  27. package/dpr/utils/ParentChildDataTableBuilder/ParentChildDataTableBuilder.ts +6 -3
  28. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js.map +2 -2
  29. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +5 -2
  30. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js +1 -1
  31. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.js.map +2 -2
  32. package/dpr/utils/SummaryDataTableBuilder/SummaryDataTableBuilder.ts +2 -1
  33. package/dpr/utils/UserStoreItemBuilder.js.map +1 -1
  34. package/dpr/utils/UserStoreItemBuilder.ts +1 -1
  35. package/package.json +1 -1
  36. package/dpr/components/_charts/chart/heatmap/utils.js +0 -2
  37. package/dpr/components/_charts/chart/heatmap/utils.js.map +0 -7
  38. package/dpr/components/_charts/chart/heatmap/utils.ts +0 -182
@@ -1,2 +1,2 @@
1
- var Y=Object.create;var S=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,C=Object.prototype.hasOwnProperty;var j=(a,s)=>{for(var t in s)S(a,t,{get:s[t],enumerable:!0})},h=(a,s,t,e)=>{if(s&&typeof s=="object"||typeof s=="function")for(let r of Q(s))!C.call(a,r)&&r!==t&&S(a,r,{get:()=>s[r],enumerable:!(e=H(s,r))||e.enumerable});return a};var d=(a,s,t)=>(t=a!=null?Y(O(a)):{},h(s||!a||!a.__esModule?S(t,"default",{value:a,enumerable:!0}):t,a)),G=a=>h(S({},"__esModule",{value:!0}),a);var te={};j(te,{default:()=>ee,init:()=>N,renderList:()=>U,setDataFromStatus:()=>_,updateExpiredStatus:()=>M,updateLastViewed:()=>B});module.exports=G(te);var E=d(require("dayjs")),i=require("../../types/UserReports"),$=require("../../utils/requestStatusHelper"),x=d(require("../_filters/filters-selected/utils")),F=d(require("../_filters/utils")),g=require("../../utils/reportListsHelper"),T=d(require("./requested/utils")),A=d(require("./viewed/utils")),V=d(require("./bookmarks/utils")),R=d(require("../../utils/localsHelper")),P=d(require("../../utils/DateMapper/DateMapper")),L=d(require("../../utils/UserStoreItemBuilder"));const J=a=>{const s=JSON.parse(JSON.stringify(a)),{executionId:t,tableId:e,variantName:r,name:n,reportId:o,variantId:l,id:m,description:u,query:p,interactiveQuery:c,status:y,timestamp:D,reportName:w,dataProductDefinitionsPath:b,type:I,url:q}=s;let f=[];p&&(f=p.summary);let v=[];c&&(v=c.summary);const k=I||i.ReportType.REPORT;return{id:t,text:n||r,reportName:w,description:u,tag:"MIS",summary:f,interactiveSummary:v,timestamp:D,status:y,type:k,..._(y,s),meta:{reportId:o,id:l||m,executionId:t,tableId:e,status:y,type:k,dataProductDefinitionsPath:b,pollingUrl:q.polling?.pathname,reportUrl:q.report?.pathname}}},K=(a,s)=>({rows:a.map(e=>X(e,s)),head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Filters",classes:"dpr-req-filters-head"},{text:"Status",classes:"dpr-req-status-head"},{text:"Actions",classes:"dpr-req-actions-head"}]}),X=(a,s)=>{let t,e="";const{href:r,id:n,reportName:o,text:l,timestamp:m,type:u,status:p}=a;switch(p){case i.RequestStatus.FAILED:t="govuk-tag--red",e=(0,g.itemActionsHtml)(r,n,s,p);break;case i.RequestStatus.EXPIRED:t="govuk-tag--grey",e=(0,g.itemActionsHtml)(r,n,s,p);break;case i.RequestStatus.ABORTED:t="govuk-tag--orange",e=(0,g.itemActionsHtml)(r,n,s,p);break;case i.RequestStatus.READY:case i.RequestStatus.FINISHED:e=`<a class=govuk-link govuk-link--no-visited-state dpr-type__${u}' href="${r}">Go to ${u}</a>`,t="govuk-tag--green";break;case i.RequestStatus.PICKED:case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:e=`<a class='govuk-link govuk-link--no-visited-state dpr-type__${u}' href="${r}">Go to status</a>`;break;default:break}let c="";return(a.summary||a.interactiveSummary)&&(c=W(a)),[{html:(0,g.createListItemProduct)(o,l,u,m)},{html:c},{html:`<strong class="govuk-tag dpr-request-status-tag ${t}">${p}</strong>`,classes:"dpr-req-cell dpr-req-cell__status"},{html:`${e}`,classes:"dpr-req-cell dpr-req-cell__status"}]},z=(a,s)=>({amount:a,shown:a>s?s:a,max:s}),W=a=>{const s=a.summary?.map(e=>`<li class="govuk-body-s dpr-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join(""),t=a.interactiveSummary?.map(e=>`<li class="govuk-body-s dpr-interactive-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join("");return`<ul class="dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0">${s}${t}</ul>`},Z=(a,s)=>{const{nestedBaseUrl:t}=R.default.getValues(s);return a.map(e=>({reportId:e.meta.reportId,id:e.meta.id,executionId:e.meta.executionId,tableId:e.meta.tableId,status:e.meta.status,requestedAt:e.meta.requestedAt,type:e.meta.type,dataProductDefinitionsPath:e.meta.dataProductDefinitionsPath,pollingUrl:e.meta.pollingUrl,reportUrl:e.meta.reportUrl,nestedBaseUrl:t}))},_=(a,s)=>{let t,e,r;const{url:n,timestamp:o}=s,l=new P.default;switch(a){case i.RequestStatus.FAILED:{r=o.failed?l.toDateString(o.failed,"local-date"):(0,E.default)().format("DD/MM/YYYY"),e=`${n.polling.fullUrl}`,t=`Failed at: ${r}`;break}case i.RequestStatus.ABORTED:{e=`${n.request.fullUrl}`,r=l.toDateString(o.aborted,"local-date"),t=`Aborted at: ${r}`;break}case i.RequestStatus.FINISHED:e=n.report.fullUrl,r=l.toDateString(o.completed,"local-date"),t=`Ready at: ${r}`;break;case i.RequestStatus.EXPIRED:{e=`${n.request.fullUrl}`,r=l.toDateString(o.expired,"local-date"),t=`Expired at: ${r}`;break}case i.RequestStatus.READY:{e=`${n.report.fullUrl}`,r=l.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${r}`;break}case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:case i.RequestStatus.PICKED:e=n.polling.fullUrl,r=l.toDateString(o.requested,"local-date"),t=`Requested at: ${r}`;break;default:r=l.toDateString(o.lastViewed,"local-date"),t=`Last viewed: ${r}`;break}return{timestamp:t,href:e}},U=async({res:a,reportsData:s,maxRows:t,filterFunction:e,type:r})=>{const{csrfToken:n}=R.default.getValues(a);let o=s.filter(e).map(J);const l=o.length;t&&(o=o.slice(0,t));const m=K(o,r),u=r==="requested"?"requested-reports":"recently-viewed";return{head:{...o.length&&{href:`dpr/my-reports/${u}/list`},...!o.length&&{emptyMessage:`You have 0 ${r} reports`}},tableData:m,total:z(l,t),meta:Z(o,a),csrfToken:n,maxRows:t}},M=async({req:a,res:s,services:t})=>{const{dprUser:e}=R.default.getValues(s),r=await(0,$.getExpiredStatus)({req:a,res:s,services:t});return r&&r.isExpired&&(await t.recentlyViewedService.setToExpired(r.executionId,e.id),await t.requestedReportService.setToExpired(r.executionId,e.id)),r?r.isExpired:!1},N=async({services:a,res:s,req:t,maxRows:e=6})=>{const{requestedReports:r,recentlyViewedReports:n,bookmarkingEnabled:o}=R.default.getValues(s),l=await U({res:s,reportsData:r,filterFunction:T.default.filterReports,maxRows:e,type:"requested"}),m=await U({res:s,reportsData:n,filterFunction:A.default.filterReports,maxRows:e,type:"viewed"});let u;return o&&(u=await V.default.renderBookmarkList({res:s,req:t,services:a,maxRows:e})),{requestedReports:l,viewedReports:m,bookmarks:u}},B=async({req:a,services:s,reportStateData:t,userId:e,filters:r})=>{const{type:n,reportId:o,reportName:l,description:m,id:u,name:p,executionId:c,tableId:y,query:D,url:w}=t,b={type:n,reportId:o,reportName:l,description:m,id:u,name:p},I={executionId:c,tableId:y},q=D?{query:D.data,querySummary:D.summary}:{query:{},querySummary:[]},f=F.default.setRequestQueryFromFilterValues(r),v={query:f,querySummary:x.default.getQuerySummary(f,r)},k=new L.default(b).addExecutionData(I).addQuery(q).addInteractiveQuery(v).addStatus(i.RequestStatus.READY).addTimestamp().addAsyncUrls(w).addReportUrls(a).build();await s.requestedReportService.updateLastViewed(t.executionId,e),await s.recentlyViewedService.setRecentlyViewed(k,e)};var ee={renderList:U,updateExpiredStatus:M,init:N,updateLastViewed:B};0&&(module.exports={init,renderList,setDataFromStatus,updateExpiredStatus,updateLastViewed});
1
+ var j=Object.create;var k=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var z=(t,s)=>{for(var r in s)k(t,r,{get:s[r],enumerable:!0})},x=(t,s,r,e)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of J(s))!X.call(t,a)&&a!==r&&k(t,a,{get:()=>s[a],enumerable:!(e=G(s,a))||e.enumerable});return t};var d=(t,s,r)=>(r=t!=null?j(K(t)):{},x(s||!t||!t.__esModule?k(r,"default",{value:t,enumerable:!0}):r,t)),W=t=>x(k({},"__esModule",{value:!0}),t);var ie={};z(ie,{default:()=>oe,init:()=>Y,renderList:()=>U,setDataFromStatus:()=>Q,updateExpiredStatus:()=>B,updateLastViewed:()=>H});module.exports=W(ie);var F=d(require("dayjs")),i=require("../../types/UserReports"),T=require("../../utils/requestStatusHelper"),A=d(require("../_filters/filters-selected/utils")),P=d(require("../_filters/utils")),g=require("../../utils/reportListsHelper"),V=d(require("./requested/utils")),L=d(require("./viewed/utils")),_=d(require("./bookmarks/utils")),v=d(require("../../utils/localsHelper")),M=d(require("../../utils/DateMapper/DateMapper")),N=d(require("../../utils/UserStoreItemBuilder"));const Z=t=>{const s=JSON.parse(JSON.stringify(t)),{executionId:r,tableId:e,variantName:a,name:n,reportId:o,variantId:l,id:p,description:u,query:m,interactiveQuery:c,status:y,timestamp:D,reportName:w,dataProductDefinitionsPath:b,type:I,url:S}=s;let f=[];m&&(f=m.summary);let R=[];c&&(R=c.summary);const q=I||i.ReportType.REPORT;return{id:r,text:n||a,reportName:w,description:u,tag:"MIS",summary:f,interactiveSummary:R,timestamp:D,status:y,type:q,...Q(y,s),meta:{reportId:o,id:l||p,executionId:r,tableId:e,status:y,type:q,dataProductDefinitionsPath:b,pollingUrl:S.polling?.pathname,reportUrl:S.report?.pathname}}},ee=(t,s)=>({rows:t.map(e=>te(e,s)),head:[{text:"Product",classes:"dpr-req-product-head"},{text:"Filters",classes:"dpr-req-filters-head"},{text:"Status",classes:"dpr-req-status-head"},{text:"Actions",classes:"dpr-req-actions-head"}]}),te=(t,s)=>{let r,e="";const{href:a,id:n,reportName:o,text:l,timestamp:p,type:u,status:m}=t;switch(m){case i.RequestStatus.FAILED:r="govuk-tag--red",e=(0,g.itemActionsHtml)(a,n,s,m);break;case i.RequestStatus.EXPIRED:r="govuk-tag--grey",e=(0,g.itemActionsHtml)(a,n,s,m);break;case i.RequestStatus.ABORTED:r="govuk-tag--orange",e=(0,g.itemActionsHtml)(a,n,s,m);break;case i.RequestStatus.READY:case i.RequestStatus.FINISHED:e=`<a class=govuk-link govuk-link--no-visited-state dpr-type__${u}' href="${a}">Go to ${u}</a>`,r="govuk-tag--green";break;case i.RequestStatus.PICKED:case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:e=`<a class='govuk-link govuk-link--no-visited-state dpr-type__${u}' href="${a}">Go to status</a>`;break;default:break}let c="";return(t.summary||t.interactiveSummary)&&(c=ae(t)),[{html:(0,g.createListItemProduct)(o,l,u,p)},{html:c},{html:`<strong class="govuk-tag dpr-request-status-tag ${r}">${m}</strong>`,classes:"dpr-req-cell dpr-req-cell__status"},{html:`${e}`,classes:"dpr-req-cell dpr-req-cell__status"}]},re=(t,s)=>({amount:t,shown:t>s?s:t,max:s}),ae=t=>{const s=t.summary?.map(e=>`<li class="govuk-body-s dpr-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join(""),r=t.interactiveSummary?.map(e=>`<li class="govuk-body-s dpr-interactive-query-summary"><strong>${e.name}</strong>: ${e.value}</li>`).join("");return`<ul class="dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0">${s}${r}</ul>`},se=(t,s)=>{const{nestedBaseUrl:r}=v.default.getValues(s);return t.map(e=>({reportId:e.meta.reportId,id:e.meta.id,executionId:e.meta.executionId,tableId:e.meta.tableId,status:e.meta.status,requestedAt:e.meta.requestedAt,type:e.meta.type,dataProductDefinitionsPath:e.meta.dataProductDefinitionsPath,pollingUrl:e.meta.pollingUrl,reportUrl:e.meta.reportUrl,nestedBaseUrl:r}))},Q=(t,s)=>{let r,e,a;const{url:n,timestamp:o}=s,l=new M.default;switch(t){case i.RequestStatus.FAILED:{a=o.failed?l.toDateString(o.failed,"local-date"):(0,F.default)().format("DD/MM/YYYY"),e=`${n.polling.fullUrl}`,r=`Failed at: ${a}`;break}case i.RequestStatus.ABORTED:{e=`${n.request.fullUrl}`,a=l.toDateString(o.aborted,"local-date"),r=`Aborted at: ${a}`;break}case i.RequestStatus.FINISHED:e=n.report.fullUrl,a=l.toDateString(o.completed,"local-date"),r=`Ready at: ${a}`;break;case i.RequestStatus.EXPIRED:{e=`${n.request.fullUrl}`,a=l.toDateString(o.expired,"local-date"),r=`Expired at: ${a}`;break}case i.RequestStatus.READY:{e=`${n.report.fullUrl}`,a=l.toDateString(o.lastViewed,"local-date"),r=`Last viewed: ${a}`;break}case i.RequestStatus.SUBMITTED:case i.RequestStatus.STARTED:case i.RequestStatus.PICKED:e=n.polling.fullUrl,a=l.toDateString(o.requested,"local-date"),r=`Requested at: ${a}`;break;default:a=l.toDateString(o.lastViewed,"local-date"),r=`Last viewed: ${a}`;break}return{timestamp:r,href:e}},U=async({res:t,reportsData:s,maxRows:r,filterFunction:e,type:a})=>{const{csrfToken:n}=v.default.getValues(t);let o=s.filter(e).map(Z);const l=o.length;r&&(o=o.slice(0,r));const p=ee(o,a),u=a==="requested"?"requested-reports":"recently-viewed";return{head:{...o.length&&{href:`dpr/my-reports/${u}/list`},...!o.length&&{emptyMessage:`You have 0 ${a} reports`}},tableData:p,total:re(l,r),meta:se(o,t),csrfToken:n,maxRows:r}},B=async({req:t,res:s,services:r})=>{const{dprUser:e}=v.default.getValues(s),a=await(0,T.getExpiredStatus)({req:t,res:s,services:r});return a&&a.isExpired&&(await r.recentlyViewedService.setToExpired(a.executionId,e.id),await r.requestedReportService.setToExpired(a.executionId,e.id)),a?a.isExpired:!1},Y=async({services:t,res:s,req:r,maxRows:e=6})=>{const{requestedReports:a,recentlyViewedReports:n,bookmarkingEnabled:o}=v.default.getValues(s),l=await U({res:s,reportsData:a,filterFunction:V.default.filterReports,maxRows:e,type:"requested"}),p=await U({res:s,reportsData:n,filterFunction:L.default.filterReports,maxRows:e,type:"viewed"});let u;return o&&(u=await _.default.renderBookmarkList({res:s,req:r,services:t,maxRows:e})),{requestedReports:l,viewedReports:p,bookmarks:u}},H=async({req:t,services:s,reportStateData:r,userId:e,filters:a})=>{const{type:n,reportId:o,reportName:l,description:p,id:u,name:m,executionId:c,tableId:y,query:D,url:w}=r,b={type:n,reportId:o,reportName:l,description:p,id:u,name:m},I={executionId:c,tableId:y},S=D?{query:D.data,querySummary:D.summary}:{query:{},querySummary:[]},f=t.query?.columns,{selectedPage:R,pageSize:q,sortColumn:h,sortedAsc:E}=t.query,$=P.default.setRequestQueryFromFilterValues(a),C={query:{...$,...f&&{columns:f},...R&&{selectedPage:R},...q&&{pageSize:q},...h&&{sortColumn:h},...E&&{sortedAsc:E}},querySummary:A.default.getQuerySummary($,a)},O=new N.default(b).addExecutionData(I).addQuery(S).addInteractiveQuery(C).addStatus(i.RequestStatus.READY).addTimestamp().addAsyncUrls(w).addReportUrls(t).build();await s.requestedReportService.updateLastViewed(r.executionId,e),await s.recentlyViewedService.setRecentlyViewed(O,e)};var oe={renderList:U,updateExpiredStatus:B,init:Y,updateLastViewed:H};0&&(module.exports={init,renderList,setDataFromStatus,updateExpiredStatus,updateLastViewed});
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/dpr/components/user-reports/utils.ts"],
4
- "sourcesContent": ["import { Response, Request } from 'express'\nimport dayjs from 'dayjs'\nimport { RenderTableListResponse } from './types'\nimport Dict = NodeJS.Dict\nimport {\n FormattedUserReportData,\n UserReportData,\n RequestStatus,\n ReportType,\n RequestedReport,\n StoredReportData,\n} from '../../types/UserReports'\nimport { FilterValue } from '../_filters/types'\nimport { Services } from '../../types/Services'\n\nimport { AsyncReportUtilsParams } from '../../types/AsyncReportUtils'\nimport { getExpiredStatus } from '../../utils/requestStatusHelper'\nimport SelectedFiltersUtils from '../_filters/filters-selected/utils'\nimport FiltersUtils from '../_filters/utils'\nimport { itemActionsHtml, createListItemProduct } from '../../utils/reportListsHelper'\nimport RequestedReportUtils from './requested/utils'\nimport RecentlyViewedCardGroupUtils from './viewed/utils'\nimport BookmarklistUtils from './bookmarks/utils'\nimport LocalsHelper from '../../utils/localsHelper'\nimport DateMapper from '../../utils/DateMapper/DateMapper'\nimport UserStoreItemBuilder from '../../utils/UserStoreItemBuilder'\n\nconst formatData = (reportData: UserReportData): FormattedUserReportData => {\n const reportDataCopy: UserReportData = JSON.parse(JSON.stringify(reportData))\n\n const {\n executionId,\n tableId,\n variantName,\n name,\n reportId,\n variantId,\n id,\n description,\n query,\n interactiveQuery,\n status,\n timestamp,\n reportName,\n dataProductDefinitionsPath,\n type: reportType,\n url,\n } = reportDataCopy\n\n let summary: { name: string; value: string }[] = []\n if (query) {\n summary = query.summary as { name: string; value: string }[]\n }\n let interactiveSummary: { name: string; value: string }[] = []\n if (interactiveQuery) {\n interactiveSummary = interactiveQuery.summary as { name: string; value: string }[]\n }\n\n const type = reportType || ReportType.REPORT\n\n return {\n id: executionId,\n text: name || variantName,\n reportName,\n description,\n tag: 'MIS',\n summary,\n interactiveSummary,\n timestamp,\n status,\n type,\n ...setDataFromStatus(status, reportDataCopy),\n meta: {\n reportId,\n id: variantId || id,\n executionId,\n tableId,\n status,\n type,\n dataProductDefinitionsPath,\n pollingUrl: url.polling?.pathname,\n reportUrl: url.report?.pathname,\n },\n }\n}\n\nconst formatTable = (data: FormattedUserReportData[], type: 'requested' | 'viewed') => {\n const rows = data.map((card: FormattedUserReportData) => {\n return formatTableRow(card, type)\n })\n\n return {\n rows,\n head: [\n { text: 'Product', classes: 'dpr-req-product-head' },\n { text: 'Filters', classes: 'dpr-req-filters-head' },\n { text: 'Status', classes: 'dpr-req-status-head' },\n { text: 'Actions', classes: 'dpr-req-actions-head' },\n ],\n }\n}\n\nconst formatTableRow = (data: FormattedUserReportData, type: 'requested' | 'viewed') => {\n let statusClass\n let itemActions = ''\n\n const { href, id, reportName, text, timestamp, type: reportType, status } = data\n switch (status) {\n case RequestStatus.FAILED:\n statusClass = 'govuk-tag--red'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.EXPIRED:\n statusClass = 'govuk-tag--grey'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.ABORTED:\n statusClass = 'govuk-tag--orange'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.READY:\n case RequestStatus.FINISHED:\n itemActions = `<a class=govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to ${reportType}</a>`\n statusClass = 'govuk-tag--green'\n break\n case RequestStatus.PICKED:\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n itemActions = `<a class='govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to status</a>`\n break\n default:\n break\n }\n\n let filtersSummary = ''\n if (data.summary || data.interactiveSummary) {\n filtersSummary = createSummaryHtml(data)\n }\n\n return [\n {\n html: createListItemProduct(reportName, text, reportType, timestamp),\n },\n { html: filtersSummary },\n {\n html: `<strong class=\"govuk-tag dpr-request-status-tag ${statusClass}\">${status}</strong>`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n {\n html: `${itemActions}`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n ]\n}\n\nconst getTotals = (formattedCount: number, maxRows: number) => {\n return {\n amount: formattedCount,\n shown: formattedCount > maxRows ? maxRows : formattedCount,\n max: maxRows,\n }\n}\n\nconst createSummaryHtml = (data: FormattedUserReportData) => {\n const summaryHtml = data.summary\n ?.map((item) => `<li class=\"govuk-body-s dpr-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`)\n .join('')\n\n const interactiveSummaryHtml = data.interactiveSummary\n ?.map(\n (item) =>\n `<li class=\"govuk-body-s dpr-interactive-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`,\n )\n .join('')\n\n return `<ul class=\"dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0\">${summaryHtml}${interactiveSummaryHtml}</ul>`\n}\n\nconst getMeta = (formattedData: FormattedUserReportData[], res: Response) => {\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n\n return formattedData.map((d) => {\n return {\n reportId: d.meta.reportId,\n id: d.meta.id,\n executionId: d.meta.executionId,\n tableId: d.meta.tableId,\n status: d.meta.status,\n requestedAt: d.meta.requestedAt,\n type: d.meta.type,\n dataProductDefinitionsPath: d.meta.dataProductDefinitionsPath,\n pollingUrl: d.meta.pollingUrl,\n reportUrl: d.meta.reportUrl,\n nestedBaseUrl,\n }\n })\n}\n\nexport const setDataFromStatus = (status: RequestStatus, reportsData: UserReportData) => {\n let timestamp\n let href\n let formattedDate\n const { url, timestamp: time } = reportsData\n const dateMapper = new DateMapper()\n switch (status) {\n case RequestStatus.FAILED: {\n formattedDate = time.failed\n ? dateMapper.toDateString(<string>(<unknown>time.failed), 'local-date')\n : dayjs().format('DD/MM/YYYY')\n href = `${url.polling.fullUrl}`\n timestamp = `Failed at: ${formattedDate}`\n break\n }\n case RequestStatus.ABORTED: {\n href = `${url.request.fullUrl}`\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.aborted), 'local-date')\n timestamp = `Aborted at: ${formattedDate}`\n break\n }\n case RequestStatus.FINISHED:\n href = url.report.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.completed), 'local-date')\n timestamp = `Ready at: ${formattedDate}`\n break\n case RequestStatus.EXPIRED: {\n href = `${url.request.fullUrl}`\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.expired), 'local-date')\n timestamp = `Expired at: ${formattedDate}`\n break\n }\n case RequestStatus.READY: {\n href = `${url.report.fullUrl}`\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n href = url.polling.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.requested), 'local-date')\n timestamp = `Requested at: ${formattedDate}`\n break\n default:\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n\n return {\n timestamp,\n href,\n }\n}\n\nexport const renderList = async ({\n res,\n reportsData,\n maxRows,\n filterFunction,\n type,\n}: {\n res: Response\n reportsData: StoredReportData[]\n maxRows?: number\n filterFunction: (report: UserReportData) => boolean\n type: 'requested' | 'viewed'\n}): Promise<RenderTableListResponse> => {\n const { csrfToken } = LocalsHelper.getValues(res)\n\n let formatted = reportsData.filter(filterFunction).map(formatData)\n const formattedCount = formatted.length\n\n if (maxRows) formatted = formatted.slice(0, maxRows)\n const tableData = formatTable(formatted, type)\n\n const path = type === 'requested' ? 'requested-reports' : 'recently-viewed'\n const head = {\n ...(formatted.length && { href: `dpr/my-reports/${path}/list` }),\n ...(!formatted.length && { emptyMessage: `You have 0 ${type} reports` }),\n }\n\n const result = {\n head,\n tableData,\n total: getTotals(formattedCount, maxRows),\n meta: getMeta(formatted, res),\n csrfToken,\n maxRows,\n }\n\n return result\n}\n\nexport const updateExpiredStatus = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { dprUser } = LocalsHelper.getValues(res)\n const report = await getExpiredStatus({ req, res, services })\n\n if (report && report.isExpired) {\n await services.recentlyViewedService.setToExpired(report.executionId, dprUser.id)\n await services.requestedReportService.setToExpired(report.executionId, dprUser.id)\n }\n\n return report ? report.isExpired : false\n}\n\nexport const init = async ({\n services,\n res,\n req,\n maxRows = 6,\n}: {\n services: Services\n res: Response\n req: Request\n maxRows?: number\n}) => {\n const { requestedReports, recentlyViewedReports, bookmarkingEnabled } = LocalsHelper.getValues(res)\n const requestedReportsList = await renderList({\n res,\n reportsData: requestedReports,\n filterFunction: RequestedReportUtils.filterReports,\n maxRows,\n type: 'requested',\n })\n const viewedReportsList = await renderList({\n res,\n reportsData: recentlyViewedReports,\n filterFunction: RecentlyViewedCardGroupUtils.filterReports,\n maxRows,\n type: 'viewed',\n })\n\n let bookmarks\n if (bookmarkingEnabled) {\n bookmarks = await BookmarklistUtils.renderBookmarkList({\n res,\n req,\n services,\n maxRows,\n })\n }\n\n return {\n requestedReports: requestedReportsList,\n viewedReports: viewedReportsList,\n bookmarks,\n }\n}\n\nexport const updateLastViewed = async ({\n req,\n services,\n reportStateData,\n userId,\n filters,\n}: {\n req: Request\n services: Services\n reportStateData: RequestedReport\n userId: string\n filters: FilterValue[]\n}) => {\n const { type, reportId, reportName, description, id, name, executionId, tableId, query, url } = reportStateData\n const reportData = { type, reportId, reportName, description, id, name }\n const executionData = { executionId, tableId }\n const queryData = query ? { query: query.data, querySummary: query.summary } : { query: {}, querySummary: [] }\n\n const reqQuery = FiltersUtils.setRequestQueryFromFilterValues(filters)\n const interactiveQueryData: { query: Dict<string>; querySummary: Array<Dict<string>> } = {\n query: reqQuery,\n querySummary: SelectedFiltersUtils.getQuerySummary(reqQuery, filters),\n }\n\n const recentlyViewedData = new UserStoreItemBuilder(reportData)\n .addExecutionData(executionData)\n .addQuery(queryData)\n .addInteractiveQuery(interactiveQueryData)\n .addStatus(RequestStatus.READY)\n .addTimestamp()\n .addAsyncUrls(url)\n .addReportUrls(req)\n .build()\n\n await services.requestedReportService.updateLastViewed(reportStateData.executionId, userId)\n await services.recentlyViewedService.setRecentlyViewed(recentlyViewedData, userId)\n}\n\nexport default {\n renderList,\n updateExpiredStatus,\n init,\n updateLastViewed,\n}\n"],
5
- "mappings": "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",
6
- "names": ["utils_exports", "__export", "utils_default", "init", "renderList", "setDataFromStatus", "updateExpiredStatus", "updateLastViewed", "__toCommonJS", "import_dayjs", "import_UserReports", "import_requestStatusHelper", "import_utils", "import_reportListsHelper", "import_localsHelper", "import_DateMapper", "import_UserStoreItemBuilder", "formatData", "reportData", "reportDataCopy", "executionId", "tableId", "variantName", "name", "reportId", "variantId", "id", "description", "query", "interactiveQuery", "status", "timestamp", "reportName", "dataProductDefinitionsPath", "reportType", "url", "summary", "interactiveSummary", "type", "formatTable", "data", "card", "formatTableRow", "statusClass", "itemActions", "href", "text", "filtersSummary", "createSummaryHtml", "getTotals", "formattedCount", "maxRows", "summaryHtml", "item", "interactiveSummaryHtml", "getMeta", "formattedData", "res", "nestedBaseUrl", "LocalsHelper", "d", "reportsData", "formattedDate", "time", "dateMapper", "DateMapper", "dayjs", "filterFunction", "csrfToken", "formatted", "tableData", "path", "req", "services", "dprUser", "report", "requestedReports", "recentlyViewedReports", "bookmarkingEnabled", "requestedReportsList", "RequestedReportUtils", "viewedReportsList", "RecentlyViewedCardGroupUtils", "bookmarks", "BookmarklistUtils", "reportStateData", "userId", "filters", "executionData", "queryData", "reqQuery", "FiltersUtils", "interactiveQueryData", "SelectedFiltersUtils", "recentlyViewedData", "UserStoreItemBuilder"]
4
+ "sourcesContent": ["import { Response, Request } from 'express'\nimport dayjs from 'dayjs'\nimport { RenderTableListResponse } from './types'\nimport Dict = NodeJS.Dict\nimport {\n FormattedUserReportData,\n UserReportData,\n RequestStatus,\n ReportType,\n RequestedReport,\n StoredReportData,\n} from '../../types/UserReports'\nimport { FilterValue } from '../_filters/types'\nimport { Services } from '../../types/Services'\n\nimport { AsyncReportUtilsParams } from '../../types/AsyncReportUtils'\nimport { getExpiredStatus } from '../../utils/requestStatusHelper'\nimport SelectedFiltersUtils from '../_filters/filters-selected/utils'\nimport FiltersUtils from '../_filters/utils'\nimport { itemActionsHtml, createListItemProduct } from '../../utils/reportListsHelper'\nimport RequestedReportUtils from './requested/utils'\nimport RecentlyViewedCardGroupUtils from './viewed/utils'\nimport BookmarklistUtils from './bookmarks/utils'\nimport LocalsHelper from '../../utils/localsHelper'\nimport DateMapper from '../../utils/DateMapper/DateMapper'\nimport UserStoreItemBuilder from '../../utils/UserStoreItemBuilder'\n\nconst formatData = (reportData: UserReportData): FormattedUserReportData => {\n const reportDataCopy: UserReportData = JSON.parse(JSON.stringify(reportData))\n\n const {\n executionId,\n tableId,\n variantName,\n name,\n reportId,\n variantId,\n id,\n description,\n query,\n interactiveQuery,\n status,\n timestamp,\n reportName,\n dataProductDefinitionsPath,\n type: reportType,\n url,\n } = reportDataCopy\n\n let summary: { name: string; value: string }[] = []\n if (query) {\n summary = query.summary as { name: string; value: string }[]\n }\n let interactiveSummary: { name: string; value: string }[] = []\n if (interactiveQuery) {\n interactiveSummary = interactiveQuery.summary as { name: string; value: string }[]\n }\n\n const type = reportType || ReportType.REPORT\n\n return {\n id: executionId,\n text: name || variantName,\n reportName,\n description,\n tag: 'MIS',\n summary,\n interactiveSummary,\n timestamp,\n status,\n type,\n ...setDataFromStatus(status, reportDataCopy),\n meta: {\n reportId,\n id: variantId || id,\n executionId,\n tableId,\n status,\n type,\n dataProductDefinitionsPath,\n pollingUrl: url.polling?.pathname,\n reportUrl: url.report?.pathname,\n },\n }\n}\n\nconst formatTable = (data: FormattedUserReportData[], type: 'requested' | 'viewed') => {\n const rows = data.map((card: FormattedUserReportData) => {\n return formatTableRow(card, type)\n })\n\n return {\n rows,\n head: [\n { text: 'Product', classes: 'dpr-req-product-head' },\n { text: 'Filters', classes: 'dpr-req-filters-head' },\n { text: 'Status', classes: 'dpr-req-status-head' },\n { text: 'Actions', classes: 'dpr-req-actions-head' },\n ],\n }\n}\n\nconst formatTableRow = (data: FormattedUserReportData, type: 'requested' | 'viewed') => {\n let statusClass\n let itemActions = ''\n\n const { href, id, reportName, text, timestamp, type: reportType, status } = data\n switch (status) {\n case RequestStatus.FAILED:\n statusClass = 'govuk-tag--red'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.EXPIRED:\n statusClass = 'govuk-tag--grey'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.ABORTED:\n statusClass = 'govuk-tag--orange'\n itemActions = itemActionsHtml(href, id, type, status)\n break\n case RequestStatus.READY:\n case RequestStatus.FINISHED:\n itemActions = `<a class=govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to ${reportType}</a>`\n statusClass = 'govuk-tag--green'\n break\n case RequestStatus.PICKED:\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n itemActions = `<a class='govuk-link govuk-link--no-visited-state dpr-type__${reportType}' href=\"${href}\">Go to status</a>`\n break\n default:\n break\n }\n\n let filtersSummary = ''\n if (data.summary || data.interactiveSummary) {\n filtersSummary = createSummaryHtml(data)\n }\n\n return [\n {\n html: createListItemProduct(reportName, text, reportType, timestamp),\n },\n { html: filtersSummary },\n {\n html: `<strong class=\"govuk-tag dpr-request-status-tag ${statusClass}\">${status}</strong>`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n {\n html: `${itemActions}`,\n classes: 'dpr-req-cell dpr-req-cell__status',\n },\n ]\n}\n\nconst getTotals = (formattedCount: number, maxRows: number) => {\n return {\n amount: formattedCount,\n shown: formattedCount > maxRows ? maxRows : formattedCount,\n max: maxRows,\n }\n}\n\nconst createSummaryHtml = (data: FormattedUserReportData) => {\n const summaryHtml = data.summary\n ?.map((item) => `<li class=\"govuk-body-s dpr-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`)\n .join('')\n\n const interactiveSummaryHtml = data.interactiveSummary\n ?.map(\n (item) =>\n `<li class=\"govuk-body-s dpr-interactive-query-summary\"><strong>${item.name}</strong>: ${item.value}</li>`,\n )\n .join('')\n\n return `<ul class=\"dpr-card-group__item__filters-list govuk-!-margin-top-0 govuk-!-margin-bottom-0\">${summaryHtml}${interactiveSummaryHtml}</ul>`\n}\n\nconst getMeta = (formattedData: FormattedUserReportData[], res: Response) => {\n const { nestedBaseUrl } = LocalsHelper.getValues(res)\n\n return formattedData.map((d) => {\n return {\n reportId: d.meta.reportId,\n id: d.meta.id,\n executionId: d.meta.executionId,\n tableId: d.meta.tableId,\n status: d.meta.status,\n requestedAt: d.meta.requestedAt,\n type: d.meta.type,\n dataProductDefinitionsPath: d.meta.dataProductDefinitionsPath,\n pollingUrl: d.meta.pollingUrl,\n reportUrl: d.meta.reportUrl,\n nestedBaseUrl,\n }\n })\n}\n\nexport const setDataFromStatus = (status: RequestStatus, reportsData: UserReportData) => {\n let timestamp\n let href\n let formattedDate\n const { url, timestamp: time } = reportsData\n const dateMapper = new DateMapper()\n switch (status) {\n case RequestStatus.FAILED: {\n formattedDate = time.failed\n ? dateMapper.toDateString(<string>(<unknown>time.failed), 'local-date')\n : dayjs().format('DD/MM/YYYY')\n href = `${url.polling.fullUrl}`\n timestamp = `Failed at: ${formattedDate}`\n break\n }\n case RequestStatus.ABORTED: {\n href = `${url.request.fullUrl}`\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.aborted), 'local-date')\n timestamp = `Aborted at: ${formattedDate}`\n break\n }\n case RequestStatus.FINISHED:\n href = url.report.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.completed), 'local-date')\n timestamp = `Ready at: ${formattedDate}`\n break\n case RequestStatus.EXPIRED: {\n href = `${url.request.fullUrl}`\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.expired), 'local-date')\n timestamp = `Expired at: ${formattedDate}`\n break\n }\n case RequestStatus.READY: {\n href = `${url.report.fullUrl}`\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n case RequestStatus.SUBMITTED:\n case RequestStatus.STARTED:\n case RequestStatus.PICKED:\n href = url.polling.fullUrl\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.requested), 'local-date')\n timestamp = `Requested at: ${formattedDate}`\n break\n default:\n formattedDate = dateMapper.toDateString(<string>(<unknown>time.lastViewed), 'local-date')\n timestamp = `Last viewed: ${formattedDate}`\n break\n }\n\n return {\n timestamp,\n href,\n }\n}\n\nexport const renderList = async ({\n res,\n reportsData,\n maxRows,\n filterFunction,\n type,\n}: {\n res: Response\n reportsData: StoredReportData[]\n maxRows?: number\n filterFunction: (report: UserReportData) => boolean\n type: 'requested' | 'viewed'\n}): Promise<RenderTableListResponse> => {\n const { csrfToken } = LocalsHelper.getValues(res)\n\n let formatted = reportsData.filter(filterFunction).map(formatData)\n const formattedCount = formatted.length\n\n if (maxRows) formatted = formatted.slice(0, maxRows)\n const tableData = formatTable(formatted, type)\n\n const path = type === 'requested' ? 'requested-reports' : 'recently-viewed'\n const head = {\n ...(formatted.length && { href: `dpr/my-reports/${path}/list` }),\n ...(!formatted.length && { emptyMessage: `You have 0 ${type} reports` }),\n }\n\n const result = {\n head,\n tableData,\n total: getTotals(formattedCount, maxRows),\n meta: getMeta(formatted, res),\n csrfToken,\n maxRows,\n }\n\n return result\n}\n\nexport const updateExpiredStatus = async ({ req, res, services }: AsyncReportUtilsParams) => {\n const { dprUser } = LocalsHelper.getValues(res)\n const report = await getExpiredStatus({ req, res, services })\n\n if (report && report.isExpired) {\n await services.recentlyViewedService.setToExpired(report.executionId, dprUser.id)\n await services.requestedReportService.setToExpired(report.executionId, dprUser.id)\n }\n\n return report ? report.isExpired : false\n}\n\nexport const init = async ({\n services,\n res,\n req,\n maxRows = 6,\n}: {\n services: Services\n res: Response\n req: Request\n maxRows?: number\n}) => {\n const { requestedReports, recentlyViewedReports, bookmarkingEnabled } = LocalsHelper.getValues(res)\n const requestedReportsList = await renderList({\n res,\n reportsData: requestedReports,\n filterFunction: RequestedReportUtils.filterReports,\n maxRows,\n type: 'requested',\n })\n const viewedReportsList = await renderList({\n res,\n reportsData: recentlyViewedReports,\n filterFunction: RecentlyViewedCardGroupUtils.filterReports,\n maxRows,\n type: 'viewed',\n })\n\n let bookmarks\n if (bookmarkingEnabled) {\n bookmarks = await BookmarklistUtils.renderBookmarkList({\n res,\n req,\n services,\n maxRows,\n })\n }\n\n return {\n requestedReports: requestedReportsList,\n viewedReports: viewedReportsList,\n bookmarks,\n }\n}\n\nexport const updateLastViewed = async ({\n req,\n services,\n reportStateData,\n userId,\n filters,\n}: {\n req: Request\n services: Services\n reportStateData: RequestedReport\n userId: string\n filters: FilterValue[]\n}) => {\n const { type, reportId, reportName, description, id, name, executionId, tableId, query, url } = reportStateData\n const reportData = { type, reportId, reportName, description, id, name }\n const executionData = { executionId, tableId }\n const queryData = query ? { query: query.data, querySummary: query.summary } : { query: {}, querySummary: [] }\n\n const columns = <string[]>req.query?.columns\n const { selectedPage, pageSize, sortColumn, sortedAsc } = <Dict<string>>req.query\n const filtersQuery = FiltersUtils.setRequestQueryFromFilterValues(filters)\n const reqQuery = {\n ...filtersQuery,\n ...(columns && { columns }),\n ...(selectedPage && { selectedPage }),\n ...(pageSize && { pageSize }),\n ...(sortColumn && { sortColumn }),\n ...(sortedAsc && { sortedAsc }),\n }\n const interactiveQueryData: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> } = {\n query: reqQuery,\n querySummary: SelectedFiltersUtils.getQuerySummary(filtersQuery, filters),\n }\n\n const recentlyViewedData = new UserStoreItemBuilder(reportData)\n .addExecutionData(executionData)\n .addQuery(queryData)\n .addInteractiveQuery(interactiveQueryData)\n .addStatus(RequestStatus.READY)\n .addTimestamp()\n .addAsyncUrls(url)\n .addReportUrls(req)\n .build()\n\n await services.requestedReportService.updateLastViewed(reportStateData.executionId, userId)\n await services.recentlyViewedService.setRecentlyViewed(recentlyViewedData, userId)\n}\n\nexport default {\n renderList,\n updateExpiredStatus,\n init,\n updateLastViewed,\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["utils_exports", "__export", "utils_default", "init", "renderList", "setDataFromStatus", "updateExpiredStatus", "updateLastViewed", "__toCommonJS", "import_dayjs", "import_UserReports", "import_requestStatusHelper", "import_utils", "import_reportListsHelper", "import_localsHelper", "import_DateMapper", "import_UserStoreItemBuilder", "formatData", "reportData", "reportDataCopy", "executionId", "tableId", "variantName", "name", "reportId", "variantId", "id", "description", "query", "interactiveQuery", "status", "timestamp", "reportName", "dataProductDefinitionsPath", "reportType", "url", "summary", "interactiveSummary", "type", "formatTable", "data", "card", "formatTableRow", "statusClass", "itemActions", "href", "text", "filtersSummary", "createSummaryHtml", "getTotals", "formattedCount", "maxRows", "summaryHtml", "item", "interactiveSummaryHtml", "getMeta", "formattedData", "res", "nestedBaseUrl", "LocalsHelper", "d", "reportsData", "formattedDate", "time", "dateMapper", "DateMapper", "dayjs", "filterFunction", "csrfToken", "formatted", "tableData", "path", "req", "services", "dprUser", "report", "requestedReports", "recentlyViewedReports", "bookmarkingEnabled", "requestedReportsList", "RequestedReportUtils", "viewedReportsList", "RecentlyViewedCardGroupUtils", "bookmarks", "BookmarklistUtils", "reportStateData", "userId", "filters", "executionData", "queryData", "columns", "selectedPage", "pageSize", "sortColumn", "sortedAsc", "filtersQuery", "FiltersUtils", "interactiveQueryData", "SelectedFiltersUtils", "recentlyViewedData", "UserStoreItemBuilder"]
7
7
  }
@@ -366,10 +366,20 @@ export const updateLastViewed = async ({
366
366
  const executionData = { executionId, tableId }
367
367
  const queryData = query ? { query: query.data, querySummary: query.summary } : { query: {}, querySummary: [] }
368
368
 
369
- const reqQuery = FiltersUtils.setRequestQueryFromFilterValues(filters)
370
- const interactiveQueryData: { query: Dict<string>; querySummary: Array<Dict<string>> } = {
369
+ const columns = <string[]>req.query?.columns
370
+ const { selectedPage, pageSize, sortColumn, sortedAsc } = <Dict<string>>req.query
371
+ const filtersQuery = FiltersUtils.setRequestQueryFromFilterValues(filters)
372
+ const reqQuery = {
373
+ ...filtersQuery,
374
+ ...(columns && { columns }),
375
+ ...(selectedPage && { selectedPage }),
376
+ ...(pageSize && { pageSize }),
377
+ ...(sortColumn && { sortColumn }),
378
+ ...(sortedAsc && { sortedAsc }),
379
+ }
380
+ const interactiveQueryData: { query: Dict<string | string[]>; querySummary: Array<Dict<string>> } = {
371
381
  query: reqQuery,
372
- querySummary: SelectedFiltersUtils.getQuerySummary(reqQuery, filters),
382
+ querySummary: SelectedFiltersUtils.getQuerySummary(filtersQuery, filters),
373
383
  }
374
384
 
375
385
  const recentlyViewedData = new UserStoreItemBuilder(reportData)
@@ -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