@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
8 lines (7 loc) • 4.95 kB
JavaScript
var T=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var B=(t,e)=>{for(var r in e)T(t,r,{get:e[r],enumerable:!0})},N=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of q(e))!F.call(t,a)&&a!==r&&T(t,a,{get:()=>e[a],enumerable:!(o=U(e,a))||o.enumerable});return t};var V=t=>N(T({},"__esModule",{value:!0}),t);var z={};B(z,{default:()=>K});module.exports=V(z);var S={createShowMoreHtml:(t,e)=>{let r=t?t.replace(/"/g,"'"):"";return`<div class="dpr-show-more" data-content="${r}" data-dpr-module="show-more" data-length="${e||100}">
<div class='dpr-show-more-content'>${r}</div><a class="dpr-show-hide-button govuk-link--no-visited-state" href="#">show more</a>
</div>`}};var H=t=>{let e=t.locals.csrfToken||"csrfToken",r=t.locals.user?.uuid?t.locals.user.uuid:"userId",o=t.locals.user?.token?t.locals.user.token:"token",a=t.locals.user?.activeCaseLoadId||"",s=t.locals.pathSuffix||"",n=t.locals.routePrefix||"",k=t.locals.definitions||[],l=t.locals.requestedReports||[],E=t.locals.recentlyViewedReports||[],I=t.locals.bookmarks||[],{bookmarkingEnabled:i,downloadingEnabled:p,definitionsPath:u,dpdPathFromQuery:c,dpdPathFromConfig:y,nestedBaseUrl:g}=t.locals;return{csrfToken:e,userId:r,token:o,definitions:k,requestedReports:l,recentlyViewedReports:E,bookmarks:I,bookmarkingEnabled:i,downloadingEnabled:p,dpdPathFromQuery:c,dpdPathFromConfig:y,definitionsPath:u,pathSuffix:s,routePrefix:n,activeCaseLoadId:a,nestedBaseUrl:g}},M=(t,e)=>(e&&(t.query={...t.query,dataProductDefinitionsPath:e}),t.query),h={getValues:H,setDdpPathToReqQuery:M};var O=t=>{let e="";switch(t){case"dashboard":e="govuk-tag--purple";break;case"unavailable":e="govuk-tag--grey";break;default:e="";break}return e};var L=(t,e)=>{let r=O(e),o=Y(e);return`<div>
<p class="govuk-body-s govuk-!-margin-bottom-2"><strong>${t}</strong></p>
<strong class="govuk-tag ${r} dpr-request-status-tag--small">${o}</strong>
</div>`},$=(t,e,r,o,a=!0)=>{if(!a)return'<strong class="govuk-tag govuk-tag--red dpr-request-status-tag dpr-request-status-tag--small dpr-unauthorised-report" aria-label="You are unauthorised to view this report">Unauthorised</strong>';let s,n;return e==="unavailable"?(n="Request missing report",s=`<a class='dpr-user-list-action govuk-link--no-visited-state govuk-!-margin-bottom-1 dpr-missing-report' href="${t}">${n}</a>`):(n=`Request ${e}`,r&&r==="sync"&&(n=`Load ${e}`),s=`<a class='dpr-user-list-action govuk-link--no-visited-state govuk-!-margin-bottom-1 dpr-live-report dpr-type__${e}' href="${t}">${n}</a>`,o&&(s=`${s}${o}`)),s},Y=t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase(),P=(t,e,r,o,a)=>{let s="";if(e==="unavailable")s=`dpr/request-missing-report/${r}/${o}/form`;else{let{pathSuffix:n,dpdPathFromQuery:k}=h.getValues(a),l=k?n:"";s=`dpr/request-report/${e}/${r}/${o}/filters${l}`,t&&t==="sync"&&(s=`dpr/view-report/sync/${e}/${r}/${o}/load-report${l}`)}return s};var w={getReportsList:async(t,e,r)=>{let{definitions:o,csrfToken:a,bookmarkingEnabled:s,userId:n}=h.getValues(t),l=o.sort((i,p)=>i.name<p.name?-1:i.name>p.name?1:0).flatMap(i=>{let{id:p,name:u,description:c}=i,{variants:y}=i,{dashboards:g}=i,{authorised:b}=i,f=y.map(d=>{let{id:m,name:D,description:A,isMissing:x}=d,{loadType:C}=d;return{reportName:u,reportId:p,id:m,name:D,description:A,type:x?"unavailable":"report",loadType:C,authorised:b,isMissing:x,...c&&c.length&&{reportDescription:c}}}),R=[];g&&(R=g.map(d=>{let{id:m,name:D,description:A,isMissing:x}=d;return{reportName:u,reportId:p,id:m,name:D,description:A,type:x?"unavailable":"dashboard",reportDescription:c,authorised:b}}));let v=[...R,...f];return v.sort((d,m)=>d.name<m.name?-1:d.name>m.name?1:0),v}),E=await Promise.all(l.map(async i=>{let{id:p,name:u,description:c,reportName:y,reportId:g,reportDescription:b,type:f,loadType:R,authorised:v}=i,d=c||b,m=P(R,f,g,p,t),D;return(r?.bookmarkingEnabled!==void 0?r?.bookmarkingEnabled:s)&&(D=await e.bookmarkService.createBookMarkToggleHtml({userId:n,reportId:g,id:p,csrfToken:a,ctxId:"reports-list",reportType:f})),[{html:`<p class="govuk-body-s">${y}</p>`},{html:L(u,f)},{html:S.createShowMoreHtml(d)},{html:$(m,f,R,D,v)}]}));return{head:[{text:"Product",classes:"dpr-product-head"},{text:"Name",classes:"dpr-name-head"},{text:"Description",classes:"dpr-description-head"},{text:"Actions",classes:"dpr-bookmark-head"}],rows:E,id:"dpr-reports-catalogue"}}};var _=async({features:t,res:e,services:r})=>({data:await w.getReportsList(e,r,t),features:X(e,t)}),X=(t,e)=>{let{bookmarkingEnabled:r}=h.getValues(t);return{filteringEnabled:e?.filteringEnabled===void 0||e.filteringEnabled,unauthorisedToggleEnabled:e?.unauthorisedToggleEnabled===void 0||e.unauthorisedToggleEnabled,howToUseEnabled:e?.howToUseEnabled===void 0||e.howToUseEnabled,bookmarkingEnabled:e?.bookmarkingEnabled!==void 0?e.bookmarkingEnabled:r}},K={init:_};
//# sourceMappingURL=utils.js.map