@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
3 lines (2 loc) • 2.5 kB
JavaScript
var h=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var C=(e,s)=>{for(var n in s)h(e,n,{get:s[n],enumerable:!0})},K=(e,s,n,t)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of v(s))!V.call(e,o)&&o!==n&&h(e,o,{get:()=>s[o],enumerable:!(t=g(s,o))||t.enumerable});return e};var I=e=>K(h({},"__esModule",{value:!0}),e);var H={};C(H,{default:()=>B});module.exports=I(H);var k=(e,s)=>{let{keys:n,measures:t,filters:o,expectNulls:a}=e.columns,r=t.map(c=>c.id),i=n?.map(c=>c.id)||[],l=o?.map(c=>c.id)||[],u=n?.some(c=>c.optional);s.length&&s[0].ts&&i.unshift("ts");let D=s.filter(c=>{let y=[];return Object.keys(c).forEach(f=>{let p=c[f].raw,d=!0;l.includes(f)?d=o.filter(m=>m.id===f).map(m=>m.equals).includes(p):i.includes(f)&&u?d=!0:i.includes(f)&&!u||r.includes(f)?d=p!==""&&p!==void 0&&p!==null:a&&(d=p===""||p===void 0||p===null),y.push(d)}),y.every(f=>f)});return u?w(D,n):D},b=(e,s)=>{let n=[],t=s.map(r=>r.id),o=s.every(r=>r.optional),a=[...t];return t.reverse().forEach(r=>{let i=s.find(l=>l.id===r);n.push([...a]),i&&i.optional&&a.pop()}),o&&n.push([]),n},R=(e,s)=>{let n=[];return s.every(t=>{let o=[];return e.forEach(a=>{let r=[];Object.keys(a).forEach(i=>{let l=a[i].raw,u=!0;t.includes(i)&&(u=l!==""&&l!==void 0&&l!==null),r.push(u)}),r.every(i=>i)&&o.push(a)}),o.length>0?(n=t,!1):(n=t,!0)}),n},w=(e,s)=>{let n=b(e,s),t=R(e,n);return e.filter(o=>{let a=[];return Object.keys(o).forEach(r=>{let i=o[r].raw,l=!0;t.includes(r)&&(l=i!==""&&i!==void 0&&i!==null),a.push(l)}),a.every(r=>r)})},E=e=>{let s=e[e.length-1]?.ts?.raw;return s?e.filter(n=>n.ts.raw===s):e},O=e=>{let s=e[0]?.ts?.raw;return s?e.filter(n=>n.ts.raw===s):e},q=e=>[...new Set(e.map(n=>n.ts.raw))].map(n=>e.filter(t=>t.ts.raw===n)),T=(e,s)=>[...new Set(e.map(t=>t[s].raw))].map(t=>e.filter(o=>o[s].raw===t)),j=(e,s)=>{if(!e||!e.length)return;let n=s[0],t=e.length-1,o=!1;for(;!o;){let a=`${e[t]?.id}`;a&&t!==-1&&(!n[a]||!n[a].raw||n[a].raw===""||n[a].raw===null)?t-=1:o=!0}return t!==-1?e[t]:void 0},x=(e,s,n=!1)=>{let{keys:t,measures:o}=e.columns,a=t||[],r=[...o];n&&(r=[...a,...o]);let i=r.map(l=>l.id);return s.map(l=>Object.keys(l).filter(u=>i.includes(u)).reduce((u,D)=>(u[D]=l[D],u),{}))},B={getDatasetRows:k,getLastestDataset:E,getEarliestDataset:O,filterRowsByDisplayColumns:x,groupRowsByTimestamp:q,groupRowsByKey:T,getGroupKey:j,getKeyVariations:b,getKeyIds:R,filterKeys:w};
//# sourceMappingURL=datasetHelper.js.map