@ministryofjustice/hmpps-digital-prison-reporting-frontend 4.6.0 → 4.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dpr/all.mjs +3 -3
- package/dpr/all.scss +14 -15
- package/dpr/assets/css/all.css +1 -1
- package/dpr/assets/js/all.min.mjs +3 -3
- package/dpr/components/_async/async-filters-form/utils.js +2 -2
- package/dpr/components/_async/async-filters-form/utils.ts +3 -2
- package/dpr/components/_async/async-filters-form/view.njk +0 -8
- package/dpr/components/_filters/filters-form/view.njk +1 -5
- package/dpr/components/_filters/filters-interactive/view.njk +4 -3
- package/dpr/components/_filters/filters-reset/view.njk +8 -0
- package/dpr/components/_filters/filters-selected/view.njk +13 -5
- package/dpr/components/_inputs/date-input/utils.js +6 -3
- package/dpr/components/_inputs/date-input/utils.ts +6 -4
- package/dpr/components/_inputs/date-input/view.njk +22 -18
- package/dpr/components/_inputs/date-range/types.ts +6 -0
- package/dpr/components/_inputs/date-range/utils.js +13 -5
- package/dpr/components/_inputs/date-range/utils.ts +19 -11
- package/dpr/components/_inputs/date-range/view.njk +10 -1
- package/dpr/components/_inputs/multi-select/view.njk +1 -1
- package/dpr/utils/logger.js +1 -1
- package/dpr/utils/logger.ts +1 -1
- package/package.json +1 -1
- package/package.zip +0 -0
package/dpr/all.mjs
CHANGED
|
@@ -25,10 +25,10 @@
|
|
|
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 K=Object.defineProperty,Z=Object.defineProperties;var tt=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var et=Object.prototype.hasOwnProperty,st=Object.prototype.propertyIsEnumerable;var X=(o,t,e)=>t in o?K(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,h=(o,t)=>{for(var e in t||(t={}))et.call(t,e)&&X(o,e,t[e]);if(z)for(var e of z(t))st.call(t,e)&&X(o,e,t[e]);return o},y=(o,t)=>Z(o,tt(t));var d=(o,t,e)=>new Promise((s,a)=>{var i=l=>{try{n(e.next(l))}catch(u){a(u)}},r=l=>{try{n(e.throw(l))}catch(u){a(u)}},n=l=>l.done?s(l.value):Promise.resolve(l.value).then(i,r);n((e=e.apply(o,t)).next())});var S=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 c=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 w=class extends c{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 I=class extends c{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 x=class extends c{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",()=>d(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=>d(this,null,function*(){n.key==="Enter"&&(yield this.handleBookmarkChange(e,i,a,r,s))}))})}addBookmark(t,e,s,a,i){return d(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 d(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 d(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 d(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 c{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 c{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,l=t.classList.contains("moj-js-datepicker-input");if(l){let m=dayjs(r,"D/M/YYYY").format("YYYY-MM-DD");r=m!=="Invalid Date"?m:""}let u=!l&&n?n:r;i&&this.updateQueryParam(i,u.trim())}}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 l;n==="checkbox"&&(l="append",!s&&a!=="columns"&&this.updateQueryParam("preventDefault",!0)),this.updateQueryParam(a,i,l)}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 b=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 l=e.getAttribute("pattern-hint")||e.getAttribute("pattern");n=a.length?a:`The value for ${r} must be in the correct pattern: ${l}`,this.errorMessages.push({text:n,href:`#${i}`})}return n}};var L=class extends b{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 P=class extends c{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 q=class extends c{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 u=this.table.createTFoot().insertRow(0).insertCell(0);u.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 c{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 F=class extends b{initFiltersForm({formId:t,submitButtonId:e,resetButtonId:s,selectedFiltersId:a,removeSelectedButtonClass:i}){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.selectedFiltersWrapper=document.getElementById(a),this.selectedFiltersButtons=document.querySelectorAll(`.${i}`),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()}};var v=class extends F{static getModuleName(){return"selected-filters"}initInteractiveSelectedFilterButtonsEvents(){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(l=>l.key===r);n&&this.updateQueryParam(r,n.value)}}),this.updateQueryParam("preventDefault",!0),window.location.reload()})})}initSelectedFiltersButtons(){this.queryParams=new URLSearchParams(window.location.search),this.selectedFiltersWrapper.innerHTML="";let t=[];this.queryParams.forEach((e,s)=>{let a=s,i=e;if(s.includes("filters.")){let r=document.getElementsByName(s);if(r.length){a=this.getDisplayName(r[0]),i=this.getInputDisplayValue(r);let n=t.findIndex(l=>l.key===s);n===-1?t.push({displayName:a,displayValue:i,key:s,value:[e],type:r[0]}):t[n]=y(h({},t[n]),{displayValue:t[n].displayValue,value:t[n].value})}}}),this.createSelectedFilters(t)}initInputEventsForSelectedFilters(t){Array.from(t).forEach(e=>{e.addEventListener("change",()=>{this.initSelectedFiltersButtons()})})}createSelectedFilters(t){t.forEach(e=>{let{displayName:s,displayValue:a,key:i,value:r}=e,n=a;Array.isArray(a)&&a.length>3&&(n=`${a[0]}, ${a[1]}, ${a[2]} + ${a.length-3} more`);let l=this.createSelectedItem(s,n,i,r);this.selectedFiltersWrapper.appendChild(l),this.initSelectedButtonEvent()})}getInputDisplayValue(t){let e;switch(t[0].type){case"text":e=t[0].value;break;case"radio":{e=Array.from(t).find(a=>a.checked).labels[0].innerText;break}case"select-one":e=t[0].options[t[0].selectedIndex].text;break;case"checkbox":{e=Array.from(t).filter(a=>a.checked).map(a=>` ${a.labels[0].innerText}`);break}default:e=t[0].value;break}return e}initSelectedButtonEvent(){Array.from(this.selectedFiltersWrapper.children).forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();let s=document.getElementsByName(t.dataset.dataQueryParamKey);if(s.length){switch(s[0].type){case"checkbox":case"radio":s.forEach(i=>{i.checked=!1;let r=new Event("change");i.dispatchEvent(r)});break;case"search":s[0].value="",s[0].staticOptionNameValue="";break;default:s[0].value="";break}let a=new Event("change");s[0].dispatchEvent(a)}})})}createSelectedItem(t,e,s,a){let i=document.createElement("a");i.classList="govuk-link govuk-body interactive-remove-filter-button",i.dataset.dataQueryParamKey=s,i.dataset.dataQueryParamValue=`[ "${a}" ]`;let r=document.createTextNode(`${t}: ${e}`);return i.appendChild(r),i}};var T=class extends v{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.initInteractiveSelectedFilterButtonsEvents()}};var f=class extends c{getPollingFrquency(){return"2000"}getPollingStatuses(){return["SUBMITTED","STARTED","PICKED"]}getEndStatuses(){return["FINISHED","FAILED","EXPIRED","ABORTED"]}getExpiredCheckStatuses(){return["FAILED","EXPIRED","ABORTED"]}getRequestStatus(t,e){return d(this,null,function*(){return this.getStatus("/dpr/getStatus/",t,e)})}getExpiredStatus(t,e,s){return d(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 d(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(h({},e))}).then(i=>i.json()).then(i=>{a=i}).catch(i=>console.error("Error:",i)),a})}};var R=class extends f{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.reportUrl=this.statusSection.getAttribute("data-report-url"),this.initCancelRequestButton(),this.initPollingInterval()}initPollingInterval(){return d(this,null,function*(){this.POLLING_STATUSES.includes(this.currentStatus)?this.pollingInterval=setInterval(()=>d(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY):this.currentStatus==="FINISHED"&&(window.location.href=this.reportUrl)})}pollStatus(){return d(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",()=>d(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 $=class extends v{static getModuleName(){return"async-filters"}initialise(){this.initFiltersForm({formId:"async-filters-form",submitButtonId:"async-request-report-button",resetButtonId:"async-request-reset-filters-button",selectedFiltersId:"dpr-selected-filters",removeSelectedButtonClass:"interactive-remove-filter-button"}),this.initSelectedFiltersButtons()}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()}initValues(){this.initInputsFromQueryParams(),this.initQueryParamsFromInputs(this.mainForm.elements),this.initInputEvents(this.mainForm.elements),this.initSelectedButtonEvent(),this.initInputEventsForSelectedFilters(this.mainForm.elements)}};var N=class extends c{static getModuleName(){return"sync-loading"}initialise(){this.element=this.getElement(),this.form=this.element.querySelector("#dpr-sync-loading-form"),this.load()}load(){return d(this,null,function*(){this.form.submit()})}};var M=class extends c{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 O=class extends c{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 V=class extends c{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 d(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(l=>{this.addItem(n,l,u=>{this.onOptionClick(u,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 c{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 Y=class extends f{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 d(this,null,function*(){yield this.checkIfExpired(),this.requestData&&(this.shouldPollExpired(this.requestData)&&(this.expiredInterval=setInterval(()=>d(this,null,function*(){yield this.checkIfExpired()}),"60000")),this.shouldPollStatus(this.requestData)&&(this.pollingInterval=setInterval(()=>d(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY)))})}checkIfExpired(){return d(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>d(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 d(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>d(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=>d(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return d(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 Q=class extends f{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 d(this,null,function*(){yield this.checkIsExpired(),this.viewedReportData&&this.shouldPollExpired(this.viewedReportData)&&(this.expiredViewedInterval=setInterval(()=>d(this,null,function*(){yield this.checkIsExpired()}),this.POLLING_FREQUENCY))})}checkIsExpired(){return d(this,null,function*(){yield Promise.all(JSON.parse(this.viewedReportData).map(t=>d(this,null,function*(){if(t.status!=="EXPIRED"){let e=yield this.getExpiredStatus("/dpr/getExpiredStatus/",t,this.csrfToken);e&&e.isExpired&&clearInterval(this.expiredViewedInterval)}})))})}initItemActions(){this.removeActions.forEach(t=>{let e=t.getAttribute("data-execution-id");t.addEventListener("click",s=>d(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return d(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 g=class extends c{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 h({label:i,data:r},n)})}generateChartData(t){let{datasets:e,labels:s}=this.chartParams,{options:a,styling:i,datalabels:r,plugins:n,pluginsOptions:l,toolTipOptions:u,hoverEvent:m}=t;return{type:this.type,data:{labels:s,datasets:this.createDatasets(e,i)},options:y(h(h({responsive:!0,maintainAspectRatio:!1,animation:{duration:0},hover:{animationDuration:0}},a&&a),m&&m),{plugins:y(h(h({legend:{position:"bottom"}},l&&l),r&&{datalabels:r}),{tooltip:h(h({},this.setToolTip()),u&&u)})}),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 g{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=>y(h({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 h({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 U=class extends g{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((J,G)=>J+G,0),l=Math.round((e-a.measureText(n).width)/2),u=s/2;a.fillText(n,l,u),a.save(),a.textBaseline="middle",i=1,a.font=`100 ${i}em GDS Transport`,a.fillStyle=" #505a5f";let m="Total",E=Math.round((e-a.measureText(m).width)/2),k=u+30;a.fillText(m,E,k),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:l}=a.data.datasets[0];return r.forEach((u,m)=>{let E=m%n.length,k=n[E],J=t.mapHexColourToName(k,t),G=a.data.datasets.length===1?`${l[m]}${s}`:"";i.innerHTML+=`
|
|
28
|
+
var K=Object.defineProperty,Z=Object.defineProperties;var tt=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var et=Object.prototype.hasOwnProperty,st=Object.prototype.propertyIsEnumerable;var X=(l,t,e)=>t in l?K(l,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):l[t]=e,h=(l,t)=>{for(var e in t||(t={}))et.call(t,e)&&X(l,e,t[e]);if(z)for(var e of z(t))st.call(t,e)&&X(l,e,t[e]);return l},y=(l,t)=>Z(l,tt(t));var d=(l,t,e)=>new Promise((s,a)=>{var i=o=>{try{n(e.next(o))}catch(u){a(u)}},r=o=>{try{n(e.throw(o))}catch(u){a(u)}},n=o=>o.done?s(o.value):Promise.resolve(o.value).then(i,r);n((e=e.apply(l,t)).next())});var S=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 c=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 w=class extends c{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 I=class extends c{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 x=class extends c{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",()=>d(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=>d(this,null,function*(){n.key==="Enter"&&(yield this.handleBookmarkChange(e,i,a,r,s))}))})}addBookmark(t,e,s,a,i){return d(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 d(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 d(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 d(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 c{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 c{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,o=t.classList.contains("moj-js-datepicker-input");if(o){let m=dayjs(r,"D/M/YYYY").format("YYYY-MM-DD");r=m!=="Invalid Date"?m:""}let u=!o&&n?n:r;i&&this.updateQueryParam(i,u.trim())}}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 o;n==="checkbox"&&(o="append",!s&&a!=="columns"&&this.updateQueryParam("preventDefault",!0)),this.updateQueryParam(a,i,o)}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 b=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 o=e.getAttribute("pattern-hint")||e.getAttribute("pattern");n=a.length?a:`The value for ${r} must be in the correct pattern: ${o}`,this.errorMessages.push({text:n,href:`#${i}`})}return n}};var L=class extends b{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 P=class extends c{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 C=class extends c{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 u=this.table.createTFoot().insertRow(0).insertCell(0);u.outerHTML=`<td class="govuk-table__cell govuk-table__cell--content print-header-footer table-row--no-border" colspan=${e}>${s}</td>`}}};var q=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 c{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 F=class extends b{initFiltersForm({formId:t,submitButtonId:e,resetButtonId:s,selectedFiltersId:a,removeSelectedButtonClass:i}){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.selectedFiltersWrapper=document.getElementById(a),this.selectedFiltersButtons=document.querySelectorAll(`.${i}`),this.initValues(),this.initSubmitButton(),this.initResetButton(s),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(t){this.resetButton=document.getElementById(t),this.resetButton&&(this.defaultQuery=this.resetButton.getAttribute("defaultQuery"),this.resetButton.addEventListener("click",e=>{e.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()}};var v=class extends F{static getModuleName(){return"selected-filters"}initInteractiveSelectedFilterButtonsEvents(){this.selectedFiltersButtons&&this.selectedFiltersButtons.forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();let s=e.target.matches(".interactive-remove-filter-button")?e.target:e.target.closest(".interactive-remove-filter-button"),a=JSON.parse(s.getAttribute("data-query-param-key"))||[],i=JSON.parse(s.getAttribute("data-query-param-value"))||[],r=s.getAttribute("data-query-constraint-values");r=r?JSON.parse(s.getAttribute("data-query-constraint-values")):void 0,a.forEach(n=>{if(i.forEach(o=>{this.updateQueryParam(n,o,"delete")}),r){let o=r.find(u=>u.key===n);o&&this.updateQueryParam(n,o.value)}}),this.updateQueryParam("preventDefault",!0),window.location.reload()})})}initSelectedFiltersButtons(){if(this.selectedFiltersWrapper){let t=this.getSelectedFilterData();t=this.setPresetDateRangeSelectedFilter(t),t=this.setMultiselectSelectedFilterValue(t),this.createSelectedFilterElements(t)}}initInputEventsForSelectedFilters(t){Array.from(t).forEach(e=>{e.addEventListener("change",()=>{this.initSelectedFiltersButtons()})})}getSelectedFilterData(){this.queryParams=new URLSearchParams(window.location.search),this.selectedFiltersWrapper.innerHTML="";let t=[];return this.queryParams.forEach((e,s)=>{let a=s,i=e;if(s.includes("filters.")){let r=document.getElementsByName(s);if(r.length){a=this.getDisplayName(r[0]),i=this.getInputDisplayValue(r);let n=t.findIndex(o=>o.key===s);n===-1?i&&t.push({displayName:a,displayValue:i,key:s,value:[e],type:r[0]}):t[n]=y(h({},t[n]),{displayValue:t[n].displayValue,value:t[n].value})}}}),t}createSelectedFilterElements(t){t.length?t.forEach(e=>{this.createSelectedFilterElement(e),this.initSelectedButtonEvent()}):this.createNoFiltersSelectedMessageEl(),this.createResetButtonEl()}getInputDisplayValue(t){let e;switch(t[0].type){case"text":e=t[0].value;break;case"radio":{e=Array.from(t).find(a=>a.checked).labels[0].innerText;break}case"select-one":e=t[0].options[t[0].selectedIndex].text;break;case"checkbox":{e=Array.from(t).filter(a=>a.checked).map(a=>` ${a.labels[0].innerText}`);break}default:e=t[0].value;break}return e}initSelectedButtonEvent(){this.selectedFiltersWrapper&&Array.from(this.selectedFiltersWrapper.children).forEach(t=>{t.addEventListener("click",e=>{e.preventDefault();let s=document.getElementsByName(t.dataset.dataQueryParamKey);if(s.length){switch(s[0].type){case"checkbox":case"radio":s.forEach(i=>{i.checked=!1;let r=new Event("change");i.dispatchEvent(r)});break;case"search":s[0].value="",s[0].staticOptionNameValue="";break;default:s[0].value="";break}let a=new Event("change");s[0].dispatchEvent(a)}})})}createSelectedFilterElement(t){let{displayName:e,displayValue:s,key:a,value:i}=t,r=document.createElement("a");r.classList="govuk-link govuk-body interactive-remove-filter-button",r.dataset.dataQueryParamKey=a,r.dataset.dataQueryParamValue=`[ "${i}" ]`;let n=document.createTextNode(`${e}: `);r.appendChild(n);let o=document.createElement("span");o.classList="dpr-selected-filter__value";let u=document.createTextNode(s);o.appendChild(u),r.appendChild(o),this.selectedFiltersWrapper.appendChild(r)}createNoFiltersSelectedMessageEl(){let t=document.createElement("p");t.classList="govuk-body-s govuk-!-margin-top-2 govuk-!-margin-bottom-0";let e=document.createTextNode("No filters selected");t.appendChild(e),this.selectedFiltersWrapper.appendChild(t)}createResetButtonEl(){let t=document.createElement("a");t.classList="govuk-body-s govuk-link govuk-link--no-visited-state dpr-reset-filters-button govuk-!-margin-bottom-0";let e=document.createTextNode("Reset filters");t.appendChild(e),t.setAttribute("href","#"),t.setAttribute("id","async-request-reset-filters-button"),this.selectedFiltersWrapper.appendChild(t),this.initResetButton("async-request-reset-filters-button")}setPresetDateRangeSelectedFilter(t){let e=t,s=t.find(a=>a.displayName==="Preset date range");return s&&(e=t.filter(a=>{let i=a.key.split(".");return!a.key.includes(`${i[0]}.${i[1]}`)||a.key===s.key})),e}setMultiselectSelectedFilterValue(t){let e=t;return e=t.map(s=>{if(Array.isArray(s.displayValue)&&s.displayValue.length>3){let a=`${s.displayValue[0]}, ${s.displayValue[1]}, ${s.displayValue[2]} + ${s.displayValue.length-3} more`;return y(h({},s),{displayValue:a})}return s}),e}};var T=class extends v{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.initInteractiveSelectedFilterButtonsEvents()}};var g=class extends c{getPollingFrquency(){return"2000"}getPollingStatuses(){return["SUBMITTED","STARTED","PICKED"]}getEndStatuses(){return["FINISHED","FAILED","EXPIRED","ABORTED"]}getExpiredCheckStatuses(){return["FAILED","EXPIRED","ABORTED"]}getRequestStatus(t,e){return d(this,null,function*(){return this.getStatus("/dpr/getStatus/",t,e)})}getExpiredStatus(t,e,s){return d(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 d(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(h({},e))}).then(i=>i.json()).then(i=>{a=i}).catch(i=>console.error("Error:",i)),a})}};var R=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.reportUrl=this.statusSection.getAttribute("data-report-url"),this.initCancelRequestButton(),this.initPollingInterval()}initPollingInterval(){return d(this,null,function*(){this.POLLING_STATUSES.includes(this.currentStatus)?this.pollingInterval=setInterval(()=>d(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY):this.currentStatus==="FINISHED"&&(window.location.href=this.reportUrl)})}pollStatus(){return d(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",()=>d(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 N=class extends v{static getModuleName(){return"async-filters"}initialise(){this.initFiltersForm({formId:"async-filters-form",submitButtonId:"async-request-report-button",resetButtonId:"async-request-reset-filters-button",selectedFiltersId:"dpr-selected-filters",removeSelectedButtonClass:"interactive-remove-filter-button"}),this.initSelectedFiltersButtons()}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()}initValues(){this.initInputsFromQueryParams(),this.initQueryParamsFromInputs(this.mainForm.elements),this.initInputEvents(this.mainForm.elements),this.initSelectedButtonEvent(),this.initInputEventsForSelectedFilters(this.mainForm.elements)}};var $=class extends c{static getModuleName(){return"sync-loading"}initialise(){this.element=this.getElement(),this.form=this.element.querySelector("#dpr-sync-loading-form"),this.load()}load(){return d(this,null,function*(){this.form.submit()})}};var M=class extends c{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 V=class extends c{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()})}),this.relativeRangeRadioButtons.forEach(t=>{t.addEventListener("change",()=>{Array.from(this.relativeRangeRadioButtons).every(e=>!e.checked)&&(this.durationValue=null,this.updateInputs(this.durationValue))})})}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,console.log({durationValue:t,durationValue2:this.durationValue}),t||this.durationValue){let s=t||this.durationValue,{startDate:a,endDate:i}=this.calculateDateForDatepicker(s);this.startInput.value=a,this.endInput.value=i}else this.startInput.value=null,this.endInput.value=null;let e=new Event("change");this.startInput.dispatchEvent(e),this.endInput.dispatchEvent(e)}calculateDateForDatepicker(t){let e,s;switch(t){case"none":e="",s="";break;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:e="",s="";break}return{startDate:e?e.format("DD/MM/YYYY").toString():"",endDate:s?s.format("DD/MM/YYYY").toString():""}}};var O=class extends c{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 d(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(o=>{this.addItem(n,o,u=>{this.onOptionClick(u,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 c{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 Y=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 d(this,null,function*(){yield this.checkIfExpired(),this.requestData&&(this.shouldPollExpired(this.requestData)&&(this.expiredInterval=setInterval(()=>d(this,null,function*(){yield this.checkIfExpired()}),"60000")),this.shouldPollStatus(this.requestData)&&(this.pollingInterval=setInterval(()=>d(this,null,function*(){yield this.pollStatus()}),this.POLLING_FREQUENCY)))})}checkIfExpired(){return d(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>d(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 d(this,null,function*(){yield Promise.all(JSON.parse(this.requestData).map(t=>d(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=>d(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return d(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 Q=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 d(this,null,function*(){yield this.checkIsExpired(),this.viewedReportData&&this.shouldPollExpired(this.viewedReportData)&&(this.expiredViewedInterval=setInterval(()=>d(this,null,function*(){yield this.checkIsExpired()}),this.POLLING_FREQUENCY))})}checkIsExpired(){return d(this,null,function*(){yield Promise.all(JSON.parse(this.viewedReportData).map(t=>d(this,null,function*(){if(t.status!=="EXPIRED"){let e=yield this.getExpiredStatus("/dpr/getExpiredStatus/",t,this.csrfToken);e&&e.isExpired&&clearInterval(this.expiredViewedInterval)}})))})}initItemActions(){this.removeActions.forEach(t=>{let e=t.getAttribute("data-execution-id");t.addEventListener("click",s=>d(this,null,function*(){s.preventDefault(),yield this.removeItemFromList(e)}))})}removeItemFromList(t){return d(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 c{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 h({label:i,data:r},n)})}generateChartData(t){let{datasets:e,labels:s}=this.chartParams,{options:a,styling:i,datalabels:r,plugins:n,pluginsOptions:o,toolTipOptions:u,hoverEvent:m}=t;return{type:this.type,data:{labels:s,datasets:this.createDatasets(e,i)},options:y(h(h({responsive:!0,maintainAspectRatio:!1,animation:{duration:0},hover:{animationDuration:0}},a&&a),m&&m),{plugins:y(h(h({legend:{position:"bottom"}},o&&o),r&&{datalabels:r}),{tooltip:h(h({},this.setToolTip()),u&&u)})}),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=>y(h({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 h({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 U=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((J,G)=>J+G,0),o=Math.round((e-a.measureText(n).width)/2),u=s/2;a.fillText(n,o,u),a.save(),a.textBaseline="middle",i=1,a.font=`100 ${i}em GDS Transport`,a.fillStyle=" #505a5f";let m="Total",E=Math.round((e-a.measureText(m).width)/2),k=u+30;a.fillText(m,E,k),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:o}=a.data.datasets[0];return r.forEach((u,m)=>{let E=m%n.length,k=n[E],J=t.mapHexColourToName(k,t),G=a.data.datasets.length===1?`${o[m]}${s}`:"";i.innerHTML+=`
|
|
29
29
|
<li aria-label="${u} ${G}">
|
|
30
30
|
<span class="chart-colour__${J}">${G}</span>
|
|
31
31
|
${u}
|
|
32
32
|
</li>
|
|
33
|
-
`}),e.appendChild(i),e.appendChild(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,parsed:a,dataset:i}=e,{label:r}=i,n=i.data,
|
|
34
|
-
${a.label}`},labels:{title:{font:{weight:"bold",size:16,color:"#FFF"}}}}}};var H=class extends
|
|
33
|
+
`}),e.appendChild(i),e.appendChild(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,parsed:a,dataset:i}=e,{label:r}=i,n=i.data,o=`${a}${t.suffix}`;if(t.isPercentage)o=`${o}`,t.setHoverValue({label:s,value:o,legend:r,ctx:t});else{let u=n.reduce((E,k)=>E+Number(k),0),m=`${(a*100/u).toFixed(2)}%`;o=t.singleDataset?`${o} (${m})`:`${r}: ${o} (${m})`,t.setHoverValue({label:s,value:o,legend:r,ctx:t})}return o}}}}setDataLabels(){let t=this;return{textAlign:"center",color:"#FFF",display:e=>{let{dataset:s,dataIndex:a}=e,i=s.data[a],r=s.data.reduce((o,u)=>o+u,0);return i/r*100>4},formatter:(e,s)=>{let{dataset:a}=s;return t.singleDataset?`${e}${this.suffix}`:`${e}${this.suffix}
|
|
34
|
+
${a.label}`},labels:{title:{font:{weight:"bold",size:16,color:"#FFF"}}}}}};var H=class extends f{static getModuleName(){return"line-chart"}initialise(){this.setupCanvas(),this.settings=this.initSettings(),this.chartData=this.generateChartData(this.settings),this.lastIndex=this.chartData.data.labels.length-1,this.initChart(this.chartData)}initSettings(){return{options:this.setOptions(),toolTipOptions:this.setToolTipOptions(),styling:this.setDatasetStyling()}}setPartialStyle(t){let e;return(this.partialEnd&&t.p1DataIndex===this.lastIndex||this.partialStart&&t.p1DataIndex===1)&&(e=[6,6]),e}setDatasetStyling(){return this.getColourPallette().map(e=>({borderColor:e.hex,backgroundColor:e.hex,pointStyle:"circle",pointRadius:4,pointHoverRadius:10,pointHitRadius:20,datalabels:{display:!1},segment:{borderDash:s=>this.setPartialStyle(s)}}))}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];return t.setHoverValue({label:s,value:r,legend:i,ctx:t}),r}}}}setOptions(){return{scales:{y:{min:0,ticks:{fontSize:12}},x:{ticks:{fontSize:12}}}}}};var W=class extends c{static getModuleName(){return"scorecard"}initialise(){this.scorecard=this.getElement(),this.value=this.scorecard.querySelector(".dpr-scorecard__value"),this.ragStatus=this.scorecard.querySelector(".dpr-scorecard__value-description"),this.initHover()}initHover(){this.value.addEventListener("mouseover",()=>d(this,null,function*(){this.ragStatus.classList.add("dpr-scorecard__value-description--active")})),this.value.addEventListener("mouseout",()=>d(this,null,function*(){this.ragStatus.classList.remove("dpr-scorecard__value-description--active")}))}};function Ge(){let l=new S,t=[O,w,q,N,T,A,C,R,I,x,M,Y,Q,V,D,_,U,H,L,W,P,B,$,j],e=window.dayjs_plugin_customParseFormat;dayjs.extend(e),t.forEach(s=>{document.querySelectorAll(`[data-dpr-module="${s.getModuleName()}"]`).forEach(i=>d(null,null,function*(){try{new s(i,l).initialise()}catch(r){console.log(r)}}))})}export{Ge as initAll};
|
package/dpr/all.scss
CHANGED
|
@@ -716,17 +716,11 @@ ul.dpr-card-group__item__filters-list {
|
|
|
716
716
|
|
|
717
717
|
.dpr-filter-item {
|
|
718
718
|
background-color: none;
|
|
719
|
-
margin-bottom: govuk-spacing(2);
|
|
720
719
|
border-bottom: 1px Solid govuk-colour("mid-grey");
|
|
721
|
-
padding-bottom: govuk-spacing(5);
|
|
722
720
|
padding-top: govuk-spacing(5);
|
|
723
|
-
|
|
724
|
-
.govuk-form-group {
|
|
725
|
-
margin-bottom: govuk-spacing(2);
|
|
726
|
-
}
|
|
727
721
|
|
|
728
722
|
&:last-child {
|
|
729
|
-
border-bottom: none
|
|
723
|
+
border-bottom: none;
|
|
730
724
|
}
|
|
731
725
|
}
|
|
732
726
|
}
|
|
@@ -1111,7 +1105,6 @@ ul.dpr-card-group__item__filters-list {
|
|
|
1111
1105
|
margin-bottom: govuk-spacing(4);
|
|
1112
1106
|
|
|
1113
1107
|
.dpr-interactive-filters-heading {
|
|
1114
|
-
// background-color: govuk-colour('mid-grey');
|
|
1115
1108
|
padding: govuk-spacing(2);
|
|
1116
1109
|
padding-left: govuk-spacing(4);
|
|
1117
1110
|
padding-right: govuk-spacing(4);
|
|
@@ -1210,7 +1203,7 @@ ul.dpr-card-group__item__filters-list {
|
|
|
1210
1203
|
|
|
1211
1204
|
.dpr-selected-filters {
|
|
1212
1205
|
background-color: govuk-colour('light-grey');
|
|
1213
|
-
padding: govuk-spacing(4);
|
|
1206
|
+
padding: govuk-spacing(4);
|
|
1214
1207
|
|
|
1215
1208
|
.interactive-remove-filter-button {
|
|
1216
1209
|
cursor: pointer;
|
|
@@ -1226,9 +1219,10 @@ ul.dpr-card-group__item__filters-list {
|
|
|
1226
1219
|
font-size: 16px;
|
|
1227
1220
|
margin-bottom: govuk-spacing(1);
|
|
1228
1221
|
margin-right: govuk-spacing(2);
|
|
1222
|
+
font-weight: 700;
|
|
1229
1223
|
|
|
1230
|
-
.dpr-selected-
|
|
1231
|
-
font-weight:
|
|
1224
|
+
.dpr-selected-filter__value {
|
|
1225
|
+
font-weight: 100;
|
|
1232
1226
|
}
|
|
1233
1227
|
|
|
1234
1228
|
}
|
|
@@ -1254,7 +1248,7 @@ ul.dpr-card-group__item__filters-list {
|
|
|
1254
1248
|
margin-right: govuk-spacing(1);
|
|
1255
1249
|
}
|
|
1256
1250
|
|
|
1257
|
-
a:not(.interactive-remove-filter-button--disabled):after {
|
|
1251
|
+
a:not(.interactive-remove-filter-button--disabled, .dpr-reset-filters-button):after {
|
|
1258
1252
|
background-image: url(#{$dpr-images-path}icon-tag-remove-cross.svg);
|
|
1259
1253
|
content: "";
|
|
1260
1254
|
display: inline-block;
|
|
@@ -1330,12 +1324,17 @@ ul.dpr-card-group__item__filters-list {
|
|
|
1330
1324
|
margin-bottom: 0;
|
|
1331
1325
|
}
|
|
1332
1326
|
|
|
1327
|
+
.daterange-set-to-minmax__container {
|
|
1328
|
+
margin-bottom: govuk-spacing(6);
|
|
1329
|
+
margin-top: govuk-spacing(3);
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1333
1332
|
.daterange-set-to-minmax {
|
|
1334
|
-
display:
|
|
1333
|
+
display: block;
|
|
1335
1334
|
cursor: pointer;
|
|
1336
1335
|
text-align: left;
|
|
1337
|
-
margin-bottom: govuk-spacing(
|
|
1338
|
-
margin-top: govuk-spacing(
|
|
1336
|
+
margin-bottom: govuk-spacing(1);
|
|
1337
|
+
margin-top: govuk-spacing(0);
|
|
1339
1338
|
color: govuk-colour("blue");
|
|
1340
1339
|
|
|
1341
1340
|
&:hover {
|