@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.4.3 → 4.4.4

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 (35) hide show
  1. package/dpr/all.mjs +1 -1
  2. package/dpr/all.scss +39 -0
  3. package/dpr/assets/css/all.css +1 -1
  4. package/dpr/assets/js/all.min.mjs +1 -1
  5. package/dpr/components/_catalogue/catalogue-search/view.njk +1 -1
  6. package/dpr/components/_dashboards/dashboard/utils.js +1 -1
  7. package/dpr/components/_dashboards/dashboard/utils.ts +1 -1
  8. package/dpr/components/_embedded/embedded-report/utils.js +1 -1
  9. package/dpr/components/_embedded/embedded-report/utils.ts +1 -1
  10. package/dpr/components/_reports/report-columns/view.njk +1 -1
  11. package/dpr/components/_reports/report-data-table/utils.js +19 -0
  12. package/dpr/components/_reports/report-data-table/utils.ts +25 -0
  13. package/dpr/components/_reports/report-template/view.njk +1 -1
  14. package/dpr/components/_sync/sync-report/utils.js +1 -1
  15. package/dpr/components/_sync/sync-report/utils.ts +1 -1
  16. package/dpr/components/user-reports/bookmarks/utils.js +12 -11
  17. package/dpr/components/user-reports/bookmarks/utils.ts +12 -21
  18. package/dpr/components/user-reports/list/view.njk +2 -2
  19. package/dpr/components/user-reports/utils.ts +0 -1
  20. package/dpr/routes/bookmarks.js +2 -1
  21. package/dpr/routes/bookmarks.ts +2 -1
  22. package/dpr/services/bookmarkService.js +18 -15
  23. package/dpr/services/bookmarkService.ts +18 -15
  24. package/dpr/types/Templates.d.ts +1 -0
  25. package/dpr/types/api.d.ts +6 -0
  26. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.js +14 -6
  27. package/dpr/utils/SectionedDataTableBuilder/SectionedDataTableBuilder.ts +18 -8
  28. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.js +70 -0
  29. package/dpr/utils/SectionedFieldsTableBuilder/SectionedFieldsTableBuilder.ts +78 -0
  30. package/dpr/utils/report/asyncReportUtils.js +6 -2
  31. package/dpr/utils/report/asyncReportUtils.ts +8 -2
  32. package/dpr/utils/report/syncReportUtils.js +1 -1
  33. package/dpr/utils/report/syncReportUtils.ts +1 -1
  34. package/package.json +1 -1
  35. package/package.zip +0 -0
package/dpr/all.mjs CHANGED
@@ -25,7 +25,7 @@
25
25
  */
26
26
  !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("chart.js/helpers"),require("chart.js")):"function"==typeof define&&define.amd?define(["chart.js/helpers","chart.js"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).ChartDataLabels=e(t.Chart.helpers,t.Chart)}(this,(function(t,e){"use strict";var r=function(){if("undefined"!=typeof window){if(window.devicePixelRatio)return window.devicePixelRatio;var t=window.screen;if(t)return(t.deviceXDPI||1)/(t.logicalXDPI||1)}return 1}(),a=function(e){var r,a=[];for(e=[].concat(e);e.length;)"string"==typeof(r=e.pop())?a.unshift.apply(a,r.split("\n")):Array.isArray(r)?e.push.apply(e,r):t.isNullOrUndef(e)||a.unshift(""+r);return a},o=function(t,e,r){var a,o=[].concat(e),n=o.length,i=t.font,l=0;for(t.font=r.string,a=0;a<n;++a)l=Math.max(t.measureText(o[a]).width,l);return t.font=i,{height:n*r.lineHeight,width:l}},n=function(t,e,r){return Math.max(t,Math.min(e,r))},i=function(t,e){var r,a,o,n,i=t.slice(),l=[];for(r=0,o=e.length;r<o;++r)n=e[r],-1===(a=i.indexOf(n))?l.push([n,1]):i.splice(a,1);for(r=0,o=i.length;r<o;++r)l.push([i[r],-1]);return l};function l(t,e){var r=e.x,a=e.y;if(null===r)return{x:0,y:-1};if(null===a)return{x:1,y:0};var o=t.x-r,n=t.y-a,i=Math.sqrt(o*o+n*n);return{x:i?o/i:0,y:i?n/i:-1}}function s(t,e,r){var a=0;return t<r.left?a|=1:t>r.right&&(a|=2),e<r.top?a|=8:e>r.bottom&&(a|=4),a}function u(t,e){var r,a,o=e.anchor,n=t;return e.clamp&&(n=function(t,e){for(var r,a,o,n=t.x0,i=t.y0,l=t.x1,u=t.y1,d=s(n,i,e),c=s(l,u,e);d|c&&!(d&c);)8&(r=d||c)?(a=n+(l-n)*(e.top-i)/(u-i),o=e.top):4&r?(a=n+(l-n)*(e.bottom-i)/(u-i),o=e.bottom):2&r?(o=i+(u-i)*(e.right-n)/(l-n),a=e.right):1&r&&(o=i+(u-i)*(e.left-n)/(l-n),a=e.left),r===d?d=s(n=a,i=o,e):c=s(l=a,u=o,e);return{x0:n,x1:l,y0:i,y1:u}}(n,e.area)),"start"===o?(r=n.x0,a=n.y0):"end"===o?(r=n.x1,a=n.y1):(r=(n.x0+n.x1)/2,a=(n.y0+n.y1)/2),function(t,e,r,a,o){switch(o){case"center":r=a=0;break;case"bottom":r=0,a=1;break;case"right":r=1,a=0;break;case"left":r=-1,a=0;break;case"top":r=0,a=-1;break;case"start":r=-r,a=-a;break;case"end":break;default:o*=Math.PI/180,r=Math.cos(o),a=Math.sin(o)}return{x:t,y:e,vx:r,vy:a}}(r,a,t.vx,t.vy,e.align)}var d=function(t,e){var r=(t.startAngle+t.endAngle)/2,a=Math.cos(r),o=Math.sin(r),n=t.innerRadius,i=t.outerRadius;return u({x0:t.x+a*n,y0:t.y+o*n,x1:t.x+a*i,y1:t.y+o*i,vx:a,vy:o},e)},c=function(t,e){var r=l(t,e.origin),a=r.x*t.options.radius,o=r.y*t.options.radius;return u({x0:t.x-a,y0:t.y-o,x1:t.x+a,y1:t.y+o,vx:r.x,vy:r.y},e)},h=function(t,e){var r=l(t,e.origin),a=t.x,o=t.y,n=0,i=0;return t.horizontal?(a=Math.min(t.x,t.base),n=Math.abs(t.base-t.x)):(o=Math.min(t.y,t.base),i=Math.abs(t.base-t.y)),u({x0:a,y0:o+i,x1:a+n,y1:o,vx:r.x,vy:r.y},e)},f=function(t,e){var r=l(t,e.origin);return u({x0:t.x,y0:t.y,x1:t.x+(t.width||0),y1:t.y+(t.height||0),vx:r.x,vy:r.y},e)},x=function(t){return Math.round(t*r)/r};function y(t,e){var r=e.chart.getDatasetMeta(e.datasetIndex).vScale;if(!r)return null;if(void 0!==r.xCenter&&void 0!==r.yCenter)return{x:r.xCenter,y:r.yCenter};var a=r.getBasePixel();return t.horizontal?{x:a,y:null}:{x:null,y:a}}function v(t,e,r){var a=r.backgroundColor,o=r.borderColor,n=r.borderWidth;(a||o&&n)&&(t.beginPath(),function(t,e,r,a,o,n){var i=Math.PI/2;if(n){var l=Math.min(n,o/2,a/2),s=e+l,u=r+l,d=e+a-l,c=r+o-l;t.moveTo(e,u),s<d&&u<c?(t.arc(s,u,l,-Math.PI,-i),t.arc(d,u,l,-i,0),t.arc(d,c,l,0,i),t.arc(s,c,l,i,Math.PI)):s<d?(t.moveTo(s,r),t.arc(d,u,l,-i,i),t.arc(s,u,l,i,Math.PI+i)):u<c?(t.arc(s,u,l,-Math.PI,0),t.arc(s,c,l,0,Math.PI)):t.arc(s,u,l,-Math.PI,Math.PI),t.closePath(),t.moveTo(e,r)}else t.rect(e,r,a,o)}(t,x(e.x)+n/2,x(e.y)+n/2,x(e.w)-n,x(e.h)-n,r.borderRadius),t.closePath(),a&&(t.fillStyle=a,t.fill()),o&&n&&(t.strokeStyle=o,t.lineWidth=n,t.lineJoin="miter",t.stroke()))}function b(t,e,r){var a=t.shadowBlur,o=r.stroked,n=x(r.x),i=x(r.y),l=x(r.w);o&&t.strokeText(e,n,i,l),r.filled&&(a&&o&&(t.shadowBlur=0),t.fillText(e,n,i,l),a&&o&&(t.shadowBlur=a))}var _=function(t,e,r,a){var o=this;o._config=t,o._index=a,o._model=null,o._rects=null,o._ctx=e,o._el=r};t.merge(_.prototype,{_modelize:function(r,a,n,i){var l,s=this,u=s._index,x=t.toFont(t.resolve([n.font,{}],i,u)),v=t.resolve([n.color,e.defaults.color],i,u);return{align:t.resolve([n.align,"center"],i,u),anchor:t.resolve([n.anchor,"center"],i,u),area:i.chart.chartArea,backgroundColor:t.resolve([n.backgroundColor,null],i,u),borderColor:t.resolve([n.borderColor,null],i,u),borderRadius:t.resolve([n.borderRadius,0],i,u),borderWidth:t.resolve([n.borderWidth,0],i,u),clamp:t.resolve([n.clamp,!1],i,u),clip:t.resolve([n.clip,!1],i,u),color:v,display:r,font:x,lines:a,offset:t.resolve([n.offset,4],i,u),opacity:t.resolve([n.opacity,1],i,u),origin:y(s._el,i),padding:t.toPadding(t.resolve([n.padding,4],i,u)),positioner:(l=s._el,l instanceof e.ArcElement?d:l instanceof e.PointElement?c:l instanceof e.BarElement?h:f),rotation:t.resolve([n.rotation,0],i,u)*(Math.PI/180),size:o(s._ctx,a,x),textAlign:t.resolve([n.textAlign,"start"],i,u),textShadowBlur:t.resolve([n.textShadowBlur,0],i,u),textShadowColor:t.resolve([n.textShadowColor,v],i,u),textStrokeColor:t.resolve([n.textStrokeColor,v],i,u),textStrokeWidth:t.resolve([n.textStrokeWidth,0],i,u)}},update:function(e){var r,o,n,i=this,l=null,s=null,u=i._index,d=i._config,c=t.resolve([d.display,!0],e,u);c&&(r=e.dataset.data[u],o=t.valueOrDefault(t.callback(d.formatter,[r,e]),r),(n=t.isNullOrUndef(o)?[]:a(o)).length&&(s=function(t){var e=t.borderWidth||0,r=t.padding,a=t.size.height,o=t.size.width,n=-o/2,i=-a/2;return{frame:{x:n-r.left-e,y:i-r.top-e,w:o+r.width+2*e,h:a+r.height+2*e},text:{x:n,y:i,w:o,h:a}}}(l=i._modelize(c,n,d,e)))),i._model=l,i._rects=s},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(t,e){var r,a=t.ctx,o=this._model,i=this._rects;this.visible()&&(a.save(),o.clip&&(r=o.area,a.beginPath(),a.rect(r.left,r.top,r.right-r.left,r.bottom-r.top),a.clip()),a.globalAlpha=n(0,o.opacity,1),a.translate(x(e.x),x(e.y)),a.rotate(o.rotation),v(a,i.frame,o),function(t,e,r,a){var o,n=a.textAlign,i=a.color,l=!!i,s=a.font,u=e.length,d=a.textStrokeColor,c=a.textStrokeWidth,h=d&&c;if(u&&(l||h))for(r=function(t,e,r){var a=r.lineHeight,o=t.w,n=t.x;return"center"===e?n+=o/2:"end"!==e&&"right"!==e||(n+=o),{h:a,w:o,x:n,y:t.y+a/2}}(r,n,s),t.font=s.string,t.textAlign=n,t.textBaseline="middle",t.shadowBlur=a.textShadowBlur,t.shadowColor=a.textShadowColor,l&&(t.fillStyle=i),h&&(t.lineJoin="round",t.lineWidth=c,t.strokeStyle=d),o=0,u=e.length;o<u;++o)b(t,e[o],{stroked:h,filled:l,w:r.w,x:r.x,y:r.y+r.h*o})}(a,o.lines,i.text,o),a.restore())}});var p=Number.MIN_SAFE_INTEGER||-9007199254740991,g=Number.MAX_SAFE_INTEGER||9007199254740991;function m(t,e,r){var a=Math.cos(r),o=Math.sin(r),n=e.x,i=e.y;return{x:n+a*(t.x-n)-o*(t.y-i),y:i+o*(t.x-n)+a*(t.y-i)}}function w(t,e){var r,a,o,n,i,l=g,s=p,u=e.origin;for(r=0;r<t.length;++r)o=(a=t[r]).x-u.x,n=a.y-u.y,i=e.vx*o+e.vy*n,l=Math.min(l,i),s=Math.max(s,i);return{min:l,max:s}}function M(t,e){var r=e.x-t.x,a=e.y-t.y,o=Math.sqrt(r*r+a*a);return{vx:(e.x-t.x)/o,vy:(e.y-t.y)/o,origin:t,ln:o}}var k=function(){this._rotation=0,this._rect={x:0,y:0,w:0,h:0}};function $(t,e,r){var a=e.positioner(t,e),o=a.vx,n=a.vy;if(!o&&!n)return{x:a.x,y:a.y};var i=r.w,l=r.h,s=e.rotation,u=Math.abs(i/2*Math.cos(s))+Math.abs(l/2*Math.sin(s)),d=Math.abs(i/2*Math.sin(s))+Math.abs(l/2*Math.cos(s)),c=1/Math.max(Math.abs(o),Math.abs(n));return u*=o*c,d*=n*c,u+=e.offset*o,d+=e.offset*n,{x:a.x+u,y:a.y+d}}t.merge(k.prototype,{center:function(){var t=this._rect;return{x:t.x+t.w/2,y:t.y+t.h/2}},update:function(t,e,r){this._rotation=r,this._rect={x:e.x+t.x,y:e.y+t.y,w:e.w,h:e.h}},contains:function(t){var e=this,r=e._rect;return!((t=m(t,e.center(),-e._rotation)).x<r.x-1||t.y<r.y-1||t.x>r.x+r.w+2||t.y>r.y+r.h+2)},intersects:function(t){var e,r,a,o=this._points(),n=t._points(),i=[M(o[0],o[1]),M(o[0],o[3])];for(this._rotation!==t._rotation&&i.push(M(n[0],n[1]),M(n[0],n[3])),e=0;e<i.length;++e)if(r=w(o,i[e]),a=w(n,i[e]),r.max<a.min||a.max<r.min)return!1;return!0},_points:function(){var t=this,e=t._rect,r=t._rotation,a=t.center();return[m({x:e.x,y:e.y},a,r),m({x:e.x+e.w,y:e.y},a,r),m({x:e.x+e.w,y:e.y+e.h},a,r),m({x:e.x,y:e.y+e.h},a,r)]}});var C={prepare:function(t){var e,r,a,o,n,i=[];for(e=0,a=t.length;e<a;++e)for(r=0,o=t[e].length;r<o;++r)n=t[e][r],i.push(n),n.$layout={_box:new k,_hidable:!1,_visible:!0,_set:e,_idx:n._index};return i.sort((function(t,e){var r=t.$layout,a=e.$layout;return r._idx===a._idx?a._set-r._set:a._idx-r._idx})),this.update(i),i},update:function(t){var e,r,a,o,n,i=!1;for(e=0,r=t.length;e<r;++e)o=(a=t[e]).model(),(n=a.$layout)._hidable=o&&"auto"===o.display,n._visible=a.visible(),i|=n._hidable;i&&function(t){var e,r,a,o,n,i,l;for(e=0,r=t.length;e<r;++e)(o=(a=t[e]).$layout)._visible&&(l=new Proxy(a._el,{get:(t,e)=>t.getProps([e],!0)[e]}),n=a.geometry(),i=$(l,a.model(),n),o._box.update(i,n,a.rotation()));(function(t,e){var r,a,o,n;for(r=t.length-1;r>=0;--r)for(o=t[r].$layout,a=r-1;a>=0&&o._visible;--a)(n=t[a].$layout)._visible&&o._box.intersects(n._box)&&e(o,n)})(t,(function(t,e){var r=t._hidable,a=e._hidable;r&&a||a?e._visible=!1:r&&(t._visible=!1)}))}(t)},lookup:function(t,e){var r,a;for(r=t.length-1;r>=0;--r)if((a=t[r].$layout)&&a._visible&&a._box.contains(e))return t[r];return null},draw:function(t,e){var r,a,o,n,i,l;for(r=0,a=e.length;r<a;++r)(n=(o=e[r]).$layout)._visible&&(i=o.geometry(),l=$(o._el,o.model(),i),n._box.update(l,i,o.rotation()),o.draw(t,l))}},P="$default";function S(e,r,a,o){if(r){var n,i=a.$context,l=a.$groups;r[l._set]&&(n=r[l._set][l._key])&&!0===t.callback(n,[i,o])&&(e.$datalabels._dirty=!0,a.update(i))}}function I(t,e){var r,a,o=t.$datalabels,n=o._listeners;if(n.enter||n.leave){if("mousemove"===e.type)a=C.lookup(o._labels,e);else if("mouseout"!==e.type)return;r=o._hovered,o._hovered=a,function(t,e,r,a,o){var n,i;(r||a)&&(r?a?r!==a&&(i=n=!0):i=!0:n=!0,i&&S(t,e.leave,r,o),n&&S(t,e.enter,a,o))}(t,n,r,a,e)}}return{id:"datalabels",defaults:{align:"center",anchor:"center",backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,clamp:!1,clip:!1,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},formatter:function(e){if(t.isNullOrUndef(e))return null;var r,a,o,n=e;if(t.isObject(e))if(t.isNullOrUndef(e.label))if(t.isNullOrUndef(e.r))for(n="",o=0,a=(r=Object.keys(e)).length;o<a;++o)n+=(0!==o?", ":"")+r[o]+": "+e[r[o]];else n=e.r;else n=e.label;return""+n},labels:void 0,listeners:{},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,textShadowBlur:0,textShadowColor:void 0},beforeInit:function(t){t.$datalabels={_actives:[]}},beforeUpdate:function(t){var e=t.$datalabels;e._listened=!1,e._listeners={},e._datasets=[],e._labels=[]},afterDatasetUpdate:function(e,r,a){var o,n,i,l,s,u,d,c,h=r.index,f=e.$datalabels,x=f._datasets[h]=[],y=e.isDatasetVisible(h),v=e.data.datasets[h],b=function(e,r){var a,o,n,i=e.datalabels,l=[];return!1===i?null:(!0===i&&(i={}),r=t.merge({},[r,i]),o=r.labels||{},n=Object.keys(o),delete r.labels,n.length?n.forEach((function(e){o[e]&&l.push(t.merge({},[r,o[e],{_key:e}]))})):l.push(r),a=l.reduce((function(e,r){return t.each(r.listeners||{},(function(t,a){e[a]=e[a]||{},e[a][r._key||P]=t})),delete r.listeners,e}),{}),{labels:l,listeners:a})}(v,a),p=r.meta.data||[],g=e.ctx;for(g.save(),o=0,i=p.length;o<i;++o)if((d=p[o]).$datalabels=[],y&&d&&e.getDataVisibility(o)&&!d.skip)for(n=0,l=b.labels.length;n<l;++n)u=(s=b.labels[n])._key,(c=new _(s,g,d,o)).$groups={_set:h,_key:u||P},c.$context={active:!1,chart:e,dataIndex:o,dataset:v,datasetIndex:h},c.update(c.$context),d.$datalabels.push(c),x.push(c);g.restore(),t.merge(f._listeners,b.listeners,{merger:function(t,e,a){e[t]=e[t]||{},e[t][r.index]=a[t],f._listened=!0}})},afterUpdate:function(t){t.$datalabels._labels=C.prepare(t.$datalabels._datasets)},afterDatasetsDraw:function(t){C.draw(t,t.$datalabels._labels)},beforeEvent:function(t,e){if(t.$datalabels._listened){var r=e.event;switch(r.type){case"mousemove":case"mouseout":I(t,r);break;case"click":!function(t,e){var r=t.$datalabels,a=r._listeners.click,o=a&&C.lookup(r._labels,e);o&&S(t,a,o,e)}(t,r)}}},afterEvent:function(t){var e,r,a,o,n,l,s,u=t.$datalabels,d=u._actives,c=u._actives=t.getActiveElements(),h=i(d,c);for(e=0,r=h.length;e<r;++e)if((n=h[e])[1])for(a=0,o=(s=n[0].element.$datalabels||[]).length;a<o;++a)(l=s[a]).$context.active=1===n[1],l.update(l.$context);(u._dirty||h.length)&&(C.update(u._labels),t.render()),delete u._dirty}}}));
27
27
 
28
- var X=Object.defineProperty,K=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var tt=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable;var z=(o,t,e)=>t in o?X(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,m=(o,t)=>{for(var e in t||(t={}))tt.call(t,e)&&z(o,e,t[e]);if(J)for(var e of J(t))et.call(t,e)&&z(o,e,t[e]);return o},k=(o,t)=>K(o,Z(t));var l=(o,t,e)=>new Promise((s,a)=>{var i=d=>{try{n(e.next(d))}catch(c){a(c)}},r=d=>{try{n(e.throw(d))}catch(c){a(c)}},n=d=>d.done?s(d.value):Promise.resolve(d.value).then(i,r);n((e=e.apply(o,t)).next())});var w=class{showLoadingAnimation(t){document.querySelectorAll(".dpr-loading-panel").forEach(a=>{a.classList.add("show")});let s=".dpr-loading-anim";t&&(s=`.${t} ${s}`),document.querySelectorAll(s).forEach(a=>{a.classList.add("show")})}hideLoadingAnimation(){document.querySelectorAll(".dpr-loading-panel").forEach(t=>{t.classList.remove("show")}),document.querySelectorAll(".dpr-loading-anim").forEach(t=>{t.classList.remove("show")})}};var u=class{constructor(t,e){this.element=t,this.loadingHelper=e}static getModuleName(){throw new Error("Module name not set")}getElement(){return this.element}initialise(){throw new Error("Initialisation not configured")}};var S=class extends u{static getModuleName(){return"card-group"}initialise(){let t=this.getElement().querySelectorAll("[data-click-navigate-to]"),e="card-loading";t.forEach(s=>{s.addEventListener("click",()=>{s.classList.add(e),this.loadingHelper.showLoadingAnimation(e),t.forEach(a=>{a.classList.contains("card-loading")||a.classList.add("card-disabled")}),window.location.href=s.dataset.clickNavigateTo})})}};var x=class extends u{static getModuleName(){return"dpr-catalogue-search"}initialise(){this.searchBox=this.getElement().querySelector(".dpr-search-box"),this.shwoUnauthorisedCheckbox=this.getElement().querySelector("#show-unauthorised"),this.totalShown=this.getElement().querySelector("#total-shown"),this.totalAmount=this.getElement().querySelector("#total-amount"),this.table=this.getElement().querySelector("table").querySelector("tbody"),this.totalRows=Array.from(this.table.rows).length,this.shownRows=this.totalRows,this.searchBox&&this.initSeachBoxEvents(),this.shwoUnauthorisedCheckbox&&this.initShowUnauthorisedEvents(),this.initInputFromQueryParams()}initSeachBoxEvents(){this.searchBox.addEventListener("keyup",t=>{this.updateTableRows(t.target.value);let e=new URLSearchParams(window.location.search);e.set(this.searchBox.id,t.target.value),window.history.replaceState(null,null,`?${e.toString()}`)})}initShowUnauthorisedEvents(){this.shwoUnauthorisedCheckbox.addEventListener("change",t=>{let e=new URLSearchParams(window.location.search);t.target.checked?e.set(t.target.id,t.target.value):e.delete(t.target.id,t.target.value),window.history.replaceState(null,null,`?${e.toString()}`),this.updateTableRows(this.searchBox.value)}),this.updateTableRows(this.searchBox.value)}updateTableRows(t){let e=this.getElement().querySelector("table").querySelector("tbody"),s=Array.from(e.rows);s.forEach(a=>a.classList.add("search-option-hide")),this.updateSearchListing(s,t),this.toggleUnauthorisedRows(s),this.updateTotals(s)}updateTotals(){this.totalShown.innerText=this.shownRows,this.totalAmount.innerText=this.totalRows}toggleUnauthorisedRows(t){let s=new URLSearchParams(window.location.search).get("show-unauthorised");t.filter(a=>Array.from(a.cells).find(i=>i.innerHTML.includes("dpr-unauthorised-report"))).forEach(a=>{s?a.classList.remove("search-option-hide"):a.classList.contains("search-option-hide")||a.classList.add("search-option-hide")})}updateSearchListing(t,e){let s=0;t.filter(a=>!e||e.length===0||Array.from(a.cells).find(i=>{let r=e.toLowerCase();return i.innerText.toLowerCase().includes(r.toLowerCase())})).forEach(a=>{a.classList.remove("search-option-hide"),s+=1}),this.shownRows=s}initInputFromQueryParams(){new URLSearchParams(window.location.search).forEach((e,s)=>{let a=document.getElementById(s);a&&a.classList.contains("dpr-search-box")&&(a.value=e,this.updateTableRows(a.value)),a&&a.id==="show-unauthorised"&&a.setAttribute("checked","")})}};var I=class extends u{static getModuleName(){return"bookmark-toggle"}initialise(){this.initToggles()}initToggles(){this.getElement().querySelectorAll(".bookmark-input[type=checkbox]").forEach(e=>{let s=e.getAttribute("data-csrf-token"),a=e.getAttribute("data-report-id"),i=e.getAttribute("data-id"),r=e.getAttribute("data-report-type");this.bookmarkWrapper=e.parentNode,this.bookmarkColumn=this.bookmarkWrapper.parentNode,this.bookmarkLabel=this.bookmarkWrapper.querySelector(".dpr-bookmark-label--component"),e.addEventListener("change",()=>l(this,null,function*(){e.checked?yield this.addBookmark(e,i,a,r,s):yield this.removeBookmark(e,i,a,r,s)})),this.bookmarkColumn.addEventListener("keyup",n=>l(this,null,function*(){n.key==="Enter"&&(yield this.handleBookmarkChange(e,i,a,r,s))}))})}addBookmark(t,e,s,a,i){return l(this,null,function*(){t.setAttribute("checked",""),this.bookmarkWrapper.setAttribute("tooltip","Remove bookmark"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmarked"),yield this.toggleBookmark("add",e,s,a,i)})}removeBookmark(t,e,s,a,i){return l(this,null,function*(){t.removeAttribute("checked"),this.bookmarkWrapper.setAttribute("tooltip","Add bookmark"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmark removed"),yield this.toggleBookmark("remove",e,s,a,i)})}handleBookmarkChange(t,e,s,a,i){return l(this,null,function*(){t.checked?(t.removeAttribute("checked"),this.bookmarkWrapper.setAttribute("tooltip","Add bookmark"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmark removed"),yield this.toggleBookmark("remove",e,s,a,i)):(t.setAttribute("checked",""),this.bookmarkWrapper.setAttribute("tooltip","Bookmarked"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmarked"),yield this.toggleBookmark("add",e,s,a,i))})}toggleBookmark(t,e,s,a,i){return l(this,null,function*(){yield fetch(t==="add"?"/dpr/addBookmark/":"/dpr/removeBookmark/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":i},body:JSON.stringify({id:e,reportId:s,reportType:a})}).then(()=>{window.location.href.includes("/report")||window.location.reload()}).catch(n=>console.error("Error:",n))})}};var D=class extends u{static getModuleName(){return"show-more"}initialise(){this.initShowMore()}initShowMore(){let t=this.getElement(),e=t.querySelector(".dpr-show-more-content"),s=t.querySelector(".dpr-show-hide-button"),a=t.getAttribute("data-content"),i=+t.getAttribute("data-length")||200,r=a.replaceAll(/<[^>]+>/g,"").substring(0,i);a.length>i?e.innerHTML=`${r}... `:(e.innerHTML=`${a}`,s.style.display="none"),s.addEventListener("click",n=>{n.preventDefault(),s.innerHTML==="show more"?(e.innerHTML=`${a} `,s.innerHTML="show less"):s.innerHTML==="show less"&&(e.innerHTML=`${r}... `,s.innerHTML="show more")})}};var p=class extends u{initInputsFromQueryParams(){this.queryParams=new URLSearchParams(window.location.search),this.queryParams.forEach((t,e)=>{let s=document.getElementsByName(e);if(s.length){let a=s[0],{type:i}=a;if(i==="radio"||i==="checkbox")this.setMultiSelectValue(s,t);else if(a.classList.contains("moj-js-datepicker-input")){let r=dayjs(t,"YYYY-MM-DD").format("DD/MM/YYYY");a.value=r!=="Invalid Date"?r:""}else a.value=t}})}initInputEvents(t){Array.from(t).forEach(e=>{e.addEventListener("change",()=>{this.setQueryParamFromInput(e,!0,!1)})})}initQueryParamsFromInputs(t){Array.from(t).forEach(e=>{e.type!=="hidden"&&this.setQueryParamFromInput(e,!1,!0)})}setQueryParamFromInput(t,e=!1,s=!1){let{type:a}=t;if(a==="checkbox"||a==="radio")this.setMultiSelectQueryParam(t,e,s);else{let{name:i}=t,{value:r}=t,{staticOptionNameValue:n}=t,d=t.classList.contains("moj-js-datepicker-input");if(d){let h=dayjs(r,"D/M/YYYY").format("YYYY-MM-DD");r=h!=="Invalid Date"?h:""}let c=!d&&n?n:r;i&&this.updateQueryParam(i,c)}}setMultiSelectQueryParam(t,e,s){this.queryParams=new URLSearchParams(window.location.search);let{name:a,value:i,checked:r,type:n}=t;if(r&&!this.queryParams.has(a,i)){let d;n==="checkbox"&&(d="append",!s&&a!=="columns"&&this.updateQueryParam("preventDefault",!0)),this.updateQueryParam(a,i,d)}else!r&&this.queryParams.has(a,i)&&e&&(n==="checkbox"&&!s&&a!=="columns"&&this.updateQueryParam("preventDefault",!0),this.updateQueryParam(a,i,"delete"))}updateQueryParam(t,e,s){if(this.queryParams=new URLSearchParams(window.location.search),!e&&t.length)this.queryParams.delete(t);else switch(s){case"append":this.queryParams.append(t,e);break;case"delete":this.queryParams.delete(t,e);break;default:this.queryParams.set(t,e);break}window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}clearQueryParams(t){this.queryParams=new URLSearchParams(window.location.search),Array.from(this.queryParams).forEach(s=>{t&&s[0].includes(t)&&this.queryParams.delete(s[0],s[1]),t==="filters"&&this.queryParams.delete("preventDefault")}),window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}getFormDataAsObject(t,e){let s=new FormData(t),a=Array.from(s.entries()).filter(i=>i[1]!=="").map(i=>({[`${e}${i[0]}`]:i[1]}));return Object.assign({},...a)}setMultiSelectValue(t,e){let s=Array.from(t).find(a=>a.getAttribute("value")===e);s&&(s.checked=!0)}setCheckBoxValues(t,e){let s=Array.from(t).find(a=>a.getAttribute("value")===e);s&&(s.checked=!0)}removeNoFilterValues(){this.queryParams=new URLSearchParams(window.location.search),Array.from(this.queryParams).forEach(e=>{e[1].includes("no-filter")&&this.queryParams.delete(e[0],e[1])}),window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}};var y=class extends p{initFormValidation(t){t.forEach(e=>{let s=e.closest("div.govuk-form-group");if(s){let a=s.querySelector("p.govuk-error-message");a&&(s.classList.remove("govuk-form-group--error"),a.classList.add("govuk-error-message--hidden"),e.classList.remove("govuk-input--error"),e.classList.remove("govuk-textarea--error"),e.classList.remove("govuk-select--error"))}})}validateForm(){this.errorMessages=[];let t="";this.formFields.forEach(e=>{if(e.getAttribute("name")!==t&&e.tagName!=="BUTTON"){let a=e.closest("div.govuk-form-group");if(a){let i=a.querySelector("p.govuk-error-message");this.fieldIsValid(e)?i&&a&&this.hideFieldError(e,a,i):this.showFieldError(e,a,i)}}t=e.getAttribute("name")}),this.errorMessages.length?(this.buildErrorSummary(),this.errorSummary.classList.remove("query-error-summary--hidden")):this.errorSummary.classList.add("query-error-summary--hidden")}fieldIsValid(t){let{type:e}=t;switch(e){case"checkbox":return this.validateCheckbox(t);default:return t.checkValidity()}}validateCheckbox(t){let e=t.closest("div.govuk-checkboxes");if(e.hasAttribute("required")){let s=e.querySelectorAll('input[type="checkbox"]');return Array.from(s).some(a=>a.checked)}return!0}showFieldError(t,e,s){e.classList.add("govuk-form-group--error");let a=this.setValidationMessage(t.validity,t,s);s.innerHTML=`<span class="govuk-visually-hidden">Error:</span>${a}`,s.classList.remove("govuk-error-message--hidden"),t.classList.add("govuk-input--error")}hideFieldError(t,e,s){e.classList.remove("govuk-form-group--error"),s.classList.add("govuk-error-message--hidden"),t.classList.remove("govuk-input--error")}buildErrorSummary(){let t=this.errorSummary.querySelector("div.govuk-error-summary__body"),e="";this.errorMessages.forEach(a=>{e+=`<li><a href="${a.href}">${a.text}</a></li>`});let s=`<ul class="govuk-list govuk-error-summary__list">${e}</ul>`;t.innerHTML=s}getDisplayName(t){switch(t.getAttribute("type")){case"text":return t.getAttribute("display-name");case"radio":return t.closest("div.govuk-radios").getAttribute("display-name");case"checkbox":return t.closest("div.govuk-checkboxes").getAttribute("display-name");default:return t.getAttribute("display-name")}}setValidationMessage(t,e,s){let a=s.lastChild.nodeValue.replace(/(\r\n|\n|\r)/gm,"").trim(),i=e.getAttribute("id"),r=this.getDisplayName(e),n;if((t.valueMissing||e.type==="checkbox")&&(n=a.length?a:`${r} is required`,this.errorMessages.push({text:n,href:`#${i}`})),t.patternMismatch){let d=e.getAttribute("pattern-hint")||e.getAttribute("pattern");n=a.length?a:`The value for ${r} must be in the correct pattern: ${d}`,this.errorMessages.push({text:n,href:`#${i}`})}return n}};var L=class extends y{static getModuleName(){return"download-feedback-form"}initialise(){this.errorMessages=[],this.mainForm=document.getElementById("download-feedback-form"),this.mainForm.noValidate=!0,this.formFields=Array.from(this.mainForm.elements),this.errorSummary=document.getElementById("download-feedback-form-summary"),this.submitButton=document.getElementById("download-feedback-form-submit"),this.success=document.getElementById("download-feedback-form-success"),this.initSubmitButton(),this.initFormValidation(this.formFields),this.mainForm.classList.remove("download-feedback-form--hidden")}initSubmitButton(){this.submitButton.addEventListener("click",t=>{t.preventDefault(),this.validateForm(),this.mainForm.checkValidity()&&this.mainForm.requestSubmit()})}};var A=class extends p{static getModuleName(){return"pagination"}initialise(){this.pageSizeSelect=document.getElementById("page-size-select"),this.initInputsFromQueryParams(),this.initSelectEvent()}initSelectEvent(){this.pageSizeSelect.addEventListener("change",()=>{this.queryParams=new URLSearchParams(window.location.search);let{name:t,value:e}=this.pageSizeSelect;this.queryParams.set(t,e),this.queryParams.set("selectedPage","1"),window.history.replaceState(null,null,`?${this.queryParams.toString()}`),window.location.reload()})}};var q=class extends u{static getModuleName(){return"report-actions"}initialise(){this.refreshButton=document.getElementById("dpr-button-refresh"),this.printButton=document.getElementById("dpr-button-printable"),this.shareButton=document.getElementById("dpr-button-sharable"),this.downloadButton=document.getElementById("dpr-button-downloadable"),this.copyButton=document.getElementById("dpr-button-copy"),this.initRefreshEvent(),this.initPrintButtonEvent(),this.initShareButtonEvent(),this.initCopyButtonEvent()}initPrintButtonEvent(){if(this.printButton){let t=this.printButton.getAttribute("data-disabled");this.printButton.addEventListener("click",()=>{t!=="true"&&window.print()}),this.printButton.addEventListener("keyup",e=>{e.key==="Enter"&&t!=="true"&&window.print()})}}initShareButtonEvent(){if(this.shareButton){let t=this.shareButton.getAttribute("data-href");this.shareButton.addEventListener("click",()=>{window.location=t}),this.shareButton.addEventListener("keyup",e=>{e.key==="Enter"&&(window.location=t)})}}initCopyButtonEvent(){if(this.copyButton){let t=this.copyButton.getAttribute("data-href");this.copyButton.addEventListener("click",()=>{navigator.clipboard.writeText(t)}),this.copyButton.addEventListener("keyup",e=>{e.key==="Enter"&&navigator.clipboard.writeText(t)})}}initRefreshEvent(){if(this.refreshButton){let t=this.refreshButton.getAttribute("data-href");this.refreshButton.addEventListener("click",()=>{window.location=t}),this.refreshButton.addEventListener("keyup",e=>{e.key==="Enter"&&(window.location=t)})}}};var P=class extends u{static getModuleName(){return"data-table"}initialise(){this.tableContainer=document.getElementById("dpr-table-wrapper"),this.table=document.getElementById("dpr-data-table"),this.overflowGradient=document.getElementById("dpr-overflow-gradient"),this.createTableHeaderAndFooter(),this.initTableScrollListener()}initTableScrollListener(){this.checkOffsetWidths(),window.addEventListener("resize",()=>{this.checkOffsetWidths()}),this.tableContainer.addEventListener("scroll",t=>{let e=this.table.offsetWidth,s=t.target.offsetWidth+t.target.scrollLeft;e===s?this.overflowGradient.style.display="none":this.overflowGradient.style.display="block"})}checkOffsetWidths(){this.tableContainer.offsetWidth>=this.table.offsetWidth?this.overflowGradient.style.display="none":this.overflowGradient.style.display="block"}createTableHeaderAndFooter(){if(this.table){let t=this.table.getAttribute("data-classification"),e=Number(this.table.getAttribute("data-col-length")),s=`<b>${t}</b>`,r=this.table.createTHead().insertRow(0).insertCell(0);r.outerHTML=`<th class="govuk-table__header govuk-table__cell--content print-header-footer" colspan=${e}>${s}</th>`;let c=this.table.createTFoot().insertRow(0).insertCell(0);c.outerHTML=`<td class="govuk-table__cell govuk-table__cell--content print-header-footer table-row--no-border" colspan=${e}>${s}</td>`}}};var C=class extends p{static getModuleName(){return"columns"}initialise(){this.form=this.getElement(),this.submitButton=this.getElement().querySelector(".dpr-apply-columns-button"),this.resetButton=this.getElement().querySelector(".dpr-reset-columns-button"),this.initInputsFromQueryParams(),this.initQueryParamsFromInputs(this.form.elements),this.initInputEvents(this.form.elements),this.initSubmitButton(),this.initResetButton()}initSubmitButton(){this.submitButton.addEventListener("click",t=>{t.preventDefault(),this.loadingHelper.showLoadingAnimation(),window.location.reload()})}initResetButton(){this.resetButton.addEventListener("click",t=>{t.preventDefault(),this.loadingHelper.showLoadingAnimation(),this.clearQueryParams("columns"),window.location.reload()})}};var B=class extends u{static getModuleName(){return"download-message"}initialise(){this.downloadMessage=this.getElement(),window.location.href.indexOf("download-disabled")>-1&&this.downloadMessage.classList.remove("dpr-download-message--hidden")}};var b=class extends y{initFiltersForm({formId:t,submitButtonId:e,resetButtonId:s,removeSelectedButtonClass:a}){this.errorMessages=[],this.mainForm=document.getElementById(t),this.mainForm.noValidate=!0,this.formFields=Array.from(this.mainForm.elements),this.errorSummary=document.getElementById("query-error-summary"),this.submitButton=document.getElementById(e),this.resetButton=document.getElementById(s),this.selectedFiltersButtons=document.querySelectorAll(`.${a}`),this.initValues(),this.initSubmitButton(),this.initResetButton(),this.initFormData()}initValues(){this.initInputsFromQueryParams(),this.initQueryParamsFromInputs(this.mainForm.elements),this.initInputEvents(this.mainForm.elements)}initFormData(){this.initFormValidation(this.formFields),this.mainForm.classList.remove("async-filters-form--hidden")}initSubmitButton(){this.submitButton.addEventListener("click",t=>{t.preventDefault(),this.initFormData(),this.validateForm(),this.mainForm.checkValidity()&&this.submitAction()})}initResetButton(){this.resetButton&&(this.defaultQuery=this.resetButton.getAttribute("defaultQuery"),this.resetButton.addEventListener("click",t=>{t.preventDefault(),this.clearQueryParams("filters"),this.resetAction()}))}resetAction(){if(this.defaultQuery){let t=this.defaultQuery.substring(1),e=`${window.location.href}&${t}`;window.location.href=e}else window.location.reload()}submitAction(){window.location.reload()}initSelectedFiltersButtons(){this.selectedFiltersButtons&&this.selectedFiltersButtons.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();let s=JSON.parse(e.target.getAttribute("data-query-param-key")),a=JSON.parse(e.target.getAttribute("data-query-param-value")),i=e.target.getAttribute("data-query-constraint-values");i=i?JSON.parse(e.target.getAttribute("data-query-constraint-values")):void 0,s.forEach(r=>{if(a.forEach(n=>{this.updateQueryParam(r,n,"delete")}),i){let n=i.find(d=>d.key===r);n&&this.updateQueryParam(r,n.value)}}),this.updateQueryParam("preventDefault",!0),window.location.reload()})})}};var T=class extends b{static getModuleName(){return"interactive-filters"}initialise(){this.initFiltersForm({formId:"interactive-filters-form",submitButtonId:"interactive-apply-filters-button",resetButtonId:"interactive-reset-filters-button",removeSelectedButtonClass:"interactive-remove-filter-button"}),this.initSelectedFiltersButtons()}};var g=class extends u{getPollingFrquency(){return"2000"}getPollingStatuses(){return["SUBMITTED","STARTED","PICKED"]}getEndStatuses(){return["FINISHED","FAILED","EXPIRED","ABORTED"]}getExpiredCheckStatuses(){return["FAILED","EXPIRED","ABORTED"]}getRequestStatus(t,e){return l(this,null,function*(){return this.getStatus("/dpr/getStatus/",t,e)})}getExpiredStatus(t,e,s){return l(this,null,function*(){return this.getStatus(t,e,s)})}shouldPollStatus(t){return JSON.parse(t).some(e=>!this.END_STATUSES.includes(e.status))}shouldPollExpired(t){return JSON.parse(t).some(e=>!this.EXPIRED_END_STATUSES.includes(e.status))}getStatus(t,e,s){return l(this,null,function*(){let a;return yield fetch(t,{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":s},body:JSON.stringify(m({},e))}).then(i=>i.json()).then(i=>{a=i}).catch(i=>console.error("Error:",i)),a})}};var F=class extends g{static getModuleName(){return"async-polling-content"}initialise(){this.POLLING_STATUSES=this.getPollingStatuses(),this.POLLING_FREQUENCY=this.getPollingFrquency(),this.statusSection=document.getElementById("async-request-polling-status"),this.retryRequestButton=document.getElementById("retry-async-request"),this.cancelRequestButton=document.getElementById("cancel-async-request"),this.viewReportButton=document.getElementById("view-async-report-button"),this.requestData=this.statusSection.getAttribute("data-request-data"),this.currentStatus=this.statusSection.getAttribute("data-current-status"),this.csrfToken=this.statusSection.getAttribute("data-csrf-token"),this.initCancelRequestButton(),this.initPollingInterval()}initPollingInterval(){return l(this,null,function*(){this.POLLING_STATUSES.includes(this.currentStatus)&&(this.pollingInterval=setInterval(()=>l(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY))})}pollStatus(){return l(this,null,function*(){if(this.requestData){let t=JSON.parse(this.requestData),e=yield this.getRequestStatus(t,this.csrfToken);this.currentStatus!==e.status&&(clearInterval(this.pollingInterval),window.location.reload())}})}initCancelRequestButton(){if(this.cancelRequestButton){let t=this.cancelRequestButton.getAttribute("data-execution-id"),e=this.cancelRequestButton.getAttribute("data-report-id"),s=this.cancelRequestButton.getAttribute("data-id"),a=this.cancelRequestButton.getAttribute("data-type"),i=this.cancelRequestButton.getAttribute("data-csrf-token");this.cancelRequestButton.addEventListener("click",()=>l(this,null,function*(){yield fetch("/dpr/cancelRequest/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":i},body:JSON.stringify({executionId:t,reportId:e,id:s,type:a})}).then(()=>{window.location.reload()}).catch(r=>console.error("Error:",r))}))}}};var R=class extends b{static getModuleName(){return"async-filters"}initialise(){this.initFiltersForm({formId:"async-filters-form",submitButtonId:"async-request-report-button",resetButtonId:"async-request-reset-filters-button"})}initFormData(){let{origin:t,pathname:e,search:s}=window.location;document.getElementById("async-filters-form-pathname").value=e,document.getElementById("async-filters-form-origin").value=t,document.getElementById("async-filters-form-search").value=s;let a=new URLSearchParams(s),i=a.size>0?`?${a.toString()}`:"";document.getElementById("async-filters-form-href").value=`${t}${e}${i}`,this.initFormValidation(this.formFields),this.mainForm.classList.remove("async-filters-form--hidden")}submitAction(){this.mainForm.requestSubmit()}};var M=class extends u{static getModuleName(){return"sync-loading"}initialise(){this.element=this.getElement(),this.form=this.element.querySelector("#dpr-sync-loading-form"),this.load()}load(){return l(this,null,function*(){this.form.submit()})}};var $=class extends u{static getModuleName(){return"date-input"}initialise(){let t=this.getElement();this.dateInput=t.querySelector("input.moj-js-datepicker-input"),this.setToValueTriggers=document.querySelectorAll("[data-set-min-max-trigger='true']"),this.required=this.getElement().getAttribute("data-required"),this.displayName=this.getElement().getAttribute("data-display-name"),this.pattern=this.getElement().getAttribute("data-pattern"),this.patternHint=this.getElement().getAttribute("data-pattern-hint"),this.min=this.getElement().getAttribute("data-min"),this.max=this.getElement().getAttribute("data-max"),this.setValidationOnInputEl(),this.setMinMaxEventListener(),this.setToMinMax(),this.setToValue()}setValidationOnInputEl(){this.required&&this.required==="true"&&this.dateInput.setAttribute("required",!0),this.min&&this.dateInput.setAttribute("min",this.min),this.max&&this.dateInput.setAttribute("max",this.max),this.dateInput.setAttribute("display-name",this.displayName),this.dateInput.setAttribute("pattern",this.pattern),this.dateInput.setAttribute("pattern-hint",this.patternHint)}setMinMaxEventListener(){this.dateInput.addEventListener("blur",()=>{this.setToMinMax()})}setToMinMax(){if(this.dateInput.value){let e=new Date(this.dateInput.value);if(this.min){let s=new Date(this.min);e<s&&(this.dateInput.value=dayjs(this.min).format("DD/MM/YYYY"))}if(this.max){let s=new Date(this.max);e>s&&(this.dateInput.value=dayjs(this.max).format("DD/MM/YYYY"))}}let t=new Event("change");this.dateInput.dispatchEvent(t)}setToValue(){this.setToValueTriggers.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();let s=e.target.getAttribute("data-set-min-max-value"),a=e.target.getAttribute("data-set-to-input"),i=document.getElementById(a);i.value=s;let r=new Event("change");i.dispatchEvent(r)})})}};var N=class extends u{static getModuleName(){return"date-range-input"}initialise(){this.dateRangeInputs=document.getElementById("dpr-date-range"),this.filtersAccordion=document.getElementById("dpr-interactive-filters-details"),this.fieldName=this.dateRangeInputs.getAttribute("data-field-name"),this.startInputID=`filters.${this.fieldName}.start`,this.endInputID=`filters.${this.fieldName}.end`,this.durationInputID=`filters.${this.fieldName}.relative-duration`,this.relativeRangeRadioButtons=document.querySelectorAll(`input[name='${this.durationInputID}']`),this.startInput=document.querySelector(`input[name='${this.startInputID}']`),this.endInput=document.querySelector(`input[name='${this.endInputID}']`),this.startRequired=this.startInput.required,this.endRequired=this.endInput.required,this.datePickerTab=document.getElementById("tab_date-picker"),this.relativeDurationTab=document.getElementById("tab_relative-range"),this.durationValue=void 0,this.datePickerTab&&this.relativeDurationTab&&(this.initDatePickerTabClick(),this.initRelativeDurationTabClick(),this.initTabs(),this.initDurationRadionButtonClick())}initTabs(){this.queryParams=new URLSearchParams(window.location.search),this.queryParams.has(this.durationInputID)&&this.relativeRangeRadioButtons.forEach(t=>{this.updateCheckedDuration(t)})}initDatePickerTabClick(){this.datePickerTab.addEventListener("click",()=>{let t;this.queryParams=new URLSearchParams(window.location.search),this.queryParams.has(this.durationInputID)&&(t=this.queryParams.get(this.durationInputID),this.removeSearchParam(this.durationInputID)),this.updateInputs(t),window.location.hash="date-picker"})}initRelativeDurationTabClick(){this.relativeDurationTab.addEventListener("click",()=>{this.relativeRangeRadioButtons.forEach(t=>{this.updateCheckedDuration(t)}),window.location.hash="relative-range"})}initDurationRadionButtonClick(){this.relativeRangeRadioButtons.forEach(t=>{t.addEventListener("click",e=>{let s=e.target.value;this.durationValue=s,this.updateInputs(s),this.removeRequiredFromDatePickers()})})}removeSearchParam(t,e){this.queryParams=new URLSearchParams(window.location.search),this.queryParams.delete(t),e&&this.queryParams.delete(e),window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}updateCheckedDuration(t){if(t.checked){let e=t.value;this.updateInputs(e);let s=new Event("change");t.dispatchEvent(s)}}removeRequiredFromDatePickers(){this.startInput.removeAttribute("required"),this.endInput.removeAttribute("required"),this.startInput.value="",this.endInput.value=""}updateInputs(t){if(this.startInput.required=this.startRequired,this.endInput.required=this.endRequired,t||this.durationValue){let s=t||this.durationValue,{startDate:a,endDate:i}=this.calculateDateForDatepicker(s);this.startInput.value=a,this.endInput.value=i}let e=new Event("change");this.startInput.dispatchEvent(e),this.endInput.dispatchEvent(e)}calculateDateForDatepicker(t){let e,s;switch(t){case"yesterday":s=dayjs(),e=s.subtract(1,"day");break;case"tomorrow":e=dayjs(),s=e.add(1,"day");break;case"last-week":s=dayjs(),e=s.subtract(1,"week");break;case"next-week":e=dayjs(),s=e.add(1,"week");break;case"last-month":s=dayjs(),e=s.subtract(1,"month");break;case"next-month":e=dayjs(),s=e.add(1,"month");break;default:break}return{startDate:e.format("DD/MM/YYYY").toString(),endDate:s.format("DD/MM/YYYY").toString()}}};var O=class extends u{static getModuleName(){return"autocomplete-text-input"}constructor(t){super(t);let e=this.getTextInput().getAttribute("aria-owns");this.listItemsSelector=`#${e} li`,this.listParentSelector=`#${e} ul`}initialise(){let t=this.getTextInput();t.addEventListener("keyup",e=>{this.onTextInput(e,t)}),this.getElement().querySelectorAll(".autocomplete-text-input-list-button").forEach(e=>{e.addEventListener("click",s=>{this.onOptionClick(s,t,this.getElement())})})}getTextInput(){return this.getElement().querySelector(".autocomplete-text-input-box")}onTextInput(t,e){let s=Number(e.dataset.minimumLength),{resourceEndpoint:a}=e.dataset,i=t.target.value.toLowerCase();if(a?i.length>=s?(this.addItem(this.clearListAndRecreateTemplate(),"<i>Searching...</i>"),this.populateOptionsDynamically(a,i,e,()=>this.clearListAndRecreateTemplate())):this.clearListAndRecreateTemplate():this.getElement().querySelectorAll(this.listItemsSelector).forEach(r=>{i.length>=s&&this.isMatchingStaticOptionNameOrDisplayPrefix(this.getInputListButton(r),i,r)?r.classList.remove("autocomplete-text-input-item-hide"):r.classList.add("autocomplete-text-input-item-hide")}),i.length===0){let r=new Event("change");e.dispatchEvent(r)}}getInputListButton(t){return t.querySelector(".autocomplete-text-input-list-button")}isMatchingStaticOptionNameOrDisplayPrefix(t,e,s){return this.isStaticOptionsNamePrefix(t.dataset.staticOptionNameValue,e)||s.innerText.trim().toLowerCase().startsWith(e)}isStaticOptionsNamePrefix(t,e){return t&&t.trim().toLowerCase().startsWith(e)}populateOptionsDynamically(t,e,s,a){return l(this,null,function*(){try{let r=yield(yield fetch(t.replace("{prefix}",encodeURI(e)))).json();if(e===s.value.toLowerCase()){let n=a();r.forEach(d=>{this.addItem(n,d,c=>{this.onOptionClick(c,s,this.getElement())})})}}catch(i){this.addItem(a(),`Failed to retrieve results: ${i}`)}})}onOptionClick(t,e,s){t.preventDefault(),e.value=t.target.innerText.trim(),e.staticOptionNameValue=t.target.dataset.staticOptionNameValue,e.focus();let a=new Event("change");e.dispatchEvent(a),s.querySelectorAll("li").forEach(i=>{i.classList.add("autocomplete-text-input-item-hide")})}addItem(t,e,s){let a=t.cloneNode(!0);a.querySelector("button").innerHTML=e,a.classList.remove("autocomplete-text-input-item-hide"),this.getElement().querySelector(this.listParentSelector).appendChild(a),s&&a.addEventListener("click",i=>{s(i)})}clearListAndRecreateTemplate(){let t=this.getElement().querySelector(this.listItemsSelector).cloneNode(!0);return t.classList.add("autocomplete-text-input-item-hide"),this.getElement().querySelectorAll(this.listItemsSelector).forEach(e=>e.remove()),this.getElement().querySelector(this.listParentSelector).append(t),t}};var j=class extends u{static getModuleName(){return"granular-date-range-input"}initialise(){this.filter=this.getElement(),this.fieldName=this.filter.getAttribute("data-field-name");let t=`filters.${this.fieldName}`;this.quickFiltersInput=this.filter.querySelector(`select[name='${t}.quick-filter']`),this.granularityInput=this.filter.querySelector(`select[name='${t}.granularity']`),this.startInput=this.filter.querySelector(`input[name='${t}.start']`),this.endInput=this.filter.querySelector(`input[name='${t}.end']`),this.initStartEndInputChangetEvent(),this.initGranularityChangeEvent(),this.initQuickFilterChangeEvent()}initGranularityChangeEvent(){this.granularityInput.addEventListener("change",t=>{this.resetQuickFilters()})}initQuickFilterChangeEvent(){this.quickFiltersInput.addEventListener("change",t=>{this.updateStartEndValues(t.target.value)})}initStartEndInputChangetEvent(){this.startInput.addEventListener("change",t=>{this.resetQuickFilters()}),this.endInput.addEventListener("change",t=>{this.resetQuickFilters()})}setGranularityValue(t){this.granularityInput.value=t}setStartValue(t){this.startInput.value=t}setEndValue(t){this.endInput.value=t}resetQuickFilters(){this.quickFiltersInput.value="none";let t=new URLSearchParams(window.location.search);t.set(this.quickFiltersInput.id,"none"),window.history.replaceState(null,null,`?${t.toString()}`)}updateStartEndValues(t){let e,s,a;switch(t){case"today":s=dayjs(),e=dayjs(),a="daily";break;case"yesterday":s=dayjs().subtract(1,"day"),e=dayjs().subtract(1,"day"),a="daily";break;case"last-seven-days":s=dayjs(),e=s.subtract(7,"day").add(1,"day"),a="daily";break;case"last-thirty-days":s=dayjs(),e=s.subtract(30,"day").add(1,"day"),a="daily";break;case"last-month":s=dayjs(),e=s.subtract(1,"month").add(1,"day"),a="monthly";break;case"last-full-month":s=dayjs().subtract(1,"month").endOf("month"),e=s.startOf("month"),a="monthly";break;case"last-ninety-days":s=dayjs(),e=s.subtract(90,"day").add(1,"day"),a="daily";break;case"last-three-months":s=dayjs(),e=s.subtract(3,"month").add(1,"day"),a="monthly";break;case"last-full-three-months":s=dayjs().subtract(1,"month").endOf("month"),e=s.subtract(2,"month").startOf("month"),a="monthly";break;case"last-six-months":s=dayjs(),e=s.subtract(6,"month").add(1,"day"),a="monthly";break;case"last-full-six-months":s=dayjs().subtract(1,"month").endOf("month"),e=s.subtract(6,"month").startOf("month"),a="monthly";break;case"last-year":s=dayjs(),e=s.subtract(1,"year").add(1,"day"),a="annually";break;case"last-full-year":s=dayjs().subtract(1,"year").endOf("year"),e=s.startOf("year"),a="annually";break;case"tomorrow":s=dayjs().add(1,"day"),e=dayjs().add(1,"day"),a="daily";break;case"next-seven-days":e=dayjs(),s=dayjs().add(7,"day").subtract(1,"day"),a="daily";break;case"next-thirty-days":e=dayjs(),s=dayjs().add(30,"day").subtract(1,"day"),a="daily";break;case"next-month":e=dayjs(),s=dayjs().add(1,"month").subtract(1,"day"),a="monthly";break;case"next-full-month":e=dayjs().add(1,"month").startOf("month"),s=e.endOf("month"),a="monthly";break;case"next-ninety-days":e=dayjs(),s=dayjs().add(90,"day").subtract(1,"day"),a="daily";break;case"next-three-months":e=dayjs(),s=dayjs().add(3,"month").subtract(1,"day"),a="monthly";break;case"next-full-three-months":e=dayjs().add(1,"month").startOf("month"),s=e.add(2,"month").endOf("month"),a="monthly";break;case"next-year":e=dayjs(),s=dayjs().add(1,"year").subtract(1,"day"),a="annually";break;case"next-full-year":e=dayjs().add(1,"year").startOf("year"),s=e.endOf("year"),a="annually";break;default:break}this.setStartValue(e.format("DD/MM/YYYY").toString()),this.setEndValue(s.format("DD/MM/YYYY").toString()),this.setGranularityValue(a);let i=new URLSearchParams(window.location.search);i.set(this.granularityInput.id,a),i.set(this.startInput.id,e.format("YYYY/MM/DD").toString()),i.set(this.endInput.id,s.format("YYYY/MM/DD").toString()),window.history.replaceState(null,null,`?${i.toString()}`)}};var V=class extends g{static getModuleName(){return"async-request-list"}initialise(){this.END_STATUSES=this.getEndStatuses(),this.EXPIRED_END_STATUSES=this.getExpiredCheckStatuses(),this.POLLING_FREQUENCY=this.getPollingFrquency(),this.requestList=document.getElementById("dpr-async-request-component"),this.requestData=this.requestList.getAttribute("data-request-data"),this.csrfToken=this.requestList.getAttribute("data-csrf-token"),this.removeActions=document.querySelectorAll(".dpr-remove-requested-report-button"),this.initItemActions(),this.initPollingIntervals()}initPollingIntervals(){return l(this,null,function*(){yield this.checkIfExpired(),this.requestData&&(this.shouldPollExpired(this.requestData)&&(this.expiredInterval=setInterval(()=>l(this,null,function*(){yield this.checkIfExpired()}),"60000")),this.shouldPollStatus(this.requestData)&&(this.pollingInterval=setInterval(()=>l(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY)))})}checkIfExpired(){return l(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>l(this,null,function*(){if(!this.EXPIRED_END_STATUSES.includes(t.status)){let e=yield this.getExpiredStatus("/dpr/getRequestedExpiredStatus/",t,this.csrfToken);e&&e.isExpired&&(clearInterval(this.expiredInterval),window.location.reload())}})))})}pollStatus(){return l(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>l(this,null,function*(){if(!this.END_STATUSES.includes(t.status)){let e=yield this.getRequestStatus(t,this.csrfToken);this.END_STATUSES.includes(e.status)&&(clearInterval(this.pollingInterval),window.location.reload())}})))})}initItemActions(){this.removeActions.forEach(t=>{let e=t.getAttribute("data-execution-id");t.addEventListener("click",s=>l(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return l(this,null,function*(){let e;return yield fetch("/dpr/removeRequestedItem/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":this.csrfToken},body:JSON.stringify({executionId:t})}).then(()=>{window.location.reload()}).catch(s=>console.error("Error:",s)),e})}};var Y=class extends g{static getModuleName(){return"recently-viewed-list"}initialise(){this.EXPIRED_END_STATUSES=this.getExpiredCheckStatuses(),this.POLLING_FREQUENCY="60000",this.viewedList=document.getElementById("dpr-recently-viewed-component"),this.viewedReportData=this.viewedList.getAttribute("data-request-data"),this.csrfToken=this.viewedList.getAttribute("data-csrf-token"),this.removeActions=document.querySelectorAll(".dpr-remove-viewed-report-button"),this.initItemActions(),this.initPollingIntervals()}initPollingIntervals(){return l(this,null,function*(){yield this.checkIsExpired(),this.viewedReportData&&this.shouldPollExpired(this.viewedReportData)&&(this.expiredViewedInterval=setInterval(()=>l(this,null,function*(){yield this.checkIsExpired()}),this.POLLING_FREQUENCY))})}checkIsExpired(){return l(this,null,function*(){yield Promise.all(JSON.parse(this.viewedReportData).map(t=>l(this,null,function*(){if(t.status!=="EXPIRED"){let e=yield this.getExpiredStatus("/dpr/getExpiredStatus/",t,this.csrfToken);e&&e.isExpired&&(window.location.reload(),clearInterval(this.expiredViewedInterval))}})))})}initItemActions(){this.removeActions.forEach(t=>{let e=t.getAttribute("data-execution-id");t.addEventListener("click",s=>l(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return l(this,null,function*(){let e;return yield fetch("/dpr/removeViewedItem/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":this.csrfToken},body:JSON.stringify({executionId:t})}).then(()=>{window.location.reload()}).catch(s=>console.error("Error:",s)),e})}};var f=class extends u{setupCanvas(){this.chartContext=this.getElement().querySelector("canvas"),this.id=this.chartContext.getAttribute("id"),this.chartParams=JSON.parse(this.getElement().getAttribute("data-dpr-chart-data")),this.type=this.getElement().getAttribute("data-dpr-chart-type"),this.setValueSuffix(),this.legend=this.getElement().querySelector(`#js-legend-${this.id}`),this.tooltipDetailsEl=document.getElementById(`dpr-${this.id}-tooltip-details`),this.headlineValuesEl=document.getElementById(`dpr-${this.id}-headline-values`),this.labelElement=document.getElementById(`dpr-${this.id}-label`),this.valueElement=document.getElementById(`dpr-${this.id}-value`),this.legendElement=document.getElementById(`dpr-${this.id}-legend`),this.legendElement=document.getElementById(`dpr-${this.id}-legend`),this.timeseries=this.getElement().getAttribute("data-dpr-chart-timeseries"),(this.timeseries||this.type==="line")&&(this.daterangeInputs=document.querySelectorAll(".dpr-granular-date-range"),this.daterangeInputs&&this.daterangeInputs.length?this.daterangeInputs.forEach(t=>{this.partialStart=t.getAttribute("data-partial-start")==="true",this.partialEnd=t.getAttribute("data-partial-end")==="true"}):(this.partialStart=!1,this.partialEnd=!1)),this.singleDataset=this.chartParams.datasets.length===1}initChart(){Chart.defaults.font.family="GDS Transport",Chart.register(ChartDataLabels),Chart.defaults.font.size=12,this.chart=new Chart(this.chartContext,this.chartData),this.initChartEvents()}getColourPallette(){return[{name:"blue",hex:"#5694ca"},{name:"purple",hex:"#912b88"},{name:"green",hex:"#00703c"},{name:"dark_blue",hex:"#003078"},{name:"orange",hex:"#f47738"},{name:"orange",hex:"#28a197"}]}mapHexColourToName(t,e){let a=e.getColourPallette().find(i=>i.hex===t);return a?a.name:""}createDatasets(t,e){return t.map((s,a)=>{let{label:i,data:r}=s,n=e[a%6]?e[a%6]:e[0];return m({label:i,data:r},n)})}generateChartData(t){let{datasets:e,labels:s}=this.chartParams,{options:a,styling:i,datalabels:r,plugins:n,pluginsOptions:d,toolTipOptions:c,hoverEvent:h}=t;return{type:this.type,data:{labels:s,datasets:this.createDatasets(e,i)},options:k(m(m({responsive:!0,maintainAspectRatio:!1,animation:{duration:0},hover:{animationDuration:0}},a&&a),h&&h),{plugins:k(m(m({legend:{position:"bottom"}},d&&d),r&&{datalabels:r}),{tooltip:m(m({},this.setToolTip()),c&&c)})}),plugins:n&&n.length?[...n]:[]}}setToolTip(){return{backgroundColor:"#FFF",bodyColor:"#000",titleFont:{size:16},bodyFont:{size:16},titleColor:"#000",displayColors:!1,borderWidth:1,borderColor:"#b1b4b6",cornerRadius:0,padding:20,footerFont:{weight:"bold"},animation:{duration:0}}}setHoverValue({label:t,value:e,legend:s,ctx:a}){a.tooltipDetailsEl&&(a.tooltipDetailsEl.style.display="block",a.labelElement.innerHTML=a.singleDataset?`${t}`:`${s}: ${t}`,a.valueElement.innerHTML=`${e}`),a.headlineValuesEl&&(a.headlineValuesEl.style.display="none"),s||(a.legendElement.style.display="none")}setValueSuffix(){this.unit=this.getElement().getAttribute("data-dpr-chart-unit"),this.suffix=this.unit==="percentage"?"%":""}isPercentage(){return this.unit==="percentage"}initChartEvents(){this.chart.canvas.addEventListener("mouseout",t=>{this.tooltipDetailsEl&&(this.tooltipDetailsEl.style.display="none"),this.headlineValuesEl&&(this.headlineValuesEl.style.display="block")})}};var _=class extends f{static getModuleName(){return"bar-chart"}initialise(){this.setupCanvas(),this.settings=this.initSettings(),this.chartData=this.generateChartData(this.settings),this.initChart(this.chartData)}initSettings(){return{options:this.setOptions(),toolTipOptions:this.setToolTipOptions(),datalabels:this.setDataLabels(),styling:this.setDatasetStyling()}}setDatasetStyling(){return this.getColourPallette().map(e=>k(m({borderColor:e.hex},this.setBackgroundColour(e.hex)),{datalabels:{align:"center",anchor:"center"}}))}setBackgroundColour(t){let e=this.chartParams.labels.length-1,s=[],a=[],i=[];return this.chartParams.labels.forEach((r,n)=>{this.partialEnd&&n===e||this.partialStart&&n===0?(s.push(t),a.push(3),i.push("#b1b4b6")):(s.push(t),a.push(0),i.push(t))}),{backgroundColor:s,borderWidth:a,borderColor:i}}setToolTipOptions(){let t=this;return{callbacks:{title(e){let{label:s,dataset:a}=e[0],{label:i}=a;return t.singleDataset?`${s}`:`${i}: ${s}`},label(e){let{label:s}=e,{data:a,label:i}=e.dataset,r=`${a[e.dataIndex]}${t.suffix}`;return t.setHoverValue({label:s,value:r,legend:i,ctx:t}),r}}}}setOptions(){let{indexAxis:t,stacked:e}=this.chartParams;return m({indexAxis:t||"x"},e&&{scales:{x:{stacked:!0},y:{stacked:!0}}})}setDataLabels(){return{color:"#FFF",display:()=>!this.timeseries,formatter:t=>`${t}${this.suffix}`,labels:{title:{font:{weight:"bold",size:16,color:"#FFF"}}}}}};var Q=class extends f{static getModuleName(){return"doughnut-chart"}initialise(){this.setupCanvas(),this.settings=this.initSettings(),this.chartData=this.generateChartData(this.settings),this.initChart(this.chartData)}initSettings(){return{options:this.setOptions(),styling:this.setDatasetStyling(),datalabels:this.setDataLabels(),pluginsOptions:this.setPluginsOptions(),toolTipOptions:this.setToolTipOptions(),plugins:this.setPlugins()}}setDatasetStyling(){let e=this.getColourPallette().map(s=>s.hex);return[{backgroundColor:[...e,...e],hoverOffset:4,datalabels:{anchor:"center",borderWidth:0}}]}setOptions(){return{cutout:this.chartParams.datasets.length===1?"50%":"20%"}}setPluginsOptions(){return{legend:{display:!0,position:"bottom"}}}setPlugins(){let t=[];return this.chartParams.datasets.length===1&&!this.isPercentage&&t.push(this.setCentralText()),t}setCentralText(){return{id:"text",beforeDraw(t){let{width:e}=t,{height:s}=t,{ctx:a}=t;a.textBaseline="middle";let i=2.5;a.font=`100 ${i}em GDS Transport`,a.fillStyle=" #505a5f";let n=t.data.datasets[0].data.reduce((W,G)=>W+G,0),d=Math.round((e-a.measureText(n).width)/2),c=s/2;a.fillText(n,d,c),a.save(),a.textBaseline="middle",i=1,a.font=`100 ${i}em GDS Transport`,a.fillStyle=" #505a5f";let h="Total",v=Math.round((e-a.measureText(h).width)/2),E=c+30;a.fillText(h,v,E),a.save()}}}setLegend(){let t=this,{legend:e,suffix:s}=this;return{id:"legend",beforeInit(a){let i=document.createElement("ul"),{labels:r}=a.data,{backgroundColor:n,data:d}=a.data.datasets[0];return r.forEach((c,h)=>{let v=h%n.length,E=n[v],W=t.mapHexColourToName(E,t),G=a.data.datasets.length===1?`${d[h]}${s}`:"";i.innerHTML+=`
28
+ var X=Object.defineProperty,K=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var tt=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable;var z=(o,t,e)=>t in o?X(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,m=(o,t)=>{for(var e in t||(t={}))tt.call(t,e)&&z(o,e,t[e]);if(J)for(var e of J(t))et.call(t,e)&&z(o,e,t[e]);return o},k=(o,t)=>K(o,Z(t));var l=(o,t,e)=>new Promise((s,a)=>{var i=d=>{try{n(e.next(d))}catch(c){a(c)}},r=d=>{try{n(e.throw(d))}catch(c){a(c)}},n=d=>d.done?s(d.value):Promise.resolve(d.value).then(i,r);n((e=e.apply(o,t)).next())});var w=class{showLoadingAnimation(t){document.querySelectorAll(".dpr-loading-panel").forEach(a=>{a.classList.add("show")});let s=".dpr-loading-anim";t&&(s=`.${t} ${s}`),document.querySelectorAll(s).forEach(a=>{a.classList.add("show")})}hideLoadingAnimation(){document.querySelectorAll(".dpr-loading-panel").forEach(t=>{t.classList.remove("show")}),document.querySelectorAll(".dpr-loading-anim").forEach(t=>{t.classList.remove("show")})}};var u=class{constructor(t,e){this.element=t,this.loadingHelper=e}static getModuleName(){throw new Error("Module name not set")}getElement(){return this.element}initialise(){throw new Error("Initialisation not configured")}};var S=class extends u{static getModuleName(){return"card-group"}initialise(){let t=this.getElement().querySelectorAll("[data-click-navigate-to]"),e="card-loading";t.forEach(s=>{s.addEventListener("click",()=>{s.classList.add(e),this.loadingHelper.showLoadingAnimation(e),t.forEach(a=>{a.classList.contains("card-loading")||a.classList.add("card-disabled")}),window.location.href=s.dataset.clickNavigateTo})})}};var x=class extends u{static getModuleName(){return"dpr-catalogue-search"}initialise(){this.searchBox=this.getElement().querySelector(".dpr-search-box"),this.shwoUnauthorisedCheckbox=this.getElement().querySelector("#show-unauthorised"),this.totalShown=this.getElement().querySelector("#total-shown"),this.totalAmount=this.getElement().querySelector("#total-amount"),this.table=this.getElement().querySelector("table").querySelector("tbody"),this.totalRows=Array.from(this.table.rows).length,this.shownRows=this.totalRows,this.searchBox&&this.initSeachBoxEvents(),this.shwoUnauthorisedCheckbox&&this.initShowUnauthorisedEvents(),this.initInputFromQueryParams(),this.updateTotals()}initSeachBoxEvents(){this.searchBox.addEventListener("keyup",t=>{this.updateTableRows(t.target.value);let e=new URLSearchParams(window.location.search);e.set(this.searchBox.id,t.target.value),window.history.replaceState(null,null,`?${e.toString()}`)})}initShowUnauthorisedEvents(){this.shwoUnauthorisedCheckbox.addEventListener("change",t=>{let e=new URLSearchParams(window.location.search);t.target.checked?e.set(t.target.id,t.target.value):e.delete(t.target.id,t.target.value),window.history.replaceState(null,null,`?${e.toString()}`),this.updateTableRows(this.searchBox.value)}),this.updateTableRows(this.searchBox.value)}updateTableRows(t){let e=this.getElement().querySelector("table").querySelector("tbody"),s=Array.from(e.rows);s.forEach(a=>a.classList.add("search-option-hide")),this.updateSearchListing(s,t),this.toggleUnauthorisedRows(s),this.updateTotals()}updateTotals(){this.totalShown.innerText=this.shownRows,this.totalAmount.innerText=this.totalRows}toggleUnauthorisedRows(t){let s=new URLSearchParams(window.location.search).get("show-unauthorised");t.filter(a=>Array.from(a.cells).find(i=>i.innerHTML.includes("dpr-unauthorised-report"))).forEach(a=>{s?a.classList.remove("search-option-hide"):a.classList.contains("search-option-hide")||a.classList.add("search-option-hide")})}updateSearchListing(t,e){let s=0;t.filter(a=>!e||e.length===0||Array.from(a.cells).find(i=>{let r=e.toLowerCase();return i.innerText.toLowerCase().includes(r.toLowerCase())})).forEach(a=>{a.classList.remove("search-option-hide"),s+=1}),this.shownRows=s}initInputFromQueryParams(){new URLSearchParams(window.location.search).forEach((e,s)=>{let a=document.getElementById(s);a&&a.classList.contains("dpr-search-box")&&(a.value=e,this.updateTableRows(a.value)),a&&a.id==="show-unauthorised"&&a.setAttribute("checked","")})}};var I=class extends u{static getModuleName(){return"bookmark-toggle"}initialise(){this.initToggles()}initToggles(){this.getElement().querySelectorAll(".bookmark-input[type=checkbox]").forEach(e=>{let s=e.getAttribute("data-csrf-token"),a=e.getAttribute("data-report-id"),i=e.getAttribute("data-id"),r=e.getAttribute("data-report-type");this.bookmarkWrapper=e.parentNode,this.bookmarkColumn=this.bookmarkWrapper.parentNode,this.bookmarkLabel=this.bookmarkWrapper.querySelector(".dpr-bookmark-label--component"),e.addEventListener("change",()=>l(this,null,function*(){e.checked?yield this.addBookmark(e,i,a,r,s):yield this.removeBookmark(e,i,a,r,s)})),this.bookmarkColumn.addEventListener("keyup",n=>l(this,null,function*(){n.key==="Enter"&&(yield this.handleBookmarkChange(e,i,a,r,s))}))})}addBookmark(t,e,s,a,i){return l(this,null,function*(){t.setAttribute("checked",""),this.bookmarkWrapper.setAttribute("tooltip","Remove bookmark"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmarked"),yield this.toggleBookmark("add",e,s,a,i)})}removeBookmark(t,e,s,a,i){return l(this,null,function*(){t.removeAttribute("checked"),this.bookmarkWrapper.setAttribute("tooltip","Add bookmark"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmark removed"),yield this.toggleBookmark("remove",e,s,a,i)})}handleBookmarkChange(t,e,s,a,i){return l(this,null,function*(){t.checked?(t.removeAttribute("checked"),this.bookmarkWrapper.setAttribute("tooltip","Add bookmark"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmark removed"),yield this.toggleBookmark("remove",e,s,a,i)):(t.setAttribute("checked",""),this.bookmarkWrapper.setAttribute("tooltip","Bookmarked"),this.bookmarkLabel&&(this.bookmarkLabel.innerText="Bookmarked"),yield this.toggleBookmark("add",e,s,a,i))})}toggleBookmark(t,e,s,a,i){return l(this,null,function*(){yield fetch(t==="add"?"/dpr/addBookmark/":"/dpr/removeBookmark/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":i},body:JSON.stringify({id:e,reportId:s,reportType:a})}).then(()=>{window.location.href.includes("/report")||window.location.reload()}).catch(n=>console.error("Error:",n))})}};var D=class extends u{static getModuleName(){return"show-more"}initialise(){this.initShowMore()}initShowMore(){let t=this.getElement(),e=t.querySelector(".dpr-show-more-content"),s=t.querySelector(".dpr-show-hide-button"),a=t.getAttribute("data-content"),i=+t.getAttribute("data-length")||200,r=a.replaceAll(/<[^>]+>/g,"").substring(0,i);a.length>i?e.innerHTML=`${r}... `:(e.innerHTML=`${a}`,s.style.display="none"),s.addEventListener("click",n=>{n.preventDefault(),s.innerHTML==="show more"?(e.innerHTML=`${a} `,s.innerHTML="show less"):s.innerHTML==="show less"&&(e.innerHTML=`${r}... `,s.innerHTML="show more")})}};var p=class extends u{initInputsFromQueryParams(){this.queryParams=new URLSearchParams(window.location.search),this.queryParams.forEach((t,e)=>{let s=document.getElementsByName(e);if(s.length){let a=s[0],{type:i}=a;if(i==="radio"||i==="checkbox")this.setMultiSelectValue(s,t);else if(a.classList.contains("moj-js-datepicker-input")){let r=dayjs(t,"YYYY-MM-DD").format("DD/MM/YYYY");a.value=r!=="Invalid Date"?r:""}else a.value=t}})}initInputEvents(t){Array.from(t).forEach(e=>{e.addEventListener("change",()=>{this.setQueryParamFromInput(e,!0,!1)})})}initQueryParamsFromInputs(t){Array.from(t).forEach(e=>{e.type!=="hidden"&&this.setQueryParamFromInput(e,!1,!0)})}setQueryParamFromInput(t,e=!1,s=!1){let{type:a}=t;if(a==="checkbox"||a==="radio")this.setMultiSelectQueryParam(t,e,s);else{let{name:i}=t,{value:r}=t,{staticOptionNameValue:n}=t,d=t.classList.contains("moj-js-datepicker-input");if(d){let h=dayjs(r,"D/M/YYYY").format("YYYY-MM-DD");r=h!=="Invalid Date"?h:""}let c=!d&&n?n:r;i&&this.updateQueryParam(i,c)}}setMultiSelectQueryParam(t,e,s){this.queryParams=new URLSearchParams(window.location.search);let{name:a,value:i,checked:r,type:n}=t;if(r&&!this.queryParams.has(a,i)){let d;n==="checkbox"&&(d="append",!s&&a!=="columns"&&this.updateQueryParam("preventDefault",!0)),this.updateQueryParam(a,i,d)}else!r&&this.queryParams.has(a,i)&&e&&(n==="checkbox"&&!s&&a!=="columns"&&this.updateQueryParam("preventDefault",!0),this.updateQueryParam(a,i,"delete"))}updateQueryParam(t,e,s){if(this.queryParams=new URLSearchParams(window.location.search),!e&&t.length)this.queryParams.delete(t);else switch(s){case"append":this.queryParams.append(t,e);break;case"delete":this.queryParams.delete(t,e);break;default:this.queryParams.set(t,e);break}window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}clearQueryParams(t){this.queryParams=new URLSearchParams(window.location.search),Array.from(this.queryParams).forEach(s=>{t&&s[0].includes(t)&&this.queryParams.delete(s[0],s[1]),t==="filters"&&this.queryParams.delete("preventDefault")}),window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}getFormDataAsObject(t,e){let s=new FormData(t),a=Array.from(s.entries()).filter(i=>i[1]!=="").map(i=>({[`${e}${i[0]}`]:i[1]}));return Object.assign({},...a)}setMultiSelectValue(t,e){let s=Array.from(t).find(a=>a.getAttribute("value")===e);s&&(s.checked=!0)}setCheckBoxValues(t,e){let s=Array.from(t).find(a=>a.getAttribute("value")===e);s&&(s.checked=!0)}removeNoFilterValues(){this.queryParams=new URLSearchParams(window.location.search),Array.from(this.queryParams).forEach(e=>{e[1].includes("no-filter")&&this.queryParams.delete(e[0],e[1])}),window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}};var y=class extends p{initFormValidation(t){t.forEach(e=>{let s=e.closest("div.govuk-form-group");if(s){let a=s.querySelector("p.govuk-error-message");a&&(s.classList.remove("govuk-form-group--error"),a.classList.add("govuk-error-message--hidden"),e.classList.remove("govuk-input--error"),e.classList.remove("govuk-textarea--error"),e.classList.remove("govuk-select--error"))}})}validateForm(){this.errorMessages=[];let t="";this.formFields.forEach(e=>{if(e.getAttribute("name")!==t&&e.tagName!=="BUTTON"){let a=e.closest("div.govuk-form-group");if(a){let i=a.querySelector("p.govuk-error-message");this.fieldIsValid(e)?i&&a&&this.hideFieldError(e,a,i):this.showFieldError(e,a,i)}}t=e.getAttribute("name")}),this.errorMessages.length?(this.buildErrorSummary(),this.errorSummary.classList.remove("query-error-summary--hidden")):this.errorSummary.classList.add("query-error-summary--hidden")}fieldIsValid(t){let{type:e}=t;switch(e){case"checkbox":return this.validateCheckbox(t);default:return t.checkValidity()}}validateCheckbox(t){let e=t.closest("div.govuk-checkboxes");if(e.hasAttribute("required")){let s=e.querySelectorAll('input[type="checkbox"]');return Array.from(s).some(a=>a.checked)}return!0}showFieldError(t,e,s){e.classList.add("govuk-form-group--error");let a=this.setValidationMessage(t.validity,t,s);s.innerHTML=`<span class="govuk-visually-hidden">Error:</span>${a}`,s.classList.remove("govuk-error-message--hidden"),t.classList.add("govuk-input--error")}hideFieldError(t,e,s){e.classList.remove("govuk-form-group--error"),s.classList.add("govuk-error-message--hidden"),t.classList.remove("govuk-input--error")}buildErrorSummary(){let t=this.errorSummary.querySelector("div.govuk-error-summary__body"),e="";this.errorMessages.forEach(a=>{e+=`<li><a href="${a.href}">${a.text}</a></li>`});let s=`<ul class="govuk-list govuk-error-summary__list">${e}</ul>`;t.innerHTML=s}getDisplayName(t){switch(t.getAttribute("type")){case"text":return t.getAttribute("display-name");case"radio":return t.closest("div.govuk-radios").getAttribute("display-name");case"checkbox":return t.closest("div.govuk-checkboxes").getAttribute("display-name");default:return t.getAttribute("display-name")}}setValidationMessage(t,e,s){let a=s.lastChild.nodeValue.replace(/(\r\n|\n|\r)/gm,"").trim(),i=e.getAttribute("id"),r=this.getDisplayName(e),n;if((t.valueMissing||e.type==="checkbox")&&(n=a.length?a:`${r} is required`,this.errorMessages.push({text:n,href:`#${i}`})),t.patternMismatch){let d=e.getAttribute("pattern-hint")||e.getAttribute("pattern");n=a.length?a:`The value for ${r} must be in the correct pattern: ${d}`,this.errorMessages.push({text:n,href:`#${i}`})}return n}};var L=class extends y{static getModuleName(){return"download-feedback-form"}initialise(){this.errorMessages=[],this.mainForm=document.getElementById("download-feedback-form"),this.mainForm.noValidate=!0,this.formFields=Array.from(this.mainForm.elements),this.errorSummary=document.getElementById("download-feedback-form-summary"),this.submitButton=document.getElementById("download-feedback-form-submit"),this.success=document.getElementById("download-feedback-form-success"),this.initSubmitButton(),this.initFormValidation(this.formFields),this.mainForm.classList.remove("download-feedback-form--hidden")}initSubmitButton(){this.submitButton.addEventListener("click",t=>{t.preventDefault(),this.validateForm(),this.mainForm.checkValidity()&&this.mainForm.requestSubmit()})}};var A=class extends p{static getModuleName(){return"pagination"}initialise(){this.pageSizeSelect=document.getElementById("page-size-select"),this.initInputsFromQueryParams(),this.initSelectEvent()}initSelectEvent(){this.pageSizeSelect.addEventListener("change",()=>{this.queryParams=new URLSearchParams(window.location.search);let{name:t,value:e}=this.pageSizeSelect;this.queryParams.set(t,e),this.queryParams.set("selectedPage","1"),window.history.replaceState(null,null,`?${this.queryParams.toString()}`),window.location.reload()})}};var q=class extends u{static getModuleName(){return"report-actions"}initialise(){this.refreshButton=document.getElementById("dpr-button-refresh"),this.printButton=document.getElementById("dpr-button-printable"),this.shareButton=document.getElementById("dpr-button-sharable"),this.downloadButton=document.getElementById("dpr-button-downloadable"),this.copyButton=document.getElementById("dpr-button-copy"),this.initRefreshEvent(),this.initPrintButtonEvent(),this.initShareButtonEvent(),this.initCopyButtonEvent()}initPrintButtonEvent(){if(this.printButton){let t=this.printButton.getAttribute("data-disabled");this.printButton.addEventListener("click",()=>{t!=="true"&&window.print()}),this.printButton.addEventListener("keyup",e=>{e.key==="Enter"&&t!=="true"&&window.print()})}}initShareButtonEvent(){if(this.shareButton){let t=this.shareButton.getAttribute("data-href");this.shareButton.addEventListener("click",()=>{window.location=t}),this.shareButton.addEventListener("keyup",e=>{e.key==="Enter"&&(window.location=t)})}}initCopyButtonEvent(){if(this.copyButton){let t=this.copyButton.getAttribute("data-href");this.copyButton.addEventListener("click",()=>{navigator.clipboard.writeText(t)}),this.copyButton.addEventListener("keyup",e=>{e.key==="Enter"&&navigator.clipboard.writeText(t)})}}initRefreshEvent(){if(this.refreshButton){let t=this.refreshButton.getAttribute("data-href");this.refreshButton.addEventListener("click",()=>{window.location=t}),this.refreshButton.addEventListener("keyup",e=>{e.key==="Enter"&&(window.location=t)})}}};var P=class extends u{static getModuleName(){return"data-table"}initialise(){this.tableContainer=document.getElementById("dpr-table-wrapper"),this.table=document.getElementById("dpr-data-table"),this.overflowGradient=document.getElementById("dpr-overflow-gradient"),this.createTableHeaderAndFooter(),this.initTableScrollListener()}initTableScrollListener(){this.checkOffsetWidths(),window.addEventListener("resize",()=>{this.checkOffsetWidths()}),this.tableContainer.addEventListener("scroll",t=>{let e=this.table.offsetWidth,s=t.target.offsetWidth+t.target.scrollLeft;e===s?this.overflowGradient.style.display="none":this.overflowGradient.style.display="block"})}checkOffsetWidths(){this.tableContainer.offsetWidth>=this.table.offsetWidth?this.overflowGradient.style.display="none":this.overflowGradient.style.display="block"}createTableHeaderAndFooter(){if(this.table){let t=this.table.getAttribute("data-classification"),e=Number(this.table.getAttribute("data-col-length")),s=`<b>${t}</b>`,r=this.table.createTHead().insertRow(0).insertCell(0);r.outerHTML=`<th class="govuk-table__header govuk-table__cell--content print-header-footer" colspan=${e}>${s}</th>`;let c=this.table.createTFoot().insertRow(0).insertCell(0);c.outerHTML=`<td class="govuk-table__cell govuk-table__cell--content print-header-footer table-row--no-border" colspan=${e}>${s}</td>`}}};var C=class extends p{static getModuleName(){return"columns"}initialise(){this.form=this.getElement(),this.submitButton=this.getElement().querySelector(".dpr-apply-columns-button"),this.resetButton=this.getElement().querySelector(".dpr-reset-columns-button"),this.initInputsFromQueryParams(),this.initQueryParamsFromInputs(this.form.elements),this.initInputEvents(this.form.elements),this.initSubmitButton(),this.initResetButton()}initSubmitButton(){this.submitButton.addEventListener("click",t=>{t.preventDefault(),this.loadingHelper.showLoadingAnimation(),window.location.reload()})}initResetButton(){this.resetButton.addEventListener("click",t=>{t.preventDefault(),this.loadingHelper.showLoadingAnimation(),this.clearQueryParams("columns"),window.location.reload()})}};var B=class extends u{static getModuleName(){return"download-message"}initialise(){this.downloadMessage=this.getElement(),window.location.href.indexOf("download-disabled")>-1&&this.downloadMessage.classList.remove("dpr-download-message--hidden")}};var b=class extends y{initFiltersForm({formId:t,submitButtonId:e,resetButtonId:s,removeSelectedButtonClass:a}){this.errorMessages=[],this.mainForm=document.getElementById(t),this.mainForm.noValidate=!0,this.formFields=Array.from(this.mainForm.elements),this.errorSummary=document.getElementById("query-error-summary"),this.submitButton=document.getElementById(e),this.resetButton=document.getElementById(s),this.selectedFiltersButtons=document.querySelectorAll(`.${a}`),this.initValues(),this.initSubmitButton(),this.initResetButton(),this.initFormData()}initValues(){this.initInputsFromQueryParams(),this.initQueryParamsFromInputs(this.mainForm.elements),this.initInputEvents(this.mainForm.elements)}initFormData(){this.initFormValidation(this.formFields),this.mainForm.classList.remove("async-filters-form--hidden")}initSubmitButton(){this.submitButton.addEventListener("click",t=>{t.preventDefault(),this.initFormData(),this.validateForm(),this.mainForm.checkValidity()&&this.submitAction()})}initResetButton(){this.resetButton&&(this.defaultQuery=this.resetButton.getAttribute("defaultQuery"),this.resetButton.addEventListener("click",t=>{t.preventDefault(),this.clearQueryParams("filters"),this.resetAction()}))}resetAction(){if(this.defaultQuery){let t=this.defaultQuery.substring(1),e=`${window.location.href}&${t}`;window.location.href=e}else window.location.reload()}submitAction(){window.location.reload()}initSelectedFiltersButtons(){this.selectedFiltersButtons&&this.selectedFiltersButtons.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();let s=JSON.parse(e.target.getAttribute("data-query-param-key")),a=JSON.parse(e.target.getAttribute("data-query-param-value")),i=e.target.getAttribute("data-query-constraint-values");i=i?JSON.parse(e.target.getAttribute("data-query-constraint-values")):void 0,s.forEach(r=>{if(a.forEach(n=>{this.updateQueryParam(r,n,"delete")}),i){let n=i.find(d=>d.key===r);n&&this.updateQueryParam(r,n.value)}}),this.updateQueryParam("preventDefault",!0),window.location.reload()})})}};var T=class extends b{static getModuleName(){return"interactive-filters"}initialise(){this.initFiltersForm({formId:"interactive-filters-form",submitButtonId:"interactive-apply-filters-button",resetButtonId:"interactive-reset-filters-button",removeSelectedButtonClass:"interactive-remove-filter-button"}),this.initSelectedFiltersButtons()}};var g=class extends u{getPollingFrquency(){return"2000"}getPollingStatuses(){return["SUBMITTED","STARTED","PICKED"]}getEndStatuses(){return["FINISHED","FAILED","EXPIRED","ABORTED"]}getExpiredCheckStatuses(){return["FAILED","EXPIRED","ABORTED"]}getRequestStatus(t,e){return l(this,null,function*(){return this.getStatus("/dpr/getStatus/",t,e)})}getExpiredStatus(t,e,s){return l(this,null,function*(){return this.getStatus(t,e,s)})}shouldPollStatus(t){return JSON.parse(t).some(e=>!this.END_STATUSES.includes(e.status))}shouldPollExpired(t){return JSON.parse(t).some(e=>!this.EXPIRED_END_STATUSES.includes(e.status))}getStatus(t,e,s){return l(this,null,function*(){let a;return yield fetch(t,{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":s},body:JSON.stringify(m({},e))}).then(i=>i.json()).then(i=>{a=i}).catch(i=>console.error("Error:",i)),a})}};var F=class extends g{static getModuleName(){return"async-polling-content"}initialise(){this.POLLING_STATUSES=this.getPollingStatuses(),this.POLLING_FREQUENCY=this.getPollingFrquency(),this.statusSection=document.getElementById("async-request-polling-status"),this.retryRequestButton=document.getElementById("retry-async-request"),this.cancelRequestButton=document.getElementById("cancel-async-request"),this.viewReportButton=document.getElementById("view-async-report-button"),this.requestData=this.statusSection.getAttribute("data-request-data"),this.currentStatus=this.statusSection.getAttribute("data-current-status"),this.csrfToken=this.statusSection.getAttribute("data-csrf-token"),this.initCancelRequestButton(),this.initPollingInterval()}initPollingInterval(){return l(this,null,function*(){this.POLLING_STATUSES.includes(this.currentStatus)&&(this.pollingInterval=setInterval(()=>l(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY))})}pollStatus(){return l(this,null,function*(){if(this.requestData){let t=JSON.parse(this.requestData),e=yield this.getRequestStatus(t,this.csrfToken);this.currentStatus!==e.status&&(clearInterval(this.pollingInterval),window.location.reload())}})}initCancelRequestButton(){if(this.cancelRequestButton){let t=this.cancelRequestButton.getAttribute("data-execution-id"),e=this.cancelRequestButton.getAttribute("data-report-id"),s=this.cancelRequestButton.getAttribute("data-id"),a=this.cancelRequestButton.getAttribute("data-type"),i=this.cancelRequestButton.getAttribute("data-csrf-token");this.cancelRequestButton.addEventListener("click",()=>l(this,null,function*(){yield fetch("/dpr/cancelRequest/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":i},body:JSON.stringify({executionId:t,reportId:e,id:s,type:a})}).then(()=>{window.location.reload()}).catch(r=>console.error("Error:",r))}))}}};var R=class extends b{static getModuleName(){return"async-filters"}initialise(){this.initFiltersForm({formId:"async-filters-form",submitButtonId:"async-request-report-button",resetButtonId:"async-request-reset-filters-button"})}initFormData(){let{origin:t,pathname:e,search:s}=window.location;document.getElementById("async-filters-form-pathname").value=e,document.getElementById("async-filters-form-origin").value=t,document.getElementById("async-filters-form-search").value=s;let a=new URLSearchParams(s),i=a.size>0?`?${a.toString()}`:"";document.getElementById("async-filters-form-href").value=`${t}${e}${i}`,this.initFormValidation(this.formFields),this.mainForm.classList.remove("async-filters-form--hidden")}submitAction(){this.mainForm.requestSubmit()}};var M=class extends u{static getModuleName(){return"sync-loading"}initialise(){this.element=this.getElement(),this.form=this.element.querySelector("#dpr-sync-loading-form"),this.load()}load(){return l(this,null,function*(){this.form.submit()})}};var $=class extends u{static getModuleName(){return"date-input"}initialise(){let t=this.getElement();this.dateInput=t.querySelector("input.moj-js-datepicker-input"),this.setToValueTriggers=document.querySelectorAll("[data-set-min-max-trigger='true']"),this.required=this.getElement().getAttribute("data-required"),this.displayName=this.getElement().getAttribute("data-display-name"),this.pattern=this.getElement().getAttribute("data-pattern"),this.patternHint=this.getElement().getAttribute("data-pattern-hint"),this.min=this.getElement().getAttribute("data-min"),this.max=this.getElement().getAttribute("data-max"),this.setValidationOnInputEl(),this.setMinMaxEventListener(),this.setToMinMax(),this.setToValue()}setValidationOnInputEl(){this.required&&this.required==="true"&&this.dateInput.setAttribute("required",!0),this.min&&this.dateInput.setAttribute("min",this.min),this.max&&this.dateInput.setAttribute("max",this.max),this.dateInput.setAttribute("display-name",this.displayName),this.dateInput.setAttribute("pattern",this.pattern),this.dateInput.setAttribute("pattern-hint",this.patternHint)}setMinMaxEventListener(){this.dateInput.addEventListener("blur",()=>{this.setToMinMax()})}setToMinMax(){if(this.dateInput.value){let e=new Date(this.dateInput.value);if(this.min){let s=new Date(this.min);e<s&&(this.dateInput.value=dayjs(this.min).format("DD/MM/YYYY"))}if(this.max){let s=new Date(this.max);e>s&&(this.dateInput.value=dayjs(this.max).format("DD/MM/YYYY"))}}let t=new Event("change");this.dateInput.dispatchEvent(t)}setToValue(){this.setToValueTriggers.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();let s=e.target.getAttribute("data-set-min-max-value"),a=e.target.getAttribute("data-set-to-input"),i=document.getElementById(a);i.value=s;let r=new Event("change");i.dispatchEvent(r)})})}};var N=class extends u{static getModuleName(){return"date-range-input"}initialise(){this.dateRangeInputs=document.getElementById("dpr-date-range"),this.filtersAccordion=document.getElementById("dpr-interactive-filters-details"),this.fieldName=this.dateRangeInputs.getAttribute("data-field-name"),this.startInputID=`filters.${this.fieldName}.start`,this.endInputID=`filters.${this.fieldName}.end`,this.durationInputID=`filters.${this.fieldName}.relative-duration`,this.relativeRangeRadioButtons=document.querySelectorAll(`input[name='${this.durationInputID}']`),this.startInput=document.querySelector(`input[name='${this.startInputID}']`),this.endInput=document.querySelector(`input[name='${this.endInputID}']`),this.startRequired=this.startInput.required,this.endRequired=this.endInput.required,this.datePickerTab=document.getElementById("tab_date-picker"),this.relativeDurationTab=document.getElementById("tab_relative-range"),this.durationValue=void 0,this.datePickerTab&&this.relativeDurationTab&&(this.initDatePickerTabClick(),this.initRelativeDurationTabClick(),this.initTabs(),this.initDurationRadionButtonClick())}initTabs(){this.queryParams=new URLSearchParams(window.location.search),this.queryParams.has(this.durationInputID)&&this.relativeRangeRadioButtons.forEach(t=>{this.updateCheckedDuration(t)})}initDatePickerTabClick(){this.datePickerTab.addEventListener("click",()=>{let t;this.queryParams=new URLSearchParams(window.location.search),this.queryParams.has(this.durationInputID)&&(t=this.queryParams.get(this.durationInputID),this.removeSearchParam(this.durationInputID)),this.updateInputs(t),window.location.hash="date-picker"})}initRelativeDurationTabClick(){this.relativeDurationTab.addEventListener("click",()=>{this.relativeRangeRadioButtons.forEach(t=>{this.updateCheckedDuration(t)}),window.location.hash="relative-range"})}initDurationRadionButtonClick(){this.relativeRangeRadioButtons.forEach(t=>{t.addEventListener("click",e=>{let s=e.target.value;this.durationValue=s,this.updateInputs(s),this.removeRequiredFromDatePickers()})})}removeSearchParam(t,e){this.queryParams=new URLSearchParams(window.location.search),this.queryParams.delete(t),e&&this.queryParams.delete(e),window.history.replaceState(null,null,`?${this.queryParams.toString()}`)}updateCheckedDuration(t){if(t.checked){let e=t.value;this.updateInputs(e);let s=new Event("change");t.dispatchEvent(s)}}removeRequiredFromDatePickers(){this.startInput.removeAttribute("required"),this.endInput.removeAttribute("required"),this.startInput.value="",this.endInput.value=""}updateInputs(t){if(this.startInput.required=this.startRequired,this.endInput.required=this.endRequired,t||this.durationValue){let s=t||this.durationValue,{startDate:a,endDate:i}=this.calculateDateForDatepicker(s);this.startInput.value=a,this.endInput.value=i}let e=new Event("change");this.startInput.dispatchEvent(e),this.endInput.dispatchEvent(e)}calculateDateForDatepicker(t){let e,s;switch(t){case"yesterday":s=dayjs(),e=s.subtract(1,"day");break;case"tomorrow":e=dayjs(),s=e.add(1,"day");break;case"last-week":s=dayjs(),e=s.subtract(1,"week");break;case"next-week":e=dayjs(),s=e.add(1,"week");break;case"last-month":s=dayjs(),e=s.subtract(1,"month");break;case"next-month":e=dayjs(),s=e.add(1,"month");break;default:break}return{startDate:e.format("DD/MM/YYYY").toString(),endDate:s.format("DD/MM/YYYY").toString()}}};var O=class extends u{static getModuleName(){return"autocomplete-text-input"}constructor(t){super(t);let e=this.getTextInput().getAttribute("aria-owns");this.listItemsSelector=`#${e} li`,this.listParentSelector=`#${e} ul`}initialise(){let t=this.getTextInput();t.addEventListener("keyup",e=>{this.onTextInput(e,t)}),this.getElement().querySelectorAll(".autocomplete-text-input-list-button").forEach(e=>{e.addEventListener("click",s=>{this.onOptionClick(s,t,this.getElement())})})}getTextInput(){return this.getElement().querySelector(".autocomplete-text-input-box")}onTextInput(t,e){let s=Number(e.dataset.minimumLength),{resourceEndpoint:a}=e.dataset,i=t.target.value.toLowerCase();if(a?i.length>=s?(this.addItem(this.clearListAndRecreateTemplate(),"<i>Searching...</i>"),this.populateOptionsDynamically(a,i,e,()=>this.clearListAndRecreateTemplate())):this.clearListAndRecreateTemplate():this.getElement().querySelectorAll(this.listItemsSelector).forEach(r=>{i.length>=s&&this.isMatchingStaticOptionNameOrDisplayPrefix(this.getInputListButton(r),i,r)?r.classList.remove("autocomplete-text-input-item-hide"):r.classList.add("autocomplete-text-input-item-hide")}),i.length===0){let r=new Event("change");e.dispatchEvent(r)}}getInputListButton(t){return t.querySelector(".autocomplete-text-input-list-button")}isMatchingStaticOptionNameOrDisplayPrefix(t,e,s){return this.isStaticOptionsNamePrefix(t.dataset.staticOptionNameValue,e)||s.innerText.trim().toLowerCase().startsWith(e)}isStaticOptionsNamePrefix(t,e){return t&&t.trim().toLowerCase().startsWith(e)}populateOptionsDynamically(t,e,s,a){return l(this,null,function*(){try{let r=yield(yield fetch(t.replace("{prefix}",encodeURI(e)))).json();if(e===s.value.toLowerCase()){let n=a();r.forEach(d=>{this.addItem(n,d,c=>{this.onOptionClick(c,s,this.getElement())})})}}catch(i){this.addItem(a(),`Failed to retrieve results: ${i}`)}})}onOptionClick(t,e,s){t.preventDefault(),e.value=t.target.innerText.trim(),e.staticOptionNameValue=t.target.dataset.staticOptionNameValue,e.focus();let a=new Event("change");e.dispatchEvent(a),s.querySelectorAll("li").forEach(i=>{i.classList.add("autocomplete-text-input-item-hide")})}addItem(t,e,s){let a=t.cloneNode(!0);a.querySelector("button").innerHTML=e,a.classList.remove("autocomplete-text-input-item-hide"),this.getElement().querySelector(this.listParentSelector).appendChild(a),s&&a.addEventListener("click",i=>{s(i)})}clearListAndRecreateTemplate(){let t=this.getElement().querySelector(this.listItemsSelector).cloneNode(!0);return t.classList.add("autocomplete-text-input-item-hide"),this.getElement().querySelectorAll(this.listItemsSelector).forEach(e=>e.remove()),this.getElement().querySelector(this.listParentSelector).append(t),t}};var j=class extends u{static getModuleName(){return"granular-date-range-input"}initialise(){this.filter=this.getElement(),this.fieldName=this.filter.getAttribute("data-field-name");let t=`filters.${this.fieldName}`;this.quickFiltersInput=this.filter.querySelector(`select[name='${t}.quick-filter']`),this.granularityInput=this.filter.querySelector(`select[name='${t}.granularity']`),this.startInput=this.filter.querySelector(`input[name='${t}.start']`),this.endInput=this.filter.querySelector(`input[name='${t}.end']`),this.initStartEndInputChangetEvent(),this.initGranularityChangeEvent(),this.initQuickFilterChangeEvent()}initGranularityChangeEvent(){this.granularityInput.addEventListener("change",t=>{this.resetQuickFilters()})}initQuickFilterChangeEvent(){this.quickFiltersInput.addEventListener("change",t=>{this.updateStartEndValues(t.target.value)})}initStartEndInputChangetEvent(){this.startInput.addEventListener("change",t=>{this.resetQuickFilters()}),this.endInput.addEventListener("change",t=>{this.resetQuickFilters()})}setGranularityValue(t){this.granularityInput.value=t}setStartValue(t){this.startInput.value=t}setEndValue(t){this.endInput.value=t}resetQuickFilters(){this.quickFiltersInput.value="none";let t=new URLSearchParams(window.location.search);t.set(this.quickFiltersInput.id,"none"),window.history.replaceState(null,null,`?${t.toString()}`)}updateStartEndValues(t){let e,s,a;switch(t){case"today":s=dayjs(),e=dayjs(),a="daily";break;case"yesterday":s=dayjs().subtract(1,"day"),e=dayjs().subtract(1,"day"),a="daily";break;case"last-seven-days":s=dayjs(),e=s.subtract(7,"day").add(1,"day"),a="daily";break;case"last-thirty-days":s=dayjs(),e=s.subtract(30,"day").add(1,"day"),a="daily";break;case"last-month":s=dayjs(),e=s.subtract(1,"month").add(1,"day"),a="monthly";break;case"last-full-month":s=dayjs().subtract(1,"month").endOf("month"),e=s.startOf("month"),a="monthly";break;case"last-ninety-days":s=dayjs(),e=s.subtract(90,"day").add(1,"day"),a="daily";break;case"last-three-months":s=dayjs(),e=s.subtract(3,"month").add(1,"day"),a="monthly";break;case"last-full-three-months":s=dayjs().subtract(1,"month").endOf("month"),e=s.subtract(2,"month").startOf("month"),a="monthly";break;case"last-six-months":s=dayjs(),e=s.subtract(6,"month").add(1,"day"),a="monthly";break;case"last-full-six-months":s=dayjs().subtract(1,"month").endOf("month"),e=s.subtract(6,"month").startOf("month"),a="monthly";break;case"last-year":s=dayjs(),e=s.subtract(1,"year").add(1,"day"),a="annually";break;case"last-full-year":s=dayjs().subtract(1,"year").endOf("year"),e=s.startOf("year"),a="annually";break;case"tomorrow":s=dayjs().add(1,"day"),e=dayjs().add(1,"day"),a="daily";break;case"next-seven-days":e=dayjs(),s=dayjs().add(7,"day").subtract(1,"day"),a="daily";break;case"next-thirty-days":e=dayjs(),s=dayjs().add(30,"day").subtract(1,"day"),a="daily";break;case"next-month":e=dayjs(),s=dayjs().add(1,"month").subtract(1,"day"),a="monthly";break;case"next-full-month":e=dayjs().add(1,"month").startOf("month"),s=e.endOf("month"),a="monthly";break;case"next-ninety-days":e=dayjs(),s=dayjs().add(90,"day").subtract(1,"day"),a="daily";break;case"next-three-months":e=dayjs(),s=dayjs().add(3,"month").subtract(1,"day"),a="monthly";break;case"next-full-three-months":e=dayjs().add(1,"month").startOf("month"),s=e.add(2,"month").endOf("month"),a="monthly";break;case"next-year":e=dayjs(),s=dayjs().add(1,"year").subtract(1,"day"),a="annually";break;case"next-full-year":e=dayjs().add(1,"year").startOf("year"),s=e.endOf("year"),a="annually";break;default:break}this.setStartValue(e.format("DD/MM/YYYY").toString()),this.setEndValue(s.format("DD/MM/YYYY").toString()),this.setGranularityValue(a);let i=new URLSearchParams(window.location.search);i.set(this.granularityInput.id,a),i.set(this.startInput.id,e.format("YYYY/MM/DD").toString()),i.set(this.endInput.id,s.format("YYYY/MM/DD").toString()),window.history.replaceState(null,null,`?${i.toString()}`)}};var V=class extends g{static getModuleName(){return"async-request-list"}initialise(){this.END_STATUSES=this.getEndStatuses(),this.EXPIRED_END_STATUSES=this.getExpiredCheckStatuses(),this.POLLING_FREQUENCY=this.getPollingFrquency(),this.requestList=document.getElementById("dpr-async-request-component"),this.requestData=this.requestList.getAttribute("data-request-data"),this.csrfToken=this.requestList.getAttribute("data-csrf-token"),this.removeActions=document.querySelectorAll(".dpr-remove-requested-report-button"),this.initItemActions(),this.initPollingIntervals()}initPollingIntervals(){return l(this,null,function*(){yield this.checkIfExpired(),this.requestData&&(this.shouldPollExpired(this.requestData)&&(this.expiredInterval=setInterval(()=>l(this,null,function*(){yield this.checkIfExpired()}),"60000")),this.shouldPollStatus(this.requestData)&&(this.pollingInterval=setInterval(()=>l(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY)))})}checkIfExpired(){return l(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>l(this,null,function*(){if(!this.EXPIRED_END_STATUSES.includes(t.status)){let e=yield this.getExpiredStatus("/dpr/getRequestedExpiredStatus/",t,this.csrfToken);e&&e.isExpired&&(clearInterval(this.expiredInterval),window.location.reload())}})))})}pollStatus(){return l(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>l(this,null,function*(){if(!this.END_STATUSES.includes(t.status)){let e=yield this.getRequestStatus(t,this.csrfToken);this.END_STATUSES.includes(e.status)&&(clearInterval(this.pollingInterval),window.location.reload())}})))})}initItemActions(){this.removeActions.forEach(t=>{let e=t.getAttribute("data-execution-id");t.addEventListener("click",s=>l(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return l(this,null,function*(){let e;return yield fetch("/dpr/removeRequestedItem/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":this.csrfToken},body:JSON.stringify({executionId:t})}).then(()=>{window.location.reload()}).catch(s=>console.error("Error:",s)),e})}};var Y=class extends g{static getModuleName(){return"recently-viewed-list"}initialise(){this.EXPIRED_END_STATUSES=this.getExpiredCheckStatuses(),this.POLLING_FREQUENCY="60000",this.viewedList=document.getElementById("dpr-recently-viewed-component"),this.viewedReportData=this.viewedList.getAttribute("data-request-data"),this.csrfToken=this.viewedList.getAttribute("data-csrf-token"),this.removeActions=document.querySelectorAll(".dpr-remove-viewed-report-button"),this.initItemActions(),this.initPollingIntervals()}initPollingIntervals(){return l(this,null,function*(){yield this.checkIsExpired(),this.viewedReportData&&this.shouldPollExpired(this.viewedReportData)&&(this.expiredViewedInterval=setInterval(()=>l(this,null,function*(){yield this.checkIsExpired()}),this.POLLING_FREQUENCY))})}checkIsExpired(){return l(this,null,function*(){yield Promise.all(JSON.parse(this.viewedReportData).map(t=>l(this,null,function*(){if(t.status!=="EXPIRED"){let e=yield this.getExpiredStatus("/dpr/getExpiredStatus/",t,this.csrfToken);e&&e.isExpired&&(window.location.reload(),clearInterval(this.expiredViewedInterval))}})))})}initItemActions(){this.removeActions.forEach(t=>{let e=t.getAttribute("data-execution-id");t.addEventListener("click",s=>l(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return l(this,null,function*(){let e;return yield fetch("/dpr/removeViewedItem/",{method:"post",headers:{Accept:"application/json","Content-Type":"application/json","CSRF-Token":this.csrfToken},body:JSON.stringify({executionId:t})}).then(()=>{window.location.reload()}).catch(s=>console.error("Error:",s)),e})}};var f=class extends u{setupCanvas(){this.chartContext=this.getElement().querySelector("canvas"),this.id=this.chartContext.getAttribute("id"),this.chartParams=JSON.parse(this.getElement().getAttribute("data-dpr-chart-data")),this.type=this.getElement().getAttribute("data-dpr-chart-type"),this.setValueSuffix(),this.legend=this.getElement().querySelector(`#js-legend-${this.id}`),this.tooltipDetailsEl=document.getElementById(`dpr-${this.id}-tooltip-details`),this.headlineValuesEl=document.getElementById(`dpr-${this.id}-headline-values`),this.labelElement=document.getElementById(`dpr-${this.id}-label`),this.valueElement=document.getElementById(`dpr-${this.id}-value`),this.legendElement=document.getElementById(`dpr-${this.id}-legend`),this.legendElement=document.getElementById(`dpr-${this.id}-legend`),this.timeseries=this.getElement().getAttribute("data-dpr-chart-timeseries"),(this.timeseries||this.type==="line")&&(this.daterangeInputs=document.querySelectorAll(".dpr-granular-date-range"),this.daterangeInputs&&this.daterangeInputs.length?this.daterangeInputs.forEach(t=>{this.partialStart=t.getAttribute("data-partial-start")==="true",this.partialEnd=t.getAttribute("data-partial-end")==="true"}):(this.partialStart=!1,this.partialEnd=!1)),this.singleDataset=this.chartParams.datasets.length===1}initChart(){Chart.defaults.font.family="GDS Transport",Chart.register(ChartDataLabels),Chart.defaults.font.size=12,this.chart=new Chart(this.chartContext,this.chartData),this.initChartEvents()}getColourPallette(){return[{name:"blue",hex:"#5694ca"},{name:"purple",hex:"#912b88"},{name:"green",hex:"#00703c"},{name:"dark_blue",hex:"#003078"},{name:"orange",hex:"#f47738"},{name:"orange",hex:"#28a197"}]}mapHexColourToName(t,e){let a=e.getColourPallette().find(i=>i.hex===t);return a?a.name:""}createDatasets(t,e){return t.map((s,a)=>{let{label:i,data:r}=s,n=e[a%6]?e[a%6]:e[0];return m({label:i,data:r},n)})}generateChartData(t){let{datasets:e,labels:s}=this.chartParams,{options:a,styling:i,datalabels:r,plugins:n,pluginsOptions:d,toolTipOptions:c,hoverEvent:h}=t;return{type:this.type,data:{labels:s,datasets:this.createDatasets(e,i)},options:k(m(m({responsive:!0,maintainAspectRatio:!1,animation:{duration:0},hover:{animationDuration:0}},a&&a),h&&h),{plugins:k(m(m({legend:{position:"bottom"}},d&&d),r&&{datalabels:r}),{tooltip:m(m({},this.setToolTip()),c&&c)})}),plugins:n&&n.length?[...n]:[]}}setToolTip(){return{backgroundColor:"#FFF",bodyColor:"#000",titleFont:{size:16},bodyFont:{size:16},titleColor:"#000",displayColors:!1,borderWidth:1,borderColor:"#b1b4b6",cornerRadius:0,padding:20,footerFont:{weight:"bold"},animation:{duration:0}}}setHoverValue({label:t,value:e,legend:s,ctx:a}){a.tooltipDetailsEl&&(a.tooltipDetailsEl.style.display="block",a.labelElement.innerHTML=a.singleDataset?`${t}`:`${s}: ${t}`,a.valueElement.innerHTML=`${e}`),a.headlineValuesEl&&(a.headlineValuesEl.style.display="none"),s||(a.legendElement.style.display="none")}setValueSuffix(){this.unit=this.getElement().getAttribute("data-dpr-chart-unit"),this.suffix=this.unit==="percentage"?"%":""}isPercentage(){return this.unit==="percentage"}initChartEvents(){this.chart.canvas.addEventListener("mouseout",t=>{this.tooltipDetailsEl&&(this.tooltipDetailsEl.style.display="none"),this.headlineValuesEl&&(this.headlineValuesEl.style.display="block")})}};var _=class extends f{static getModuleName(){return"bar-chart"}initialise(){this.setupCanvas(),this.settings=this.initSettings(),this.chartData=this.generateChartData(this.settings),this.initChart(this.chartData)}initSettings(){return{options:this.setOptions(),toolTipOptions:this.setToolTipOptions(),datalabels:this.setDataLabels(),styling:this.setDatasetStyling()}}setDatasetStyling(){return this.getColourPallette().map(e=>k(m({borderColor:e.hex},this.setBackgroundColour(e.hex)),{datalabels:{align:"center",anchor:"center"}}))}setBackgroundColour(t){let e=this.chartParams.labels.length-1,s=[],a=[],i=[];return this.chartParams.labels.forEach((r,n)=>{this.partialEnd&&n===e||this.partialStart&&n===0?(s.push(t),a.push(3),i.push("#b1b4b6")):(s.push(t),a.push(0),i.push(t))}),{backgroundColor:s,borderWidth:a,borderColor:i}}setToolTipOptions(){let t=this;return{callbacks:{title(e){let{label:s,dataset:a}=e[0],{label:i}=a;return t.singleDataset?`${s}`:`${i}: ${s}`},label(e){let{label:s}=e,{data:a,label:i}=e.dataset,r=`${a[e.dataIndex]}${t.suffix}`;return t.setHoverValue({label:s,value:r,legend:i,ctx:t}),r}}}}setOptions(){let{indexAxis:t,stacked:e}=this.chartParams;return m({indexAxis:t||"x"},e&&{scales:{x:{stacked:!0},y:{stacked:!0}}})}setDataLabels(){return{color:"#FFF",display:()=>!this.timeseries,formatter:t=>`${t}${this.suffix}`,labels:{title:{font:{weight:"bold",size:16,color:"#FFF"}}}}}};var Q=class extends f{static getModuleName(){return"doughnut-chart"}initialise(){this.setupCanvas(),this.settings=this.initSettings(),this.chartData=this.generateChartData(this.settings),this.initChart(this.chartData)}initSettings(){return{options:this.setOptions(),styling:this.setDatasetStyling(),datalabels:this.setDataLabels(),pluginsOptions:this.setPluginsOptions(),toolTipOptions:this.setToolTipOptions(),plugins:this.setPlugins()}}setDatasetStyling(){let e=this.getColourPallette().map(s=>s.hex);return[{backgroundColor:[...e,...e],hoverOffset:4,datalabels:{anchor:"center",borderWidth:0}}]}setOptions(){return{cutout:this.chartParams.datasets.length===1?"50%":"20%"}}setPluginsOptions(){return{legend:{display:!0,position:"bottom"}}}setPlugins(){let t=[];return this.chartParams.datasets.length===1&&!this.isPercentage&&t.push(this.setCentralText()),t}setCentralText(){return{id:"text",beforeDraw(t){let{width:e}=t,{height:s}=t,{ctx:a}=t;a.textBaseline="middle";let i=2.5;a.font=`100 ${i}em GDS Transport`,a.fillStyle=" #505a5f";let n=t.data.datasets[0].data.reduce((W,G)=>W+G,0),d=Math.round((e-a.measureText(n).width)/2),c=s/2;a.fillText(n,d,c),a.save(),a.textBaseline="middle",i=1,a.font=`100 ${i}em GDS Transport`,a.fillStyle=" #505a5f";let h="Total",v=Math.round((e-a.measureText(h).width)/2),E=c+30;a.fillText(h,v,E),a.save()}}}setLegend(){let t=this,{legend:e,suffix:s}=this;return{id:"legend",beforeInit(a){let i=document.createElement("ul"),{labels:r}=a.data,{backgroundColor:n,data:d}=a.data.datasets[0];return r.forEach((c,h)=>{let v=h%n.length,E=n[v],W=t.mapHexColourToName(E,t),G=a.data.datasets.length===1?`${d[h]}${s}`:"";i.innerHTML+=`
29
29
  <li aria-label="${c} ${G}">
30
30
  <span class="chart-colour__${W}">${G}</span>
31
31
  ${c}
package/dpr/all.scss CHANGED
@@ -1730,6 +1730,45 @@ ul.dpr-card-group__item__filters-list {
1730
1730
  }
1731
1731
  }
1732
1732
 
1733
+ .dpr-table-container--row-section {
1734
+ th {
1735
+ border-bottom: 0px;
1736
+ }
1737
+ th.dpr-row-section-header {
1738
+ width: 33%;
1739
+ }
1740
+ th.pr-row-section-header-value {
1741
+ width: 66%;
1742
+ }
1743
+
1744
+ .dpr-section-header {
1745
+ // background-color: govuk-colour('light-grey');
1746
+ // border: 1px solid govuk-colour("mid-grey");
1747
+ border-bottom: none;
1748
+ // padding: govuk-spacing(3);
1749
+
1750
+ h2 {
1751
+ // font-size: 19px;
1752
+ }
1753
+ }
1754
+
1755
+ .dpr-section-header-spacer-bottom {
1756
+ // border-left: 1px solid govuk-colour("mid-grey");
1757
+ // border-right: 1px solid govuk-colour("mid-grey");
1758
+ }
1759
+
1760
+ .dpr-row-heading {
1761
+ padding: govuk-spacing(2);
1762
+ font-weight: 800;
1763
+ // border-left: 1px solid govuk-colour("mid-grey");
1764
+ }
1765
+
1766
+ .dpr-row-heading-data {
1767
+ padding: govuk-spacing(2);
1768
+ // border-right: 1px solid govuk-colour("mid-grey");
1769
+ }
1770
+ }
1771
+
1733
1772
  .data-table-empty-message {
1734
1773
  text-align: center;
1735
1774
  position: relative;