(a+(c?r-e:e))%o,y=()=>{p!==m&&(e.lineTo(f,m),e.lineTo(f,p),e.lineTo(f,g))};for(l&&(u=n[v(0)],e.moveTo(u.x,u.y)),d=0;d<=r;++d){if(u=n[v(d)],u.skip)continue;const t=u.x,s=u.y,i=0|t;i===h?(sm&&(m=s),f=(b*f+t)/++b):(y(),e.lineTo(t,s),h=i,b=0,p=m=s),g=s}y()}function So(e){const t=e.options,s=t.borderDash&&t.borderDash.length;return e._decimated||e._loop||t.tension||"monotone"===t.cubicInterpolationMode||t.stepped||s?_o:xo}const Co="function"==typeof Path2D;class ko extends Tn{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>"borderDash"!==e&&"fill"!==e};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){const s=this.options;if((s.tension||"monotone"===s.cubicInterpolationMode)&&!s.stepped&&!this._pointsUpdated){const i=s.spanGaps?this._loop:this._fullLoop;Qs(this._points,s,e,i,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function(e,t){const s=e.points,i=e.options.spanGaps,n=s.length;if(!n)return[];const o=!!e._loop,{start:a,end:r}=function(e,t,s,i){let n=0,o=t-1;if(s&&!i)for(;nn&&e[o%t].skip;)o--;return o%=t,{start:n,end:o}}(s,n,o,i);return function(e,t,s,i){return i&&i.setContext&&s?function(e,t,s,i){const n=e._chart.getContext(),o=ci(e.options),{_datasetIndex:a,options:{spanGaps:r}}=e,l=s.length,c=[];let d=o,u=t[0].start,h=u;function p(e,t,i,n){const o=r?-1:1;if(e!==t){for(e+=l;s[e%l].skip;)e-=o;for(;s[t%l].skip;)t+=o;e%l!==t%l&&(c.push({start:e%l,end:t%l,loop:i,style:n}),d=n,u=t%l)}}for(const e of t){u=r?u:e.start;let t,o=s[u%l];for(h=u+1;h<=e.end;h++){const r=s[h%l];t=ci(i.setContext(_s(n,{type:"segment",p0:o,p1:r,p0DataIndex:(h-1)%l,p1DataIndex:h%l,datasetIndex:a}))),di(t,d)&&p(u,h-1,e.loop,d),o=r,d=t}u"borderDash"!==e};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,t,s){const i=this.getProps(["x","y"],s),{angle:n,distance:o}=ht(i,{x:e,y:t}),{startAngle:a,endAngle:r,innerRadius:l,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],s),u=(this.options.spacing+this.options.borderWidth)/2,h=qe(d,r-a),p=ft(n,a,r)&&a!==r,m=h>=Ge||p,g=vt(o,l+u,c+u);return m&&g}getCenterPoint(e){const{x:t,y:s,startAngle:i,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:r,spacing:l}=this.options,c=(i+n)/2,d=(o+a+l+r)/2;return{x:t+Math.cos(c)*d,y:s+Math.sin(c)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:t,circumference:s}=this,i=(t.offset||0)/4,n=(t.spacing||0)/2,o=t.circular;if(this.pixelMargin="inner"===t.borderAlign?.33:0,this.fullCircles=s>Ge?Math.floor(s/Ge):0,0===s||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*i,Math.sin(a)*i);const r=i*(1-Math.sin(Math.min(Je,s||0)));e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor,function(e,t,s,i,n){const{fullCircles:o,startAngle:a,circumference:r}=t;let l=t.endAngle;if(o){bo(e,t,s,i,l,n);for(let t=0;tn?(c=n/l,e.arc(o,a,l,s+c,i-c,!0)):e.arc(o,a,n,s+et,i-et),e.closePath(),e.clip()}(e,t,g),l.selfJoin&&g-a>=Je&&0===p&&"miter"!==d&&function(e,t,s){const{startAngle:i,x:n,y:o,outerRadius:a,innerRadius:r,options:l}=t,{borderWidth:c,borderJoinStyle:d}=l,u=Math.min(c/a,gt(i-s));if(e.beginPath(),e.arc(n,o,a-c/2,i+u/2,s-u/2),r>0){const t=Math.min(c/r,gt(i-s));e.arc(n,o,r+c/2,s-t/2,i+t/2,!0)}else{const t=Math.min(c/2,a*gt(i-s));if("round"===d)e.arc(n,o,t,s-Je/2,i+Je/2,!0);else if("bevel"===d){const a=2*t*t,r=-a*Math.cos(s+Je/2)+n,l=-a*Math.sin(s+Je/2)+o,c=a*Math.cos(i+Je/2)+n,d=a*Math.sin(i+Je/2)+o;e.lineTo(r,l),e.lineTo(c,d)}}e.closePath(),e.moveTo(0,0),e.rect(0,0,e.canvas.width,e.canvas.height),e.clip("evenodd")}(e,t,g),o||(bo(e,t,s,i,g,n),e.stroke())}(e,this,r,n,o),e.restore()}},BarElement:class extends Tn{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,e&&Object.assign(this,e)}draw(e){const{inflateAmount:t,options:{borderColor:s,backgroundColor:i}}=this,{inner:n,outer:o}=function(e){const t=Eo(e),s=t.right-t.left,i=t.bottom-t.top,n=function(e,t,s){const i=e.options.borderWidth,n=e.borderSkipped,o=fs(i);return{t:To(n.top,o.top,0,s),r:To(n.right,o.right,0,t),b:To(n.bottom,o.bottom,0,s),l:To(n.left,o.left,0,t)}}(e,s/2,i/2),o=function(e,t,s){const{enableBorderRadius:i}=e.getProps(["enableBorderRadius"]),n=e.options.borderRadius,o=bs(n),a=Math.min(t,s),r=e.borderSkipped,l=i||Le(n);return{topLeft:To(!l||r.top||r.left,o.topLeft,0,a),topRight:To(!l||r.top||r.right,o.topRight,0,a),bottomLeft:To(!l||r.bottom||r.left,o.bottomLeft,0,a),bottomRight:To(!l||r.bottom||r.right,o.bottomRight,0,a)}}(e,s/2,i/2);return{outer:{x:t.left,y:t.top,w:s,h:i,radius:o},inner:{x:t.left+n.l,y:t.top+n.t,w:s-n.l-n.r,h:i-n.t-n.b,radius:{topLeft:Math.max(0,o.topLeft-Math.max(n.t,n.l)),topRight:Math.max(0,o.topRight-Math.max(n.t,n.r)),bottomLeft:Math.max(0,o.bottomLeft-Math.max(n.b,n.l)),bottomRight:Math.max(0,o.bottomRight-Math.max(n.b,n.r))}}}}(this),a=(r=o.radius).topLeft||r.topRight||r.bottomLeft||r.bottomRight?ds:Io;var r;e.save(),o.w===n.w&&o.h===n.h||(e.beginPath(),a(e,Do(o,t,n)),e.clip(),a(e,Do(n,-t,o)),e.fillStyle=s,e.fill("evenodd")),e.beginPath(),a(e,Do(n,t)),e.fillStyle=i,e.fill(),e.restore()}inRange(e,t,s){return Lo(this,e,t,s)}inXRange(e,t){return Lo(this,e,null,t)}inYRange(e,t){return Lo(this,null,e,t)}getCenterPoint(e){const{x:t,y:s,base:i,horizontal:n}=this.getProps(["x","y","base","horizontal"],e);return{x:n?(t+i)/2:t,y:n?s:(s+i)/2}}getRange(e){return"x"===e?this.width/2:this.height/2}},LineElement:ko,PointElement:class extends Tn{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,t,s){const i=this.options,{x:n,y:o}=this.getProps(["x","y"],s);return Math.pow(e-n,2)+Math.pow(t-o,2)e.replace("rgb(","rgba(").replace(")",", 0.5)"));function Mo(e){return Bo[e%Bo.length]}function Oo(e){return Po[e%Po.length]}function zo(e){let t;for(t in e)if(e[t].borderColor||e[t].backgroundColor)return!0;return!1}var $o={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(e,t,s){if(!s.enabled)return;const{data:{datasets:i},options:n}=e.config,{elements:o}=n,a=zo(i)||(r=n)&&(r.borderColor||r.backgroundColor)||o&&zo(o)||"rgba(0,0,0,0.1)"!==Jt.borderColor||"rgba(0,0,0,0.1)"!==Jt.backgroundColor;var r;if(!s.forceOverride&&a)return;const l=function(e){let t=0;return(s,i)=>{const n=e.getDatasetMeta(i).controller;n instanceof Fi?t=function(e,t){return e.backgroundColor=e.data.map(()=>Mo(t++)),t}(s,t):n instanceof Hi?t=function(e,t){return e.backgroundColor=e.data.map(()=>Oo(t++)),t}(s,t):n&&(t=function(e,t){return e.borderColor=Mo(t),e.backgroundColor=Oo(t),++t}(s,t))}}(e);i.forEach(l)}};function Fo(e){if(e._decimated){const t=e._data;delete e._decimated,delete e._data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,writable:!0,value:t})}}function Ho(e){e.data.datasets.forEach(e=>{Fo(e)})}var Qo={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(e,t,s)=>{if(!s.enabled)return void Ho(e);const i=e.width;e.data.datasets.forEach((t,n)=>{const{_data:o,indexAxis:a}=t,r=e.getDatasetMeta(n),l=o||t.data;if("y"===ws([a,e.options.indexAxis]))return;if(!r.controller.supportsDecimation)return;const c=e.scales[r.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(e.options.parsing)return;let d,{start:u,count:h}=function(e,t){const s=t.length;let i,n=0;const{iScale:o}=e,{min:a,max:r,minDefined:l,maxDefined:c}=o.getUserBounds();return l&&(n=bt(wt(t,o.axis,a).lo,0,s-1)),i=c?bt(wt(t,o.axis,r).hi+1,n,s)-n:s-n,{start:n,count:i}}(r,l);if(h<=(s.threshold||4*i))Fo(t);else{switch(Ee(o)&&(t._data=l,delete t.data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(e){this._data=e}})),s.algorithm){case"lttb":d=function(e,t,s,i,n){const o=n.samples||i;if(o>=s)return e.slice(t,t+s);const a=[],r=(s-2)/(o-2);let l=0;const c=t+s-1;let d,u,h,p,m,g=t;for(a[l++]=e[g],d=0;dh&&(h=p,u=e[i],m=i);a[l++]=u,g=m}return a[l++]=e[c],a}(l,u,h,i,s);break;case"min-max":d=function(e,t,s,i){let n,o,a,r,l,c,d,u,h,p,m=0,g=0;const f=[],b=t+s-1,v=e[t].x,y=e[b].x-v;for(n=t;np&&(p=r,d=n),m=(g*m+o.x)/++g;else{const s=n-1;if(!Ee(c)&&!Ee(d)){const t=Math.min(c,d),i=Math.max(c,d);t!==u&&t!==s&&f.push({...e[t],x:m}),i!==u&&i!==s&&f.push({...e[i],x:m})}n>0&&s!==u&&f.push(e[s]),f.push(o),l=t,g=0,h=p=r,c=d=u=n}}return f}(l,u,h,i);break;default:throw new Error(`Unsupported decimation algorithm '${s.algorithm}'`)}t._decimated=d}})},destroy(e){Ho(e)}};function No(e,t,s,i){if(i)return;let n=t[e],o=s[e];return"angle"===e&&(n=gt(n),o=gt(o)),{property:e,start:n,end:o}}function Ro(e,t,s){for(;t>e;t--){const e=s[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function Wo(e,t,s,i){return e&&t?i(e[s],t[s]):e?e[s]:t?t[s]:0}function jo(e,t){let s=[],i=!1;return Te(e)?(i=!0,s=e):s=function(e,t){const{x:s=null,y:i=null}=e||{},n=t.points,o=[];return t.segments.forEach(({start:e,end:t})=>{t=Ro(e,t,n);const a=n[e],r=n[t];null!==i?(o.push({x:a.x,y:i}),o.push({x:r.x,y:i})):null!==s&&(o.push({x:s,y:a.y}),o.push({x:s,y:r.y}))}),o}(e,t),s.length?new ko({points:s,options:{tension:0},_loop:i,_fullLoop:i}):null}function Vo(e){return e&&!1!==e.fill}function Uo(e,t,s){let i=e[t].fill;const n=[t];let o;if(!s)return i;for(;!1!==i&&-1===n.indexOf(i);){if(!Ie(i))return i;if(o=e[i],!o)return!1;if(o.visible)return i;n.push(i),i=o.fill}return!1}function Xo(e,t,s){const i=function(e){const t=e.options,s=t.fill;let i=qe(s&&s.target,s);return void 0===i&&(i=!!t.backgroundColor),!1!==i&&null!==i&&(!0===i?"origin":i)}(e);if(Le(i))return!isNaN(i.value)&&i;let n=parseFloat(i);return Ie(n)&&Math.floor(n)===n?function(e,t,s,i){return"-"!==e&&"+"!==e||(s=t+s),!(s===t||s<0||s>=i)&&s}(i[0],t,n,s):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function Jo(e,t,s){const i=[];for(let n=0;n=0;--t){const s=n[t].$filler;s&&(s.line.updateControlPoints(o,s.axis),i&&s.fill&&Ko(e.ctx,s,o))}},beforeDatasetsDraw(e,t,s){if("beforeDatasetsDraw"!==s.drawTime)return;const i=e.getSortedVisibleDatasetMetas();for(let t=i.length-1;t>=0;--t){const s=i[t].$filler;Vo(s)&&Ko(e.ctx,s,e.chartArea)}},beforeDatasetDraw(e,t,s){const i=t.meta.$filler;Vo(i)&&"beforeDatasetDraw"===s.drawTime&&Ko(e.ctx,i,e.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const oa=(e,t)=>{let{boxHeight:s=t,boxWidth:i=t}=e;return e.usePointStyle&&(s=Math.min(s,t),i=e.pointStyleWidth||Math.min(i,t)),{boxWidth:i,boxHeight:s,itemHeight:Math.max(t,s)}};class aa extends Tn{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,s){this.maxWidth=e,this.maxHeight=t,this._margins=s,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let t=Pe(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter(t=>e.filter(t,this.chart.data))),e.sort&&(t=t.sort((t,s)=>e.sort(t,s,this.chart.data))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){const{options:e,ctx:t}=this;if(!e.display)return void(this.width=this.height=0);const s=e.labels,i=ys(s.font),n=i.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=oa(s,n);let l,c;t.font=i.string,this.isHorizontal()?(l=this.maxWidth,c=this._fitRows(o,n,a,r)+10):(c=this.maxHeight,l=this._fitCols(o,i,a,r)+10),this.width=Math.min(l,e.maxWidth||this.maxWidth),this.height=Math.min(c,e.maxHeight||this.maxHeight)}_fitRows(e,t,s,i){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],c=i+a;let d=e;n.textAlign="left",n.textBaseline="middle";let u=-1,h=-c;return this.legendItems.forEach((e,p)=>{const m=s+t/2+n.measureText(e.text).width;(0===p||l[l.length-1]+m+2*a>o)&&(d+=c,l[l.length-(p>0?0:1)]=0,h+=c,u++),r[p]={left:0,top:h,row:u,width:m,height:i},l[l.length-1]+=m+a}),d}_fitCols(e,t,s,i){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],c=o-e;let d=a,u=0,h=0,p=0,m=0;return this.legendItems.forEach((e,o)=>{const{itemWidth:g,itemHeight:f}=function(e,t,s,i,n){const o=function(e,t,s,i){let n=e.text;return n&&"string"!=typeof n&&(n=n.reduce((e,t)=>e.length>t.length?e:t)),t+s.size/2+i.measureText(n).width}(i,e,t,s),a=function(e,t,s){let i=e;return"string"!=typeof t.text&&(i=ra(t,s)),i}(n,i,t.lineHeight);return{itemWidth:o,itemHeight:a}}(s,t,n,e,i);o>0&&h+f+2*a>c&&(d+=u+a,l.push({width:u,height:h}),p+=u+a,m++,u=h=0),r[o]={left:p,top:h,col:m,width:g,height:f},u=Math.max(u,g),h+=f+a}),d+=u,l.push({width:u,height:h}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:s,labels:{padding:i},rtl:n}}=this,o=si(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=Tt(s,this.left+i,this.right-this.lineWidths[n]);for(const r of t)n!==r.row&&(n=r.row,a=Tt(s,this.left+i,this.right-this.lineWidths[n])),r.top+=this.top+e+i,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+i}else{let n=0,a=Tt(s,this.top+e+i,this.bottom-this.columnSizes[n].height);for(const r of t)r.col!==n&&(n=r.col,a=Tt(s,this.top+e+i,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+i,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+i}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const e=this.ctx;is(e,this),this._draw(),ns(e)}}_draw(){const{options:e,columnSizes:t,lineWidths:s,ctx:i}=this,{align:n,labels:o}=e,a=Jt.color,r=si(e.rtl,this.left,this.width),l=ys(o.font),{padding:c}=o,d=l.size,u=d/2;let h;this.drawTitle(),i.textAlign=r.textAlign("left"),i.textBaseline="middle",i.lineWidth=.5,i.font=l.string;const{boxWidth:p,boxHeight:m,itemHeight:g}=oa(o,d),f=this.isHorizontal(),b=this._computeTitleHeight();h=f?{x:Tt(n,this.left+c,this.right-s[0]),y:this.top+c+b,line:0}:{x:this.left+c,y:Tt(n,this.top+b+c,this.bottom-t[0].height),line:0},ii(this.ctx,e.textDirection);const v=g+c;this.legendItems.forEach((y,w)=>{i.strokeStyle=y.fontColor,i.fillStyle=y.fontColor;const _=i.measureText(y.text).width,x=r.textAlign(y.textAlign||(y.textAlign=o.textAlign)),S=p+u+_;let C=h.x,k=h.y;if(r.setWidth(this.width),f?w>0&&C+S+c>this.right&&(k=h.y+=v,h.line++,C=h.x=Tt(n,this.left+c,this.right-s[h.line])):w>0&&k+v>this.bottom&&(C=h.x=C+t[h.line].width+c,h.line++,k=h.y=Tt(n,this.top+b+c,this.bottom-t[h.line].height)),function(e,t,s){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;i.save();const n=qe(s.lineWidth,1);if(i.fillStyle=qe(s.fillStyle,a),i.lineCap=qe(s.lineCap,"butt"),i.lineDashOffset=qe(s.lineDashOffset,0),i.lineJoin=qe(s.lineJoin,"miter"),i.lineWidth=n,i.strokeStyle=qe(s.strokeStyle,a),i.setLineDash(qe(s.lineDash,[])),o.usePointStyle){const a={radius:m*Math.SQRT2/2,pointStyle:s.pointStyle,rotation:s.rotation,borderWidth:n},l=r.xPlus(e,p/2);ts(i,a,l,t+u,o.pointStyleWidth&&p)}else{const o=t+Math.max((d-m)/2,0),a=r.leftForLtr(e,p),l=bs(s.borderRadius);i.beginPath(),Object.values(l).some(e=>0!==e)?ds(i,{x:a,y:o,w:p,h:m,radius:l}):i.rect(a,o,p,m),i.fill(),0!==n&&i.stroke()}i.restore()}(r.x(C),k,y),C=((e,t,s,i)=>e===(i?"left":"right")?s:"center"===e?(t+s)/2:t)(x,C+p+u,f?C+S:this.right,e.rtl),function(e,t,s){cs(i,s.text,e,t+g/2,l,{strikethrough:s.hidden,textAlign:r.textAlign(s.textAlign)})}(r.x(C),k,y),f)h.x+=S+c;else if("string"!=typeof y.text){const e=l.lineHeight;h.y+=ra(y,e)+c}else h.y+=v}),ni(this.ctx,e.textDirection)}drawTitle(){const e=this.options,t=e.title,s=ys(t.font),i=vs(t.padding);if(!t.display)return;const n=si(e.rtl,this.left,this.width),o=this.ctx,a=t.position,r=s.size/2,l=i.top+r;let c,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),c=this.top+l,d=Tt(e.align,d,this.right-u);else{const t=this.columnSizes.reduce((e,t)=>Math.max(e,t.height),0);c=l+Tt(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}const h=Tt(a,d,d+u);o.textAlign=n.textAlign(Et(a)),o.textBaseline="middle",o.strokeStyle=t.color,o.fillStyle=t.color,o.font=s.string,cs(o,t.text,h,c,s)}_computeTitleHeight(){const e=this.options.title,t=ys(e.font),s=vs(e.padding);return e.display?t.lineHeight+s.height:0}_getLegendItemAt(e,t){let s,i,n;if(vt(e,this.left,this.right)&&vt(t,this.top,this.bottom))for(n=this.legendHitBoxes,s=0;se.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:s,pointStyle:i,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=e.legend.options;return e._getSortedDatasetMetas().map(e=>{const l=e.controller.getStyle(s?0:void 0),c=vs(l.borderWidth);return{text:t[e.index].label,fillStyle:l.backgroundColor,fontColor:o,hidden:!e.visible,lineCap:l.borderCapStyle,lineDash:l.borderDash,lineDashOffset:l.borderDashOffset,lineJoin:l.borderJoinStyle,lineWidth:(c.width+c.height)/4,strokeStyle:l.borderColor,pointStyle:i||l.pointStyle,rotation:l.rotation,textAlign:n||l.textAlign,borderRadius:a&&(r||l.borderRadius),datasetIndex:e.index}},this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class ca extends Tn{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t){const s=this.options;if(this.left=0,this.top=0,!s.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=e,this.height=this.bottom=t;const i=Te(s.text)?s.text.length:1;this._padding=vs(s.padding);const n=i*ys(s.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=n:this.width=n}isHorizontal(){const e=this.options.position;return"top"===e||"bottom"===e}_drawArgs(e){const{top:t,left:s,bottom:i,right:n,options:o}=this,a=o.align;let r,l,c,d=0;return this.isHorizontal()?(l=Tt(a,s,n),c=t+e,r=n-s):("left"===o.position?(l=s+e,c=Tt(a,i,t),d=-.5*Je):(l=n-e,c=Tt(a,t,i),d=.5*Je),r=i-t),{titleX:l,titleY:c,maxWidth:r,rotation:d}}draw(){const e=this.ctx,t=this.options;if(!t.display)return;const s=ys(t.font),i=s.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(i);cs(e,t.text,0,0,s,{color:t.color,maxWidth:a,rotation:r,textAlign:Et(t.align),textBaseline:"middle",translation:[n,o]})}}var da={id:"title",_element:ca,start(e,t,s){!function(e,t){const s=new ca({ctx:e.ctx,options:t,chart:e});cn.configure(e,s,t),cn.addBox(e,s),e.titleBlock=s}(e,s)},stop(e){const t=e.titleBlock;cn.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,s){const i=e.titleBlock;cn.configure(e,i,s),i.options=s},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const ua=new WeakMap;var ha={id:"subtitle",start(e,t,s){const i=new ca({ctx:e.ctx,options:s,chart:e});cn.configure(e,i,s),cn.addBox(e,i),ua.set(e,i)},stop(e){cn.removeBox(e,ua.get(e)),ua.delete(e)},beforeUpdate(e,t,s){const i=ua.get(e);cn.configure(e,i,s),i.options=s},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const pa={average(e){if(!e.length)return!1;let t,s,i=new Set,n=0,o=0;for(t=0,s=e.length;te+t)/i.size,y:n/o}},nearest(e,t){if(!e.length)return!1;let s,i,n,o=t.x,a=t.y,r=Number.POSITIVE_INFINITY;for(s=0,i=e.length;s-1?e.split("\n"):e}function fa(e,t){const{element:s,datasetIndex:i,index:n}=t,o=e.getDatasetMeta(i).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:e,label:a,parsed:o.getParsed(n),raw:e.data.datasets[i].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:i,element:s}}function ba(e,t){const s=e.chart.ctx,{body:i,footer:n,title:o}=e,{boxWidth:a,boxHeight:r}=t,l=ys(t.bodyFont),c=ys(t.titleFont),d=ys(t.footerFont),u=o.length,h=n.length,p=i.length,m=vs(t.padding);let g=m.height,f=0,b=i.reduce((e,t)=>e+t.before.length+t.lines.length+t.after.length,0);b+=e.beforeBody.length+e.afterBody.length,u&&(g+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),b&&(g+=p*(t.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(b-p)*l.lineHeight+(b-1)*t.bodySpacing),h&&(g+=t.footerMarginTop+h*d.lineHeight+(h-1)*t.footerSpacing);let v=0;const y=function(e){f=Math.max(f,s.measureText(e).width+v)};return s.save(),s.font=c.string,Me(e.title,y),s.font=l.string,Me(e.beforeBody.concat(e.afterBody),y),v=t.displayColors?a+2+t.boxPadding:0,Me(i,e=>{Me(e.before,y),Me(e.lines,y),Me(e.after,y)}),v=0,s.font=d.string,Me(e.footer,y),s.restore(),f+=m.width,{width:f,height:g}}function va(e,t,s,i){const{x:n,width:o}=s,{width:a,chartArea:{left:r,right:l}}=e;let c="center";return"center"===i?c=n<=(r+l)/2?"left":"right":n<=o/2?c="left":n>=a-o/2&&(c="right"),function(e,t,s,i){const{x:n,width:o}=i,a=s.caretSize+s.caretPadding;return"left"===e&&n+o+a>t.width||"right"===e&&n-o-a<0||void 0}(c,e,t,s)&&(c="center"),c}function ya(e,t,s){const i=s.yAlign||t.yAlign||function(e,t){const{y:s,height:i}=t;return se.height-i/2?"bottom":"center"}(e,s);return{xAlign:s.xAlign||t.xAlign||va(e,t,s,i),yAlign:i}}function wa(e,t,s,i){const{caretSize:n,caretPadding:o,cornerRadius:a}=e,{xAlign:r,yAlign:l}=s,c=n+o,{topLeft:d,topRight:u,bottomLeft:h,bottomRight:p}=bs(a);let m=function(e,t){let{x:s,width:i}=e;return"right"===t?s-=i:"center"===t&&(s-=i/2),s}(t,r);const g=function(e,t,s){let{y:i,height:n}=e;return"top"===t?i+=s:i-="bottom"===t?n+s:n/2,i}(t,l,c);return"center"===l?"left"===r?m+=c:"right"===r&&(m-=c):"left"===r?m-=Math.max(d,h)+n:"right"===r&&(m+=Math.max(u,p)+n),{x:bt(m,0,i.width-t.width),y:bt(g,0,i.height-t.height)}}function _a(e,t,s){const i=vs(s.padding);return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-i.right:e.x+i.left}function xa(e){return ma([],ga(e))}function Sa(e,t){const s=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return s?e.override(s):e}const Ca={beforeTitle:ke,title(e){if(e.length>0){const t=e[0],s=t.chart.data.labels,i=s?s.length:0;if(this&&this.options&&"dataset"===this.options.mode)return t.dataset.label||"";if(t.label)return t.label;if(i>0&&t.dataIndex{const t={before:[],lines:[],after:[]},n=Sa(s,e);ma(t.before,ga(ka(n,"beforeLabel",this,e))),ma(t.lines,ka(n,"label",this,e)),ma(t.after,ga(ka(n,"afterLabel",this,e))),i.push(t)}),i}getAfterBody(e,t){return xa(ka(t.callbacks,"afterBody",this,e))}getFooter(e,t){const{callbacks:s}=t,i=ka(s,"beforeFooter",this,e),n=ka(s,"footer",this,e),o=ka(s,"afterFooter",this,e);let a=[];return a=ma(a,ga(i)),a=ma(a,ga(n)),a=ma(a,ga(o)),a}_createItems(e){const t=this._active,s=this.chart.data,i=[],n=[],o=[];let a,r,l=[];for(a=0,r=t.length;ae.filter(t,i,n,s))),e.itemSort&&(l=l.sort((t,i)=>e.itemSort(t,i,s))),Me(l,t=>{const s=Sa(e.callbacks,t);i.push(ka(s,"labelColor",this,t)),n.push(ka(s,"labelPointStyle",this,t)),o.push(ka(s,"labelTextColor",this,t))}),this.labelColors=i,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(e,t){const s=this.options.setContext(this.getContext()),i=this._active;let n,o=[];if(i.length){const e=pa[s.position].call(this,i,this._eventPosition);o=this._createItems(s),this.title=this.getTitle(o,s),this.beforeBody=this.getBeforeBody(o,s),this.body=this.getBody(o,s),this.afterBody=this.getAfterBody(o,s),this.footer=this.getFooter(o,s);const t=this._size=ba(this,s),a=Object.assign({},e,t),r=ya(this.chart,s,a),l=wa(s,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),e&&s.external&&s.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,s,i){const n=this.getCaretPosition(e,s,i);t.lineTo(n.x1,n.y1),t.lineTo(n.x2,n.y2),t.lineTo(n.x3,n.y3)}getCaretPosition(e,t,s){const{xAlign:i,yAlign:n}=this,{caretSize:o,cornerRadius:a}=s,{topLeft:r,topRight:l,bottomLeft:c,bottomRight:d}=bs(a),{x:u,y:h}=e,{width:p,height:m}=t;let g,f,b,v,y,w;return"center"===n?(y=h+m/2,"left"===i?(g=u,f=g-o,v=y+o,w=y-o):(g=u+p,f=g+o,v=y-o,w=y+o),b=g):(f="left"===i?u+Math.max(r,c)+o:"right"===i?u+p-Math.max(l,d)-o:this.caretX,"top"===n?(v=h,y=v-o,g=f-o,b=f+o):(v=h+m,y=v+o,g=f+o,b=f-o),w=v),{x1:g,x2:f,x3:b,y1:v,y2:y,y3:w}}drawTitle(e,t,s){const i=this.title,n=i.length;let o,a,r;if(n){const l=si(s.rtl,this.x,this.width);for(e.x=_a(this,s.titleAlign,s),t.textAlign=l.textAlign(s.titleAlign),t.textBaseline="middle",o=ys(s.titleFont),a=s.titleSpacing,t.fillStyle=s.titleColor,t.font=o.string,r=0;r0!==e)?(e.beginPath(),e.fillStyle=n.multiKeyBackground,ds(e,{x:t,y:p,w:l,h:r,radius:a}),e.fill(),e.stroke(),e.fillStyle=o.backgroundColor,e.beginPath(),ds(e,{x:s,y:p+1,w:l-2,h:r-2,radius:a}),e.fill()):(e.fillStyle=n.multiKeyBackground,e.fillRect(t,p,l,r),e.strokeRect(t,p,l,r),e.fillStyle=o.backgroundColor,e.fillRect(s,p+1,l-2,r-2))}e.fillStyle=this.labelTextColors[s]}drawBody(e,t,s){const{body:i}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:c}=s,d=ys(s.bodyFont);let u=d.lineHeight,h=0;const p=si(s.rtl,this.x,this.width),m=function(s){t.fillText(s,p.x(e.x+h),e.y+u/2),e.y+=u+n},g=p.textAlign(o);let f,b,v,y,w,_,x;for(t.textAlign=o,t.textBaseline="middle",t.font=d.string,e.x=_a(this,g,s),t.fillStyle=s.bodyColor,Me(this.beforeBody,m),h=a&&"right"!==g?"center"===o?l/2+c:l+2+c:0,y=0,_=i.length;y<_;++y){for(f=i[y],b=this.labelTextColors[y],t.fillStyle=b,Me(f.before,m),v=f.lines,a&&v.length&&(this._drawColorBox(t,e,y,p,s),u=Math.max(d.lineHeight,r)),w=0,x=v.length;w0&&t.stroke()}_updateAnimationTarget(e){const t=this.chart,s=this.$animations,i=s&&s.x,n=s&&s.y;if(i||n){const s=pa[e.position].call(this,this._active,this._eventPosition);if(!s)return;const o=this._size=ba(this,e),a=Object.assign({},s,this._size),r=ya(t,e,a),l=wa(e,a,r,t);i._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=s.x,this.caretY=s.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(e){const t=this.options.setContext(this.getContext());let s=this.opacity;if(!s)return;this._updateAnimationTarget(t);const i={width:this.width,height:this.height},n={x:this.x,y:this.y};s=Math.abs(s)<.001?0:s;const o=vs(t.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&a&&(e.save(),e.globalAlpha=s,this.drawBackground(n,e,i,t),ii(e,t.textDirection),n.y+=o.top,this.drawTitle(n,e,t),this.drawBody(n,e,t),this.drawFooter(n,e,t),ni(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){const s=this._active,i=e.map(({datasetIndex:e,index:t})=>{const s=this.chart.getDatasetMeta(e);if(!s)throw new Error("Cannot find a dataset at index "+e);return{datasetIndex:e,element:s.data[t],index:t}}),n=!Oe(s,i),o=this._positionChanged(i,t);(n||o)&&(this._active=i,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,s=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const i=this.options,n=this._active||[],o=this._getActiveElements(e,n,t,s),a=this._positionChanged(o,e),r=t||!Oe(o,n)||a;return r&&(this._active=o,(i.enabled||i.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),r}_getActiveElements(e,t,s,i){const n=this.options;if("mouseout"===e.type)return[];if(!i)return t.filter(e=>this.chart.data.datasets[e.datasetIndex]&&void 0!==this.chart.getDatasetMeta(e.datasetIndex).controller.getParsed(e.index));const o=this.chart.getElementsAtEventForMode(e,n.mode,n,s);return n.reverse&&o.reverse(),o}_positionChanged(e,t){const{caretX:s,caretY:i,options:n}=this,o=pa[n.position].call(this,e,t);return!1!==o&&(s!==o.x||i!==o.y)}}var Ea={id:"tooltip",_element:Aa,positioners:pa,afterInit(e,t,s){s&&(e.tooltip=new Aa({chart:e,options:s}))},beforeUpdate(e,t,s){e.tooltip&&e.tooltip.initialize(s)},reset(e,t,s){e.tooltip&&e.tooltip.initialize(s)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const s={tooltip:t};if(!1===e.notifyPlugins("beforeTooltipDraw",{...s,cancelable:!0}))return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",s)}},afterEvent(e,t){if(e.tooltip){const s=t.replay;e.tooltip.handleEvent(t.event,s,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:Ca},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:e=>"filter"!==e&&"itemSort"!==e&&"external"!==e,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},Ta=Object.freeze({__proto__:null,Colors:$o,Decimation:Qo,Filler:na,Legend:la,SubTitle:ha,Title:da,Tooltip:Ea});function La(e){const t=this.getLabels();return e>=0&&ei=t?i:e,a=e=>n=s?n:e;if(e){const e=nt(i),t=nt(n);e<0&&t<0?a(0):e>0&&t>0&&o(0)}if(i===n){let t=0===n?1:Math.abs(.05*n);a(n+t),e||o(i-t)}this.min=i,this.max=n}getTickLimit(){const e=this.options.ticks;let t,{maxTicksLimit:s,stepSize:i}=e;return i?(t=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,t>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${t} ticks. Limiting to 1000.`),t=1e3)):(t=this.computeTickLimit(),s=s||11),s&&(t=Math.min(s,t)),t}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,t=e.ticks;let s=this.getTickLimit();s=Math.max(2,s);const i=function(e,t){const s=[],{bounds:i,step:n,min:o,max:a,precision:r,count:l,maxTicks:c,maxDigits:d,includeBounds:u}=e,h=n||1,p=c-1,{min:m,max:g}=t,f=!Ee(o),b=!Ee(a),v=!Ee(l),y=(g-m)/(d+1);let w,_,x,S,C=at((g-m)/p/h)*h;if(C<1e-14&&!f&&!b)return[{value:m},{value:g}];S=Math.ceil(g/C)-Math.floor(m/C),S>p&&(C=at(S*C/p/h)*h),Ee(r)||(w=Math.pow(10,r),C=Math.ceil(C*w)/w),"ticks"===i?(_=Math.floor(m/C)*C,x=Math.ceil(g/C)*C):(_=m,x=g),f&&b&&n&&function(e,t){const s=Math.round(e);return s-t<=e&&s+t>=e}((a-o)/n,C/1e3)?(S=Math.round(Math.min((a-o)/C,c)),C=(a-o)/S,_=o,x=a):v?(_=f?o:_,x=b?a:x,S=l-1,C=(x-_)/S):(S=(x-_)/C,S=ot(S,Math.round(S),C/1e3)?Math.round(S):Math.ceil(S));const k=Math.max(ut(C),ut(_));w=Math.pow(10,Ee(r)?k:r),_=Math.round(_*w)/w,x=Math.round(x*w)/w;let A=0;for(f&&(u&&_!==o?(s.push({value:o}),_a)break;s.push({value:e})}return b&&u&&x!==a?s.length&&ot(s[s.length-1].value,a,Ia(a,y,e))?s[s.length-1].value=a:s.push({value:a}):b&&x!==a||s.push({value:x}),s}({maxTicks:s,bounds:e.bounds,min:e.min,max:e.max,precision:t.precision,step:t.stepSize,count:t.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:t.minRotation||0,includeBounds:!1!==t.includeBounds},this._range||this);return"ticks"===e.bounds&<(i,this,"value"),e.reverse?(i.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),i}configure(){const e=this.ticks;let t=this.min,s=this.max;if(super.configure(),this.options.offset&&e.length){const i=(s-t)/Math.max(e.length-1,1)/2;t-=i,s+=i}this._startValue=t,this._endValue=s,this._valueRange=s-t}getLabelForValue(e){return Qt(e,this.chart.options.locale,this.options.ticks.format)}}class qa extends Da{static id="linear";static defaults={ticks:{callback:Rt.formatters.numeric}};determineDataLimits(){const{min:e,max:t}=this.getMinMax(!0);this.min=Ie(e)?e:0,this.max=Ie(t)?t:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),t=e?this.width:this.height,s=ct(this.options.ticks.minRotation),i=(e?Math.sin(s):Math.cos(s))||.001,n=this._resolveTickFontOptions(0);return Math.ceil(t/Math.min(40,n.lineHeight/i))}getPixelForValue(e){return null===e?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const Ba=e=>Math.floor(it(e)),Pa=(e,t)=>Math.pow(10,Ba(e)+t);function Ma(e){return 1===e/Math.pow(10,Ba(e))}function Oa(e,t,s){const i=Math.pow(10,s),n=Math.floor(e/i);return Math.ceil(t/i)-n}class za extends zn{static id="logarithmic";static defaults={ticks:{callback:Rt.formatters.logarithmic,major:{enabled:!0}}};constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,t){const s=Da.prototype.parse.apply(this,[e,t]);if(0!==s)return Ie(s)&&s>0?s:null;this._zero=!0}determineDataLimits(){const{min:e,max:t}=this.getMinMax(!0);this.min=Ie(e)?Math.max(0,e):null,this.max=Ie(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!Ie(this._userMin)&&(this.min=e===Pa(this.min,0)?Pa(this.min,-1):Pa(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:e,maxDefined:t}=this.getUserBounds();let s=this.min,i=this.max;const n=t=>s=e?s:t,o=e=>i=t?i:e;s===i&&(s<=0?(n(1),o(10)):(n(Pa(s,-1)),o(Pa(i,1)))),s<=0&&n(Pa(i,-1)),i<=0&&o(Pa(s,1)),this.min=s,this.max=i}buildTicks(){const e=this.options,t=function(e,{min:t,max:s}){t=De(e.min,t);const i=[],n=Ba(t);let o=function(e,t){let s=Ba(t-e);for(;Oa(e,t,s)>10;)s++;for(;Oa(e,t,s)<10;)s--;return Math.min(s,Ba(e))}(t,s),a=o<0?Math.pow(10,Math.abs(o)):1;const r=Math.pow(10,o),l=n>o?Math.pow(10,n):0,c=Math.round((t-l)*a)/a,d=Math.floor((t-l)/r/10)*r*10;let u=Math.floor((c-d)/Math.pow(10,o)),h=De(e.min,Math.round((l+d+u*Math.pow(10,o))*a)/a);for(;h=10?u=u<15?15:20:u++,u>=20&&(o++,u=2,a=o>=0?1:a),h=Math.round((l+d+u*Math.pow(10,o))*a)/a;const p=De(e.max,h);return i.push({value:p,major:Ma(p),significand:u}),i}({min:this._userMin,max:this._userMax},this);return"ticks"===e.bounds&<(t,this,"value"),e.reverse?(t.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),t}getLabelForValue(e){return void 0===e?"0":Qt(e,this.chart.options.locale,this.options.ticks.format)}configure(){const e=this.min;super.configure(),this._startValue=it(e),this._valueRange=it(this.max)-it(e)}getPixelForValue(e){return void 0!==e&&0!==e||(e=this.min),null===e||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(it(e)-this._startValue)/this._valueRange)}getValueForPixel(e){const t=this.getDecimalForPixel(e);return Math.pow(10,this._startValue+t*this._valueRange)}}function $a(e){const t=e.ticks;if(t.display&&e.display){const e=vs(t.backdropPadding);return qe(t.font&&t.font.size,Jt.font.size)+e.height}return 0}function Fa(e,t,s){return s=Te(s)?s:[s],{w:Yt(e,t.string,s),h:s.length*t.lineHeight}}function Ha(e,t,s,i,n){return e===i||e===n?{start:t-s/2,end:t+s/2}:en?{start:t-s,end:t}:{start:t,end:t+s}}function Qa(e,t,s,i,n){const o=Math.abs(Math.sin(s)),a=Math.abs(Math.cos(s));let r=0,l=0;i.startt.r&&(r=(i.end-t.r)/o,e.r=Math.max(e.r,t.r+r)),n.startt.b&&(l=(n.end-t.b)/a,e.b=Math.max(e.b,t.b+l))}function Na(e,t,s){const i=e.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=s,l=e.getPointPosition(t,i+n+a,o),c=Math.round(dt(gt(l.angle+et))),d=function(e,t,s){return 90===s||270===s?e-=t/2:(s>270||s<90)&&(e-=t),e}(l.y,r.h,c),u=function(e){return 0===e||180===e?"center":e<180?"left":"right"}(c),h=(p=l.x,m=r.w,"right"===(g=u)?p-=m:"center"===g&&(p-=m/2),p);var p,m,g;return{visible:!0,x:l.x,y:d,textAlign:u,left:h,top:d,right:h+r.w,bottom:d+r.h}}function Ra(e,t){if(!t)return!0;const{left:s,top:i,right:n,bottom:o}=e;return!(ss({x:s,y:i},t)||ss({x:s,y:o},t)||ss({x:n,y:i},t)||ss({x:n,y:o},t))}function Wa(e,t,s){const{left:i,top:n,right:o,bottom:a}=s,{backdropColor:r}=t;if(!Ee(r)){const s=bs(t.borderRadius),l=vs(t.backdropPadding);e.fillStyle=r;const c=i-l.left,d=n-l.top,u=o-i+l.width,h=a-n+l.height;Object.values(s).some(e=>0!==e)?(e.beginPath(),ds(e,{x:c,y:d,w:u,h,radius:s}),e.fill()):e.fillRect(c,d,u,h)}}function ja(e,t,s,i){const{ctx:n}=e;if(s)n.arc(e.xCenter,e.yCenter,t,0,Ge);else{let s=e.getPointPosition(0,t);n.moveTo(s.x,s.y);for(let o=1;oe,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(e){super(e),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){const e=this._padding=vs($a(this.options)/2),t=this.width=this.maxWidth-e.width,s=this.height=this.maxHeight-e.height;this.xCenter=Math.floor(this.left+t/2+e.left),this.yCenter=Math.floor(this.top+s/2+e.top),this.drawingArea=Math.floor(Math.min(t,s)/2)}determineDataLimits(){const{min:e,max:t}=this.getMinMax(!1);this.min=Ie(e)&&!isNaN(e)?e:0,this.max=Ie(t)&&!isNaN(t)?t:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/$a(this.options))}generateTickLabels(e){Da.prototype.generateTickLabels.call(this,e),this._pointLabels=this.getLabels().map((e,t)=>{const s=Pe(this.options.pointLabels.callback,[e,t],this);return s||0===s?s:""}).filter((e,t)=>this.chart.getDataVisibility(t))}fit(){const e=this.options;e.display&&e.pointLabels.display?function(e){const t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},s=Object.assign({},t),i=[],n=[],o=e._pointLabels.length,a=e.options.pointLabels,r=a.centerPointLabels?Je/o:0;for(let l=0;l=0&&e=0;n--){const t=e._pointLabelItems[n];if(!t.visible)continue;const o=i.setContext(e.getPointLabelContext(n));Wa(s,o,t);const a=ys(o.font),{x:r,y:l,textAlign:c}=t;cs(s,e._pointLabels[n],r,l+a.lineHeight/2,a,{color:o.color,textAlign:c,textBaseline:"middle"})}}(this,o),i.display&&this.ticks.forEach((e,t)=>{if(0!==t||0===t&&this.min<0){r=this.getDistanceFromCenterForValue(e.value);const s=this.getContext(t),a=i.setContext(s),l=n.setContext(s);!function(e,t,s,i,n){const o=e.ctx,a=t.circular,{color:r,lineWidth:l}=t;!a&&!i||!r||!l||s<0||(o.save(),o.strokeStyle=r,o.lineWidth=l,o.setLineDash(n.dash||[]),o.lineDashOffset=n.dashOffset,o.beginPath(),ja(e,s,a,i),o.closePath(),o.stroke(),o.restore())}(this,a,r,o,l)}}),s.display){for(e.save(),a=o-1;a>=0;a--){const i=s.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=i;o&&n&&(e.lineWidth=o,e.strokeStyle=n,e.setLineDash(i.borderDash),e.lineDashOffset=i.borderDashOffset,r=this.getDistanceFromCenterForValue(t.reverse?this.min:this.max),l=this.getPointPosition(a,r),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(l.x,l.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){const e=this.ctx,t=this.options,s=t.ticks;if(!s.display)return;const i=this.getIndexAngle(0);let n,o;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(i),e.textAlign="center",e.textBaseline="middle",this.ticks.forEach((i,a)=>{if(0===a&&this.min>=0&&!t.reverse)return;const r=s.setContext(this.getContext(a)),l=ys(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){e.font=l.string,o=e.measureText(i.label).width,e.fillStyle=r.backdropColor;const t=vs(r.backdropPadding);e.fillRect(-o/2-t.left,-n-l.size/2-t.top,o+t.width,l.size+t.height)}cs(e,i.label,0,-n,l,{color:r.color,strokeColor:r.textStrokeColor,strokeWidth:r.textStrokeWidth})}),e.restore()}drawTitle(){}}const Ua={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Xa=Object.keys(Ua);function Ja(e,t){return e-t}function Ga(e,t){if(Ee(t))return null;const s=e._adapter,{parser:i,round:n,isoWeekday:o}=e._parseOpts;let a=t;return"function"==typeof i&&(a=i(a)),Ie(a)||(a="string"==typeof i?s.parse(a,i):s.parse(a)),null===a?null:(n&&(a="week"!==n||!rt(o)&&!0!==o?s.startOf(a,n):s.startOf(a,"isoWeek",o)),+a)}function Ya(e,t,s,i){const n=Xa.length;for(let o=Xa.indexOf(e);o=t?s[i]:s[n]]=!0}}else e[t]=!0}function Za(e,t,s){const i=[],n={},o=t.length;let a,r;for(a=0;a=0&&(t[l].major=!0);return t}(e,i,n,s):i}class er extends zn{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(e){super(e),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(e,t={}){const s=e.time||(e.time={}),i=this._adapter=new Wi(e.adapters.date);i.init(t),Qe(s.displayFormats,i.formats()),this._parseOpts={parser:s.parser,round:s.round,isoWeekday:s.isoWeekday},super.init(e),this._normalized=t.normalized}parse(e,t){return void 0===e?null:Ga(this,e)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const e=this.options,t=this._adapter,s=e.time.unit||"day";let{min:i,max:n,minDefined:o,maxDefined:a}=this.getUserBounds();function r(e){o||isNaN(e.min)||(i=Math.min(i,e.min)),a||isNaN(e.max)||(n=Math.max(n,e.max))}o&&a||(r(this._getLabelBounds()),"ticks"===e.bounds&&"labels"===e.ticks.source||r(this.getMinMax(!1))),i=Ie(i)&&!isNaN(i)?i:+t.startOf(Date.now(),s),n=Ie(n)&&!isNaN(n)?n:+t.endOf(Date.now(),s)+1,this.min=Math.min(i,n-1),this.max=Math.max(i+1,n)}_getLabelBounds(){const e=this.getLabelTimestamps();let t=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;return e.length&&(t=e[0],s=e[e.length-1]),{min:t,max:s}}buildTicks(){const e=this.options,t=e.time,s=e.ticks,i="labels"===s.source?this.getLabelTimestamps():this._generate();"ticks"===e.bounds&&i.length&&(this.min=this._userMin||i[0],this.max=this._userMax||i[i.length-1]);const n=this.min,o=function(e,t,s){let i=0,n=e.length;for(;ii&&e[n-1]>s;)n--;return i>0||n=Xa.indexOf(s);o--){const s=Xa[o];if(Ua[s].common&&e._adapter.diff(n,i,s)>=t-1)return s}return Xa[s?Xa.indexOf(s):0]}(this,o.length,t.minUnit,this.min,this.max)),this._majorUnit=s.major.enabled&&"year"!==this._unit?function(e){for(let t=Xa.indexOf(e)+1,s=Xa.length;t+e.value))}initOffsets(e=[]){let t,s,i=0,n=0;this.options.offset&&e.length&&(t=this.getDecimalForValue(e[0]),i=1===e.length?1-t:(this.getDecimalForValue(e[1])-t)/2,s=this.getDecimalForValue(e[e.length-1]),n=1===e.length?s:(s-this.getDecimalForValue(e[e.length-2]))/2);const o=e.length<3?.5:.25;i=bt(i,0,o),n=bt(n,0,o),this._offsets={start:i,end:n,factor:1/(i+1+n)}}_generate(){const e=this._adapter,t=this.min,s=this.max,i=this.options,n=i.time,o=n.unit||Ya(n.minUnit,t,s,this._getLabelCapacity(t)),a=qe(i.ticks.stepSize,1),r="week"===o&&n.isoWeekday,l=rt(r)||!0===r,c={};let d,u,h=t;if(l&&(h=+e.startOf(h,"isoWeek",r)),h=+e.startOf(h,l?"day":o),e.diff(s,t,o)>1e5*a)throw new Error(t+" and "+s+" are too far apart with stepSize of "+a+" "+o);const p="data"===i.ticks.source&&this.getDataTimestamps();for(d=h,u=0;d+e)}getLabelForValue(e){const t=this._adapter,s=this.options.time;return s.tooltipFormat?t.format(e,s.tooltipFormat):t.format(e,s.displayFormats.datetime)}format(e,t){const s=this.options.time.displayFormats,i=this._unit,n=t||s[i];return this._adapter.format(e,n)}_tickFormatFunction(e,t,s,i){const n=this.options,o=n.ticks.callback;if(o)return Pe(o,[e,t,s],this);const a=n.time.displayFormats,r=this._unit,l=this._majorUnit,c=r&&a[r],d=l&&a[l],u=s[t],h=l&&d&&u&&u.major;return this._adapter.format(e,i||(h?d:c))}generateTickLabels(e){let t,s,i;for(t=0,s=e.length;t0?a:1}getDataTimestamps(){let e,t,s=this._cache.data||[];if(s.length)return s;const i=this.getMatchingVisibleMetas();if(this._normalized&&i.length)return this._cache.data=i[0].controller.getAllParsedValues(this);for(e=0,t=i.length;e=e[r].pos&&t<=e[l].pos&&({lo:r,hi:l}=wt(e,"pos",t)),({pos:i,time:o}=e[r]),({pos:n,time:a}=e[l])):(t>=e[r].time&&t<=e[l].time&&({lo:r,hi:l}=wt(e,"time",t)),({time:i,pos:o}=e[r]),({time:n,pos:a}=e[l]));const c=n-i;return c?o+(a-o)*(t-i)/c:o}var sr=Object.freeze({__proto__:null,CategoryScale:class extends zn{static id="category";static defaults={ticks:{callback:La}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const t=this._addedLabels;if(t.length){const e=this.getLabels();for(const{index:s,label:i}of t)e[s]===i&&e.splice(s,1);this._addedLabels=[]}super.init(e)}parse(e,t){if(Ee(e))return null;const s=this.getLabels();return((e,t)=>null===e?null:bt(Math.round(e),0,t))(t=isFinite(t)&&s[t]===e?t:function(e,t,s,i){const n=e.indexOf(t);return-1===n?((e,t,s,i)=>("string"==typeof t?(s=e.push(t)-1,i.unshift({index:s,label:t})):isNaN(t)&&(s=null),s))(e,t,s,i):n!==e.lastIndexOf(t)?s:n}(s,e,qe(t,e),this._addedLabels),s.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:t}=this.getUserBounds();let{min:s,max:i}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(s=0),t||(i=this.getLabels().length-1)),this.min=s,this.max=i}buildTicks(){const e=this.min,t=this.max,s=this.options.offset,i=[];let n=this.getLabels();n=0===e&&t===n.length-1?n:n.slice(e,t+1),this._valueRange=Math.max(n.length-(s?0:1),1),this._startValue=this.min-(s?.5:0);for(let s=e;s<=t;s++)i.push({value:s});return i}getLabelForValue(e){return La.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return"number"!=typeof e&&(e=this.parse(e)),null===e?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}},LinearScale:qa,LogarithmicScale:za,RadialLinearScale:Va,TimeScale:er,TimeSeriesScale:class extends er{static id="timeseries";static defaults=er.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=tr(t,this.min),this._tableRange=tr(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:t,max:s}=this,i=[],n=[];let o,a,r,l,c;for(o=0,a=e.length;o=t&&l<=s&&i.push(l);if(i.length<2)return[{time:t,pos:0},{time:s,pos:1}];for(o=0,a=i.length;oe-t)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const t=this.getDataTimestamps(),s=this.getLabelTimestamps();return e=t.length&&s.length?this.normalize(t.concat(s)):t.length?t:s,e=this._cache.all=e,e}getDecimalForValue(e){return(tr(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const t=this._offsets,s=this.getDecimalForPixel(e)/t.factor-t.end;return tr(this._table,s*this._tableRange+this._minPos,!0)}}});const ir=[Qi,qo,Ta,sr];mo.register(...ir);const nr=mo;class or{constructor(){this.charts={},this.init()}init(){const e=document.getElementById("lp-cb-dashboard-chart-data");if(e){try{this.chartData=JSON.parse(e.textContent)}catch(e){return void console.warn("Dashboard: Failed to parse chart data",e)}this.initSalesChart(),this.initStudentsChart(),this.bindFilterEvents()}}createGradient(e,t){const s=e.createLinearGradient(0,0,0,e.canvas.height);return s.addColorStop(0,t+"40"),s.addColorStop(1,t+"05"),s}getChartConfig(e,t,s,i="",n=!1){return{type:"line",data:{labels:e,datasets:[{data:t,borderColor:s,borderWidth:2.5,backgroundColor:e=>{const{ctx:t}=e.chart;return this.createGradient(t,s)},fill:!0,tension:.4,pointBackgroundColor:s,pointBorderColor:"#fff",pointBorderWidth:2,pointRadius:0,pointHoverRadius:6,pointHoverBorderWidth:2}]},options:{responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{backgroundColor:"#1e1e1e",titleColor:"#fff",bodyColor:"#fff",borderColor:"rgba(255,255,255,0.1)",borderWidth:1,cornerRadius:8,padding:12,displayColors:!1,callbacks:{label:e=>{const t=e.parsed.y||0;return i+t.toLocaleString()}}}},scales:{x:{grid:{display:!1},ticks:{color:"#9ca3af",font:{size:11},maxRotation:0},border:{display:!1}},y:{grid:{color:"rgba(0,0,0,0.04)",drawBorder:!1},ticks:{stepSize:n?1:void 0,color:"#9ca3af",font:{size:11},callback:e=>i+e.toLocaleString()},border:{display:!1},beginAtZero:!0}},interaction:{intersect:!1,mode:"index"}}}}initSalesChart(){const e=document.getElementById("lp-cb-chart-sales");if(!e)return;const{labels:t=[],data:s=[]}=this.chartData.sales||{},i=this.getChartConfig(t,s,"#10b981","$");this.charts.sales=new nr(e,i)}initStudentsChart(){const e=document.getElementById("lp-cb-chart-students");if(!e)return;const{labels:t=[],data:s=[]}=this.chartData.students||{},i=this.getChartConfig(t,s,"#f59e0b","",!0);this.charts.students=new nr(e,i)}bindFilterEvents(){document.querySelectorAll(".chart-card__filter").forEach(e=>{e.addEventListener("change",e=>{const t=e.target.dataset.chart,s=e.target.value;this.fetchChartData(t,s)})})}async fetchChartData(e,t){const s=this.charts[e];if(!s)return;const i=new FormData;i.append("action","lp_cb_dashboard_chart_data"),i.append("chart_type",e),i.append("period",t),i.append("nonce",this.chartData.nonce);try{const e=await fetch(this.chartData.ajaxUrl,{method:"POST",body:i}),t=await e.json();t.success&&t.data&&(s.data.labels=t.data.labels||[],s.data.datasets[0].data=t.data.data||[],s.update("none"))}catch(e){console.warn("Dashboard: Failed to fetch chart data",e)}}}class ar{constructor(){this.form=null,this.debounceTimer=null,this.debounceDelay=600,this.isSaving=!1,this.isDirty=!1,this.shouldRetryOnCompleted=!1,this.lastSavedState="",this.mediaUploader=null,this.init()}static selectors={elForm:"#lp-cb-settings-form",elCheckbox:'input[name="hide_instructor_access_admin_screen"]',elBadge:"[data-setting-badge]",elHeaderLogoLink:".lp-cb-top-header__logo a",elLogoSetting:"[data-cb-logo-setting]",elDefaultLogoTemplate:"#lp-cb-default-logo-template",elLogoPreviewDefault:"[data-cb-logo-preview-default]",elLogoPreviewImage:"[data-cb-logo-preview-image]",elLogoChooseBtn:"[data-cb-logo-choose]",elLogoRemoveBtn:"[data-cb-logo-remove]",elLogoIdInput:'input[name="course_builder_logo_id"]',elLogoRemoveInput:'input[name="course_builder_logo_remove"]'};init(){this.form=document.querySelector(ar.selectors.elForm),this.form&&(this.cacheElements(),this.updateBadge(this.getCurrentValue()),this.hydrateDefaultLogoPreview(),this.setLogoVisibility(this.getLogoId()>0),this.lastSavedState=this.getStateFingerprint(),this.events())}cacheElements(){this.headerLogoLink=document.querySelector(ar.selectors.elHeaderLogoLink),this.logoSetting=this.form?.querySelector(ar.selectors.elLogoSetting),this.logoPreviewDefault=this.form?.querySelector(ar.selectors.elLogoPreviewDefault),this.logoPreviewImage=this.form?.querySelector(ar.selectors.elLogoPreviewImage),this.logoChooseBtn=this.form?.querySelector(ar.selectors.elLogoChooseBtn),this.logoRemoveBtn=this.form?.querySelector(ar.selectors.elLogoRemoveBtn),this.logoIdInput=this.form?.querySelector(ar.selectors.elLogoIdInput),this.logoRemoveInput=this.form?.querySelector(ar.selectors.elLogoRemoveInput),this.defaultLogoURL=this.logoSetting?.dataset?.cbDefaultLogoUrl||""}events(){ar._loadedEvents||(ar._loadedEvents=!0,this.form&&(this.form.addEventListener("change",e=>{e.target.matches(ar.selectors.elCheckbox)&&this.handleSettingChange()}),this.logoChooseBtn&&this.logoChooseBtn.addEventListener("click",e=>{e.preventDefault(),this.openLogoMediaUploader()}),this.logoRemoveBtn&&this.logoRemoveBtn.addEventListener("click",e=>{e.preventDefault(),this.removeLogo()})))}handleSettingChange(){this.isDirty=!0,this.isSaving&&(this.shouldRetryOnCompleted=!0),this.updateBadge(this.getCurrentValue()),this.queueSave()}queueSave(){window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(()=>{this.flushSave()},this.debounceDelay)}flushSave(){this.isDirty&&(this.getStateFingerprint()!==this.lastSavedState?this.isSaving||(this.isSaving=!0,this.shouldRetryOnCompleted=!1,n.W("Updating settings...","info",{duration:1800}),window.lpAJAXG.fetchAJAX(this.getPayloadForSave(),{success:e=>{"success"===e?.status?(this.applySaveResponse(e),this.isDirty=!1,this.lastSavedState=this.getStateFingerprint(),this.updateBadge(this.getCurrentValue()),n.W(e?.message||"Saved","success")):this.handleSaveError(e?.message||"Could not save changes.")},error:e=>{this.handleSaveError(e?.message||e||"An error occurred.")},completed:()=>{this.isSaving=!1,this.shouldRetryOnCompleted&&this.queueSave()}})):this.isDirty=!1)}getPayloadForSave(){return{action:"save_global_settings",args:{id_url:"save-global-settings"},hide_instructor_access_admin_screen:this.getCurrentValue(),course_builder_logo_id:this.getLogoId(),course_builder_logo_remove:this.getLogoRemoveValue()}}applySaveResponse(e){var t;const s=e?.data||{},i=parseInt(null!==(t=s.course_builder_logo_id)&&void 0!==t?t:this.getLogoId(),10)||0,n=s.course_builder_logo_url||"";this.logoIdInput&&(this.logoIdInput.value=i),this.logoRemoveInput&&(this.logoRemoveInput.value="no"),i>0&&n?(this.setLogoImageSource(n),this.setLogoVisibility(!0)):0===i&&this.clearLogoUI(),this.syncHeaderLogo(i>0?n:"")}handleSaveError(e){n.W(e,"error")}getCurrentValue(){const e=this.form?.querySelector(ar.selectors.elCheckbox);return e&&e.checked?"yes":"no"}updateBadge(e){const t=this.form?.querySelector(ar.selectors.elBadge);if(!t)return;const s="yes"===e;t.dataset.state=s?"enabled":"disabled",t.textContent=s?"Enabled":"Disabled"}getStateFingerprint(){return JSON.stringify({hide_instructor_access_admin_screen:this.getCurrentValue(),course_builder_logo_id:this.getLogoId(),course_builder_logo_remove:this.getLogoRemoveValue()})}getLogoId(){return parseInt(this.logoIdInput?.value||"0",10)||0}getLogoRemoveValue(){return"yes"===this.logoRemoveInput?.value?"yes":"no"}openLogoMediaUploader(){"undefined"!=typeof wp&&void 0!==wp.media?(this.mediaUploader||(this.mediaUploader=wp.media({title:"Select logo image",button:{text:"Use this image"},multiple:!1,library:{type:"image"}}),this.mediaUploader.on("select",()=>{const e=this.mediaUploader.state().get("selection").first().toJSON(),t=e?.sizes?.full?.url||e?.url||"";t&&(this.logoIdInput&&(this.logoIdInput.value=e?.id||0),this.logoRemoveInput&&(this.logoRemoveInput.value="no"),this.setLogoImageSource(t),this.setLogoVisibility(!0),this.handleSettingChange())})),this.mediaUploader.open()):n.W("Media library is unavailable.","error")}setLogoImageSource(e){this.logoPreviewImage&&(e?this.logoPreviewImage.src=e:this.logoPreviewImage.removeAttribute("src"))}setLogoVisibility(e){this.logoPreviewImage&&this.logoPreviewImage.classList.toggle("is-hidden",!e),this.logoPreviewDefault&&this.logoPreviewDefault.classList.toggle("is-hidden",e),this.logoRemoveBtn&&this.logoRemoveBtn.classList.toggle("is-hidden",!e)}hydrateDefaultLogoPreview(){if(!this.logoPreviewDefault||this.logoPreviewDefault.children.length>0)return;const e=document.querySelector(ar.selectors.elDefaultLogoTemplate),t=e?.content?.querySelector("svg")||e?.querySelector("svg")||document.querySelector(".lp-cb-top-header__logo svg");if(!t&&!this.defaultLogoURL)return;const s=document.createElement("img");s.classList.add("lp-cb-logo-setting__preview-default-image"),s.setAttribute("aria-hidden","true"),s.alt="Course Builder default logo",s.src=t?`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(t.outerHTML)}`:this.defaultLogoURL,this.logoPreviewDefault.appendChild(s)}removeLogo(){this.logoIdInput&&(this.clearLogoUI(),this.logoRemoveInput&&(this.logoRemoveInput.value="yes"),this.handleSettingChange())}clearLogoUI(){this.logoPreviewImage&&(this.logoPreviewImage.src=""),this.logoIdInput&&(this.logoIdInput.value=0),this.setLogoVisibility(!1)}syncHeaderLogo(e=""){if(!this.headerLogoLink)return;const t=e||this.defaultLogoURL;if(!t)return;let s=this.headerLogoLink.querySelector(".lp-cb-top-header__logo-image");s||(s=document.createElement("img"),s.classList.add("lp-cb-top-header__logo-image"),s.alt="Course Builder",s.loading="eager",s.decoding="async",this.headerLogoLink.textContent="",this.headerLogoLink.appendChild(s)),s.removeAttribute("srcset"),s.removeAttribute("sizes"),s.src=t}}let rr=null,lr=null;class cr{constructor(e={}){this.options={isCourseBuilder:!1,...e},this.init()}static selectors={elBtnApplyCurriculum:".lp-btn-apply-curriculum"};init(){lpData?.enable_open_ai&&(this.options.isCourseBuilder?e.lpOnElementReady(w.selectors.idElEditCurriculum,e=>{e.querySelector(b.selectors.elCountSections).insertAdjacentHTML("beforebegin",'')}):e.lpOnElementReady(w.selectors.idElEditCurriculum,e=>{e.querySelector(b.selectors.elCountSections).insertAdjacentHTML("afterend",'')}),this.events())}events(){cr._loadedEvents||(cr._loadedEvents=!0,e.eventHandlers("click",[{selector:cr.selectors.elBtnApplyCurriculum,class:this,callBack:this.applyData.name}]))}async applyData(t){const{e:s,target:o}=t;let a=JSON.parse(o.dataset.send);if(a=e.mergeDataWithDatForm(o.closest("form"),a),!a["lp-openai-generated-data"])return;const r=JSON.parse(a["lp-openai-generated-data"])[0].sections;r&&0!==r.length||n.W("No sections found in the generated data.","error"),i().close(),await new Promise(e=>setTimeout(e,500)),rr=new b,rr.init(),lr=new f,lr.init();const l=document.querySelector(w.selectors.idElEditCurriculum);l.querySelector(b.selectors.elDivAddNewSection).scrollIntoView({behavior:"smooth",block:"center"}),await new Promise(e=>setTimeout(e,800));for(const e of r){const t=l.querySelector(b.selectors.elSectionTitleNewInput),s=l.querySelector(b.selectors.elBtnAddSection);t.value=e.section_title||"",await new Promise(t=>{rr.addSection({e:new PointerEvent("click"),target:s,callBackNest:this.updateSectionDescription({sectionData:e,elEditCurriculum:l}),resolve:t})})}}updateSectionDescription(e){const{sectionData:t,elEditCurriculum:s}=e;return{success:async e=>{const{elSection:i}=e;await new Promise(e=>setTimeout(e,1e3));const n=i.querySelector(b.selectors.elSectionDesInput);n.value=t.section_description||"",await new Promise(e=>{rr.updateSectionDescription({e:new PointerEvent("click"),target:n,callBackNest:this.addSectionItems({sectionData:t,elEditCurriculum:s}),resolve:e})}),setTimeout(e.resolve,1)},error:e=>{},completed:()=>{}}}addSectionItems(e){const{sectionData:t,elEditCurriculum:s}=e,i=t.lessons||[],n=t.quizzes||[];return{success:async e=>{const{elSection:t}=e,o=t.querySelector(`${f.selectors.elBtnSelectItemType}[data-item-type=lp_lesson]`),a=t.querySelector(`${f.selectors.elBtnSelectItemType}[data-item-type=lp_quiz]`);for(const e of i)o.click(),await this.addItemToSection({itemData:e,elSection:t,elEditCurriculum:s});for(const e of n)a.click(),await this.addItemToSection({itemData:e,elSection:t,elEditCurriculum:s});setTimeout(e.resolve,1)},error:e=>{},completed:()=>{}}}async addItemToSection(e){const{itemData:t,elSection:s,elEditCurriculum:i}=e,n=s.querySelector(f.selectors.elBtnAddItem);s.querySelector(f.selectors.elAddItemTypeTitleInput).value=t.lesson_title||t.quiz_title||"",n.scrollIntoView({behavior:"smooth",block:"center"}),await new Promise(e=>{lr.addItemToSection({e:new PointerEvent("click"),target:n,resolve:e,callBackNest:{completed:async t=>{setTimeout(e,1e3)}}})}),setTimeout(e.resolve,1)}}function dr(e,t){e.split(/\s+/).forEach(e=>{t(e)})}class ur{constructor(){this._events={}}on(e,t){dr(e,e=>{const s=this._events[e]||[];s.push(t),this._events[e]=s})}off(e,t){var s=arguments.length;0!==s?dr(e,e=>{if(1===s)return void delete this._events[e];const i=this._events[e];void 0!==i&&(i.splice(i.indexOf(t),1),this._events[e]=i)}):this._events={}}trigger(e,...t){var s=this;dr(e,e=>{const i=s._events[e];void 0!==i&&i.forEach(e=>{e.apply(s,t)})})}}const hr=e=>(e=e.filter(Boolean)).length<2?e[0]||"":1==br(e)?"["+e.join("")+"]":"(?:"+e.join("|")+")",pr=e=>{if(!gr(e))return e.join("");let t="",s=0;const i=()=>{s>1&&(t+="{"+s+"}")};return e.forEach((n,o)=>{n!==e[o-1]?(i(),t+=n,s=1):s++}),i(),t},mr=e=>{let t=Array.from(e);return hr(t)},gr=e=>new Set(e).size!==e.length,fr=e=>(e+"").replace(/([\$\(\)\*\+\.\?\[\]\^\{\|\}\\])/gu,"\\$1"),br=e=>e.reduce((e,t)=>Math.max(e,vr(t)),0),vr=e=>Array.from(e).length,yr=e=>{if(1===e.length)return[[e]];let t=[];const s=e.substring(1);return yr(s).forEach(function(s){let i=s.slice(0);i[0]=e.charAt(0)+i[0],t.push(i),i=s.slice(0),i.unshift(e.charAt(0)),t.push(i)}),t},wr=[[0,65535]];let _r,xr;const Sr={},Cr={"/":"⁄∕",0:"߀",a:"ⱥɐɑ",aa:"ꜳ",ae:"æǽǣ",ao:"ꜵ",au:"ꜷ",av:"ꜹꜻ",ay:"ꜽ",b:"ƀɓƃ",c:"ꜿƈȼↄ",d:"đɗɖᴅƌꮷԁɦ",e:"ɛǝᴇɇ",f:"ꝼƒ",g:"ǥɠꞡᵹꝿɢ",h:"ħⱨⱶɥ",i:"ɨı",j:"ɉȷ",k:"ƙⱪꝁꝃꝅꞣ",l:"łƚɫⱡꝉꝇꞁɭ",m:"ɱɯϻ",n:"ꞥƞɲꞑᴎлԉ",o:"øǿɔɵꝋꝍᴑ",oe:"œ",oi:"ƣ",oo:"ꝏ",ou:"ȣ",p:"ƥᵽꝑꝓꝕρ",q:"ꝗꝙɋ",r:"ɍɽꝛꞧꞃ",s:"ßȿꞩꞅʂ",t:"ŧƭʈⱦꞇ",th:"þ",tz:"ꜩ",u:"ʉ",v:"ʋꝟʌ",vy:"ꝡ",w:"ⱳ",y:"ƴɏỿ",z:"ƶȥɀⱬꝣ",hv:"ƕ"};for(let e in Cr){let t=Cr[e]||"";for(let s=0;se.normalize(t),Er=e=>Array.from(e).reduce((e,t)=>e+Tr(t),""),Tr=e=>(e=Ar(e).toLowerCase().replace(kr,e=>Sr[e]||""),Ar(e,"NFC")),Lr=e=>{const t=(e=>{const t={},s=(e,s)=>{const i=t[e]||new Set,n=new RegExp("^"+mr(i)+"$","iu");s.match(n)||(i.add(fr(s)),t[e]=i)};for(let t of function*(e){for(const[t,s]of e)for(let e=t;e<=s;e++){let t=String.fromCharCode(e),s=Er(t);s!=t.toLowerCase()&&(s.length>3||0!=s.length&&(yield{folded:s,composed:t,code_point:e}))}}(e))s(t.folded,t.folded),s(t.folded,t.composed);return t})(e),s={};let i=[];for(let e in t){let n=t[e];n&&(s[e]=mr(n)),e.length>1&&i.push(fr(e))}i.sort((e,t)=>t.length-e.length);const n=hr(i);return xr=new RegExp("^"+n,"u"),s},Ir=(e,t=1)=>(t=Math.max(t,e.length-1),hr(yr(e).map(e=>((e,t=1)=>{let s=0;return e=e.map(e=>(_r[e]&&(s+=e.length),_r[e]||e)),s>=t?pr(e):""})(e,t)))),Dr=(e,t=!0)=>{let s=e.length>1?1:0;return hr(e.map(e=>{let i=[];const n=t?e.length():e.length()-1;for(let t=0;t{for(const s of t){if(s.start!=e.start||s.end!=e.end)continue;if(s.substrs.join("")!==e.substrs.join(""))continue;let t=e.parts;const i=e=>{for(const s of t){if(s.start===e.start&&s.substr===e.substr)return!1;if(1!=e.length&&1!=s.length){if(e.starts.start)return!0;if(s.starte.start)return!0}}return!1};if(!(s.parts.filter(i).length>0))return!0}return!1};class Br{parts;substrs;start;end;constructor(){this.parts=[],this.substrs=[],this.start=0,this.end=0}add(e){e&&(this.parts.push(e),this.substrs.push(e.substr),this.start=Math.min(e.start,this.start),this.end=Math.max(e.end,this.end))}last(){return this.parts[this.parts.length-1]}length(){return this.parts.length}clone(e,t){let s=new Br,i=JSON.parse(JSON.stringify(this.parts)),n=i.pop();for(const e of i)s.add(e);let o=t.substr.substring(0,e-n.start),a=o.length;return s.add({start:n.start,end:n.start+a,length:a,substr:o}),s}}const Pr=(e,t)=>{if(e)return e[t]},Mr=(e,t)=>{if(e){for(var s,i=t.split(".");(s=i.shift())&&(e=e[s]););return e}},Or=(e,t,s)=>{var i,n;return e?(e+="",null==t.regex||-1===(n=e.search(t.regex))?0:(i=t.string.length/e.length,0===n&&(i+=.5),i*s)):0},zr=(e,t)=>{var s=e[t];if("function"==typeof s)return s;s&&!Array.isArray(s)&&(e[t]=[s])},$r=(e,t)=>{if(Array.isArray(e))e.forEach(t);else for(var s in e)e.hasOwnProperty(s)&&t(e[s],s)},Fr=(e,t)=>"number"==typeof e&&"number"==typeof t?e>t?1:e(t=Er(t+"").toLowerCase())?1:t>e?-1:0;class Hr{items;settings;constructor(e,t){this.items=e,this.settings=t||{diacritics:!0}}tokenize(e,t,s){if(!e||!e.length)return[];const i=[],n=e.split(/\s+/);var o;return s&&(o=new RegExp("^("+Object.keys(s).map(fr).join("|")+"):(.*)$")),n.forEach(e=>{let s,n=null,a=null;o&&(s=e.match(o))&&(n=s[1],e=s[2]),e.length>0&&(a=this.settings.diacritics?(e=>{void 0===_r&&(_r=Lr(wr)),e=Er(e);let t="",s=[new Br];for(let i=0;i0){r=r.sort((e,t)=>e.length()-t.length());for(let e of r)qr(e,s)||s.push(e)}else if(i>0&&1==l.size&&!l.has("3")){t+=Dr(s,!1);let e=new Br;const i=s[0];i&&e.add(i.last()),s=[e]}}return t+=Dr(s,!0),t})(e)||null:fr(e),a&&t&&(a="\\b"+a)),i.push({string:e,regex:a?new RegExp(a,"iu"):null,field:n})}),i}getScoreFunction(e,t){var s=this.prepareSearch(e,t);return this._getScoreFunction(s)}_getScoreFunction(e){const t=e.tokens,s=t.length;if(!s)return function(){return 0};const i=e.options.fields,n=e.weights,o=i.length,a=e.getAttrFn;if(!o)return function(){return 1};const r=1===o?function(e,t){const s=i[0].field;return Or(a(t,s),e,n[s]||1)}:function(e,t){var s=0;if(e.field){const i=a(t,e.field);!e.regex&&i?s+=1/o:s+=Or(i,e,1)}else $r(n,(i,n)=>{s+=Or(a(t,n),e,i)});return s/o};return 1===s?function(e){return r(t[0],e)}:"and"===e.options.conjunction?function(e){var i,n=0;for(let s of t){if((i=r(s,e))<=0)return 0;n+=i}return n/s}:function(e){var i=0;return $r(t,t=>{i+=r(t,e)}),i/s}}getSortFunction(e,t){var s=this.prepareSearch(e,t);return this._getSortFunction(s)}_getSortFunction(e){var t,s=[];const i=this,n=e.options,o=!e.query&&n.sort_empty?n.sort_empty:n.sort;if("function"==typeof o)return o.bind(this);const a=function(t,s){return"$score"===t?s.score:e.getAttrFn(i.items[s.id],t)};if(o)for(let t of o)(e.query||"$score"!==t.field)&&s.push(t);if(e.query){t=!0;for(let e of s)if("$score"===e.field){t=!1;break}t&&s.unshift({field:"$score",direction:"desc"})}else s=s.filter(e=>"$score"!==e.field);return s.length?function(e,t){var i,n;for(let o of s)if(n=o.field,i=("desc"===o.direction?-1:1)*Fr(a(n,e),a(n,t)))return i;return 0}:null}prepareSearch(e,t){const s={};var i=Object.assign({},t);if(zr(i,"sort"),zr(i,"sort_empty"),i.fields){zr(i,"fields");const e=[];i.fields.forEach(t=>{"string"==typeof t&&(t={field:t,weight:1}),e.push(t),s[t.field]="weight"in t?t.weight:1}),i.fields=e}return{options:i,query:e.toLowerCase().trim(),tokens:this.tokenize(e,i.respect_word_boundaries,s),total:0,items:[],weights:s,getAttrFn:i.nesting?Mr:Pr}}search(e,t){var s,i,n=this;i=this.prepareSearch(e,t),t=i.options,e=i.query;const o=t.score||n._getScoreFunction(i);e.length?$r(n.items,(e,n)=>{s=o(e),(!1===t.filter||s>0)&&i.items.push({score:s,id:n})}):$r(n.items,(e,t)=>{i.items.push({score:1,id:t})});const a=n._getSortFunction(i);return a&&i.items.sort(a),i.total=i.items.length,"number"==typeof t.limit&&(i.items=i.items.slice(0,t.limit)),i}}const Qr=e=>null==e?null:Nr(e),Nr=e=>"boolean"==typeof e?e?"1":"0":e+"",Rr=e=>(e+"").replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),Wr=(e,t)=>{var s;return function(i,n){var o=this;s&&(o.loading=Math.max(o.loading-1,0),clearTimeout(s)),s=setTimeout(function(){s=null,o.loadedSearches[i]=!0,e.call(o,i,n)},t)}},jr=(e,t,s)=>{var i,n=e.trigger,o={};for(i of(e.trigger=function(){var s=arguments[0];if(-1===t.indexOf(s))return n.apply(e,arguments);o[s]=arguments},s.apply(e,[]),e.trigger=n,t))i in o&&n.apply(e,o[i])},Vr=(e,t=!1)=>{e&&(e.preventDefault(),t&&e.stopPropagation())},Ur=(e,t,s,i)=>{e.addEventListener(t,s,i)},Xr=(e,t)=>!!t&&!!t[e]&&1==(t.altKey?1:0)+(t.ctrlKey?1:0)+(t.shiftKey?1:0)+(t.metaKey?1:0),Jr=(e,t)=>e.getAttribute("id")||(e.setAttribute("id",t),t),Gr=e=>e.replace(/[\\"']/g,"\\$&"),Yr=(e,t)=>{t&&e.append(t)},Kr=(e,t)=>{if(Array.isArray(e))e.forEach(t);else for(var s in e)e.hasOwnProperty(s)&&t(e[s],s)},Zr=e=>{if(e.jquery)return e[0];if(e instanceof HTMLElement)return e;if(el(e)){var t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}return document.querySelector(e)},el=e=>"string"==typeof e&&e.indexOf("<")>-1,tl=(e,t)=>{var s=document.createEvent("HTMLEvents");s.initEvent(t,!0,!1),e.dispatchEvent(s)},sl=(e,t)=>{Object.assign(e.style,t)},il=(e,...t)=>{var s=ol(t);(e=al(e)).map(e=>{s.map(t=>{e.classList.add(t)})})},nl=(e,...t)=>{var s=ol(t);(e=al(e)).map(e=>{s.map(t=>{e.classList.remove(t)})})},ol=e=>{var t=[];return Kr(e,e=>{"string"==typeof e&&(e=e.trim().split(/[\t\n\f\r\s]/)),Array.isArray(e)&&(t=t.concat(e))}),t.filter(Boolean)},al=e=>(Array.isArray(e)||(e=[e]),e),rl=(e,t,s)=>{if(!s||s.contains(e))for(;e&&e.matches;){if(e.matches(t))return e;e=e.parentNode}},ll=(e,t=0)=>t>0?e[e.length-1]:e[0],cl=(e,t)=>{if(!e)return-1;t=t||e.nodeName;for(var s=0;e=e.previousElementSibling;)e.matches(t)&&s++;return s},dl=(e,t)=>{Kr(t,(t,s)=>{null==t?e.removeAttribute(s):e.setAttribute(s,""+t)})},ul=(e,t)=>{e.parentNode&&e.parentNode.replaceChild(t,e)},hl="undefined"!=typeof navigator&&/Mac/.test(navigator.userAgent)?"metaKey":"ctrlKey",pl={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:null,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,shouldOpen:null,maxOptions:50,maxItems:null,hideSelected:null,duplicates:!1,addPrecedence:!1,selectOnTab:!1,preload:null,allowEmptyOption:!1,refreshThrottle:300,loadThrottle:300,loadingClass:"loading",dataAttr:null,optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"ts-wrapper",controlClass:"ts-control",dropdownClass:"ts-dropdown",dropdownContentClass:"ts-dropdown-content",itemClass:"item",optionClass:"option",dropdownParent:null,controlInput:'',copyClassesToDropdown:!1,placeholder:null,hidePlaceholder:null,shouldLoad:function(e){return e.length>0},render:{}};function ml(e,t){var s=Object.assign({},pl,t),i=s.dataAttr,n=s.labelField,o=s.valueField,a=s.disabledField,r=s.optgroupField,l=s.optgroupLabelField,c=s.optgroupValueField,d=e.tagName.toLowerCase(),u=e.getAttribute("placeholder")||e.getAttribute("data-placeholder");if(!u&&!s.allowEmptyOption){let t=e.querySelector('option[value=""]');t&&(u=t.textContent)}var h={placeholder:u,options:[],optgroups:[],items:[],maxItems:null};return"select"===d?(()=>{var t,d=h.options,u={},p=1;let m=0;var g=e=>{var t=Object.assign({},e.dataset),s=i&&t[i];return"string"==typeof s&&s.length&&(t=Object.assign(t,JSON.parse(s))),t},f=(e,t)=>{var i=Qr(e.value);if(null!=i&&(i||s.allowEmptyOption)){if(u.hasOwnProperty(i)){if(t){var l=u[i][r];l?Array.isArray(l)?l.push(t):u[i][r]=[l,t]:u[i][r]=t}}else{var c=g(e);c[n]=c[n]||e.textContent,c[o]=c[o]||i,c[a]=c[a]||e.disabled,c[r]=c[r]||t,c.$option=e,c.$order=c.$order||++m,u[i]=c,d.push(c)}e.selected&&h.items.push(i)}};h.maxItems=e.hasAttribute("multiple")?null:1,Kr(e.children,e=>{var s,i,n;"optgroup"===(t=e.tagName.toLowerCase())?((n=g(s=e))[l]=n[l]||s.getAttribute("label")||"",n[c]=n[c]||p++,n[a]=n[a]||s.disabled,n.$order=n.$order||++m,h.optgroups.push(n),i=n[c],Kr(s.children,e=>{f(e,i)})):"option"===t&&f(e)})})():(()=>{const t=e.getAttribute(i);if(t)h.options=JSON.parse(t),Kr(h.options,e=>{h.items.push(e[o])});else{var a=e.value.trim()||"";if(!s.allowEmptyOption&&!a.length)return;const t=a.split(s.delimiter);Kr(t,e=>{const t={};t[n]=e,t[o]=e,h.options.push(t)}),h.items=t}})(),Object.assign({},pl,h,t)}var gl=0;class fl extends(function(e){return e.plugins={},class extends e{constructor(){super(...arguments),this.plugins={names:[],settings:{},requested:{},loaded:{}}}static define(t,s){e.plugins[t]={name:t,fn:s}}initializePlugins(e){var t,s;const i=this,n=[];if(Array.isArray(e))e.forEach(e=>{"string"==typeof e?n.push(e):(i.plugins.settings[e.name]=e.options,n.push(e.name))});else if(e)for(t in e)e.hasOwnProperty(t)&&(i.plugins.settings[t]=e[t],n.push(t));for(;s=n.shift();)i.require(s)}loadPlugin(t){var s=this,i=s.plugins,n=e.plugins[t];if(!e.plugins.hasOwnProperty(t))throw new Error('Unable to find "'+t+'" plugin');i.requested[t]=!0,i.loaded[t]=n.fn.apply(s,[s.plugins.settings[t]||{}]),i.names.push(t)}require(e){var t=this,s=t.plugins;if(!t.plugins.loaded.hasOwnProperty(e)){if(s.requested[e])throw new Error('Plugin has circular dependency ("'+e+'")');t.loadPlugin(e)}return s.loaded[e]}}}(ur)){constructor(e,t){var s;super(),this.order=0,this.isOpen=!1,this.isDisabled=!1,this.isReadOnly=!1,this.isInvalid=!1,this.isValid=!0,this.isLocked=!1,this.isFocused=!1,this.isInputHidden=!1,this.isSetup=!1,this.ignoreFocus=!1,this.ignoreHover=!1,this.hasOptions=!1,this.lastValue="",this.caretPos=0,this.loading=0,this.loadedSearches={},this.activeOption=null,this.activeItems=[],this.optgroups={},this.options={},this.userOptions={},this.items=[],this.refreshTimeout=null,gl++;var i=Zr(e);if(i.tomselect)throw new Error("Tom Select already initialized on this element");i.tomselect=this,s=(window.getComputedStyle&&window.getComputedStyle(i,null)).getPropertyValue("direction");const n=ml(i,t);this.settings=n,this.input=i,this.tabIndex=i.tabIndex||0,this.is_select_tag="select"===i.tagName.toLowerCase(),this.rtl=/rtl/i.test(s),this.inputId=Jr(i,"tomselect-"+gl),this.isRequired=i.required,this.sifter=new Hr(this.options,{diacritics:n.diacritics}),n.mode=n.mode||(1===n.maxItems?"single":"multi"),"boolean"!=typeof n.hideSelected&&(n.hideSelected="multi"===n.mode),"boolean"!=typeof n.hidePlaceholder&&(n.hidePlaceholder="multi"!==n.mode);var o=n.createFilter;"function"!=typeof o&&("string"==typeof o&&(o=new RegExp(o)),o instanceof RegExp?n.createFilter=e=>o.test(e):n.createFilter=e=>this.settings.duplicates||!this.options[e]),this.initializePlugins(n.plugins),this.setupCallbacks(),this.setupTemplates();const a=Zr(""),r=Zr("
"),l=this._render("dropdown"),c=Zr('
'),d=this.input.getAttribute("class")||"",u=n.mode;var h;il(a,n.wrapperClass,d,u),il(r,n.controlClass),Yr(a,r),il(l,n.dropdownClass,u),n.copyClassesToDropdown&&il(l,d),il(c,n.dropdownContentClass),Yr(l,c),Zr(n.dropdownParent||a).appendChild(l),el(n.controlInput)?(h=Zr(n.controlInput),Kr(["autocorrect","autocapitalize","autocomplete","spellcheck"],e=>{i.getAttribute(e)&&dl(h,{[e]:i.getAttribute(e)})}),h.tabIndex=-1,r.appendChild(h),this.focus_node=h):n.controlInput?(h=Zr(n.controlInput),this.focus_node=h):(h=Zr("
"),this.focus_node=r),this.wrapper=a,this.dropdown=l,this.dropdown_content=c,this.control=r,this.control_input=h,this.setup()}setup(){const e=this,t=e.settings,s=e.control_input,i=e.dropdown,n=e.dropdown_content,o=e.wrapper,a=e.control,r=e.input,l=e.focus_node,c={passive:!0},d=e.inputId+"-ts-dropdown";dl(n,{id:d}),dl(l,{role:"combobox","aria-haspopup":"listbox","aria-expanded":"false","aria-controls":d});const u=Jr(l,e.inputId+"-ts-control"),h="label[for='"+(e=>e.replace(/['"\\]/g,"\\$&"))(e.inputId)+"']",p=document.querySelector(h),m=e.focus.bind(e);if(p){Ur(p,"click",m),dl(p,{for:u});const t=Jr(p,e.inputId+"-ts-label");dl(l,{"aria-labelledby":t}),dl(n,{"aria-labelledby":t})}if(o.style.width=r.style.width,e.plugins.names.length){const t="plugin-"+e.plugins.names.join(" plugin-");il([o,i],t)}(null===t.maxItems||t.maxItems>1)&&e.is_select_tag&&dl(r,{multiple:"multiple"}),t.placeholder&&dl(s,{placeholder:t.placeholder}),!t.splitOn&&t.delimiter&&(t.splitOn=new RegExp("\\s*"+fr(t.delimiter)+"+\\s*")),t.load&&t.loadThrottle&&(t.load=Wr(t.load,t.loadThrottle)),Ur(i,"mousemove",()=>{e.ignoreHover=!1}),Ur(i,"mouseenter",t=>{var s=rl(t.target,"[data-selectable]",i);s&&e.onOptionHover(t,s)},{capture:!0}),Ur(i,"click",t=>{const s=rl(t.target,"[data-selectable]");s&&(e.onOptionSelect(t,s),Vr(t,!0))}),Ur(a,"click",t=>{var i=rl(t.target,"[data-ts-item]",a);i&&e.onItemSelect(t,i)?Vr(t,!0):""==s.value&&(e.onClick(),Vr(t,!0))}),Ur(l,"keydown",t=>e.onKeyDown(t)),Ur(s,"keypress",t=>e.onKeyPress(t)),Ur(s,"input",t=>e.onInput(t)),Ur(l,"blur",t=>e.onBlur(t)),Ur(l,"focus",t=>e.onFocus(t)),Ur(s,"paste",t=>e.onPaste(t));const g=t=>{const n=t.composedPath()[0];if(!o.contains(n)&&!i.contains(n))return e.isFocused&&e.blur(),void e.inputState();n==s&&e.isOpen?t.stopPropagation():Vr(t,!0)},f=()=>{e.isOpen&&e.positionDropdown()};Ur(document,"mousedown",g),Ur(window,"scroll",f,c),Ur(window,"resize",f,c),this._destroy=()=>{document.removeEventListener("mousedown",g),window.removeEventListener("scroll",f),window.removeEventListener("resize",f),p&&p.removeEventListener("click",m)},this.revertSettings={innerHTML:r.innerHTML,tabIndex:r.tabIndex},r.tabIndex=-1,r.insertAdjacentElement("afterend",e.wrapper),e.sync(!1),t.items=[],delete t.optgroups,delete t.options,Ur(r,"invalid",()=>{e.isValid&&(e.isValid=!1,e.isInvalid=!0,e.refreshState())}),e.updateOriginalInput(),e.refreshItems(),e.close(!1),e.inputState(),e.isSetup=!0,r.disabled?e.disable():r.readOnly?e.setReadOnly(!0):e.enable(),e.on("change",this.onChange),il(r,"tomselected","ts-hidden-accessible"),e.trigger("initialize"),!0===t.preload&&e.preload()}setupOptions(e=[],t=[]){this.addOptions(e),Kr(t,e=>{this.registerOptionGroup(e)})}setupTemplates(){var e=this,t=e.settings.labelField,s=e.settings.optgroupLabelField,i={optgroup:e=>{let t=document.createElement("div");return t.className="optgroup",t.appendChild(e.options),t},optgroup_header:(e,t)=>'",option:(e,s)=>"
"+s(e[t])+"
",item:(e,s)=>"
"+s(e[t])+"
",option_create:(e,t)=>'
Add '+t(e.input)+"…
",no_results:()=>'
No results found
',loading:()=>'
',not_loading:()=>{},dropdown:()=>"
"};e.settings.render=Object.assign({},i,e.settings.render)}setupCallbacks(){var e,t,s={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",item_select:"onItemSelect",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(e in s)(t=this.settings[s[e]])&&this.on(e,t)}sync(e=!0){const t=this,s=e?ml(t.input,{delimiter:t.settings.delimiter}):t.settings;t.setupOptions(s.options,s.optgroups),t.setValue(s.items||[],!0),t.lastQuery=null}onClick(){var e=this;if(e.activeItems.length>0)return e.clearActiveItems(),void e.focus();e.isFocused&&e.isOpen?e.blur():e.focus()}onMouseDown(){}onChange(){tl(this.input,"input"),tl(this.input,"change")}onPaste(e){var t=this;t.isInputHidden||t.isLocked?Vr(e):t.settings.splitOn&&setTimeout(()=>{var e=t.inputValue();if(e.match(t.settings.splitOn)){var s=e.trim().split(t.settings.splitOn);Kr(s,e=>{Qr(e)&&(this.options[e]?t.addItem(e):t.createItem(e))})}},0)}onKeyPress(e){var t=this;if(!t.isLocked){var s=String.fromCharCode(e.keyCode||e.which);return t.settings.create&&"multi"===t.settings.mode&&s===t.settings.delimiter?(t.createItem(),void Vr(e)):void 0}Vr(e)}onKeyDown(e){var t=this;if(t.ignoreHover=!0,t.isLocked)9!==e.keyCode&&Vr(e);else{switch(e.keyCode){case 65:if(Xr(hl,e)&&""==t.control_input.value)return Vr(e),void t.selectAll();break;case 27:return t.isOpen&&(Vr(e,!0),t.close()),void t.clearActiveItems();case 40:if(!t.isOpen&&t.hasOptions)t.open();else if(t.activeOption){let e=t.getAdjacent(t.activeOption,1);e&&t.setActiveOption(e)}return void Vr(e);case 38:if(t.activeOption){let e=t.getAdjacent(t.activeOption,-1);e&&t.setActiveOption(e)}return void Vr(e);case 13:return void(t.canSelect(t.activeOption)?(t.onOptionSelect(e,t.activeOption),Vr(e)):(t.settings.create&&t.createItem()||document.activeElement==t.control_input&&t.isOpen)&&Vr(e));case 37:return void t.advanceSelection(-1,e);case 39:return void t.advanceSelection(1,e);case 9:return void(t.settings.selectOnTab&&(t.canSelect(t.activeOption)&&(t.onOptionSelect(e,t.activeOption),Vr(e)),t.settings.create&&t.createItem()&&Vr(e)));case 8:case 46:return void t.deleteSelection(e)}t.isInputHidden&&!Xr(hl,e)&&Vr(e)}}onInput(e){if(this.isLocked)return;const t=this.inputValue();var s,i;this.lastValue!==t&&(this.lastValue=t,""!=t?(this.refreshTimeout&&window.clearTimeout(this.refreshTimeout),this.refreshTimeout=(s=()=>{this.refreshTimeout=null,this._onInput()},(i=this.settings.refreshThrottle)>0?window.setTimeout(s,i):(s.call(null),null))):this._onInput())}_onInput(){const e=this.lastValue;this.settings.shouldLoad.call(this,e)&&this.load(e),this.refreshOptions(),this.trigger("type",e)}onOptionHover(e,t){this.ignoreHover||this.setActiveOption(t,!1)}onFocus(e){var t=this,s=t.isFocused;if(t.isDisabled||t.isReadOnly)return t.blur(),void Vr(e);t.ignoreFocus||(t.isFocused=!0,"focus"===t.settings.preload&&t.preload(),s||t.trigger("focus"),t.activeItems.length||(t.inputState(),t.refreshOptions(!!t.settings.openOnFocus)),t.refreshState())}onBlur(e){if(!1!==document.hasFocus()){var t=this;if(t.isFocused){t.isFocused=!1,t.ignoreFocus=!1;var s=()=>{t.close(),t.setActiveItem(),t.setCaret(t.items.length),t.trigger("blur")};t.settings.create&&t.settings.createOnBlur?t.createItem(null,s):s()}}}onOptionSelect(e,t){var s,i=this;t.parentElement&&t.parentElement.matches("[data-disabled]")||(t.classList.contains("create")?i.createItem(null,()=>{i.settings.closeAfterSelect&&i.close()}):void 0!==(s=t.dataset.value)&&(i.lastQuery=null,i.addItem(s),i.settings.closeAfterSelect&&i.close(),!i.settings.hideSelected&&e.type&&/click/.test(e.type)&&i.setActiveOption(t)))}canSelect(e){return!!(this.isOpen&&e&&this.dropdown_content.contains(e))}onItemSelect(e,t){var s=this;return!s.isLocked&&"multi"===s.settings.mode&&(Vr(e),s.setActiveItem(t,e),!0)}canLoad(e){return!!this.settings.load&&!this.loadedSearches.hasOwnProperty(e)}load(e){const t=this;if(!t.canLoad(e))return;il(t.wrapper,t.settings.loadingClass),t.loading++;const s=t.loadCallback.bind(t);t.settings.load.call(t,e,s)}loadCallback(e,t){const s=this;s.loading=Math.max(s.loading-1,0),s.lastQuery=null,s.clearActiveOption(),s.setupOptions(e,t),s.refreshOptions(s.isFocused&&!s.isInputHidden),s.loading||nl(s.wrapper,s.settings.loadingClass),s.trigger("load",e,t)}preload(){var e=this.wrapper.classList;e.contains("preloaded")||(e.add("preloaded"),this.load(""))}setTextboxValue(e=""){var t=this.control_input;t.value!==e&&(t.value=e,tl(t,"update"),this.lastValue=e)}getValue(){return this.is_select_tag&&this.input.hasAttribute("multiple")?this.items:this.items.join(this.settings.delimiter)}setValue(e,t){jr(this,t?[]:["change"],()=>{this.clear(t),this.addItems(e,t)})}setMaxItems(e){0===e&&(e=null),this.settings.maxItems=e,this.refreshState()}setActiveItem(e,t){var s,i,n,o,a,r,l=this;if("single"!==l.settings.mode){if(!e)return l.clearActiveItems(),void(l.isFocused&&l.inputState());if("click"===(s=t&&t.type.toLowerCase())&&Xr("shiftKey",t)&&l.activeItems.length){for(r=l.getLastActive(),(n=Array.prototype.indexOf.call(l.control.children,r))>(o=Array.prototype.indexOf.call(l.control.children,e))&&(a=n,n=o,o=a),i=n;i<=o;i++)e=l.control.children[i],-1===l.activeItems.indexOf(e)&&l.setActiveItemClass(e);Vr(t)}else"click"===s&&Xr(hl,t)||"keydown"===s&&Xr("shiftKey",t)?e.classList.contains("active")?l.removeActiveItem(e):l.setActiveItemClass(e):(l.clearActiveItems(),l.setActiveItemClass(e));l.inputState(),l.isFocused||l.focus()}}setActiveItemClass(e){const t=this,s=t.control.querySelector(".last-active");s&&nl(s,"last-active"),il(e,"active last-active"),t.trigger("item_select",e),-1==t.activeItems.indexOf(e)&&t.activeItems.push(e)}removeActiveItem(e){var t=this.activeItems.indexOf(e);this.activeItems.splice(t,1),nl(e,"active")}clearActiveItems(){nl(this.activeItems,"active"),this.activeItems=[]}setActiveOption(e,t=!0){e!==this.activeOption&&(this.clearActiveOption(),e&&(this.activeOption=e,dl(this.focus_node,{"aria-activedescendant":e.getAttribute("id")}),dl(e,{"aria-selected":"true"}),il(e,"active"),t&&this.scrollToOption(e)))}scrollToOption(e,t){if(!e)return;const s=this.dropdown_content,i=s.clientHeight,n=s.scrollTop||0,o=e.offsetHeight,a=e.getBoundingClientRect().top-s.getBoundingClientRect().top+n;a+o>i+n?this.scroll(a-i+o,t):a
{e.setActiveItemClass(t)}))}inputState(){var e=this;e.control.contains(e.control_input)&&(dl(e.control_input,{placeholder:e.settings.placeholder}),e.activeItems.length>0||!e.isFocused&&e.settings.hidePlaceholder&&e.items.length>0?(e.setTextboxValue(),e.isInputHidden=!0):(e.settings.hidePlaceholder&&e.items.length>0&&dl(e.control_input,{placeholder:""}),e.isInputHidden=!1),e.wrapper.classList.toggle("input-hidden",e.isInputHidden))}inputValue(){return this.control_input.value.trim()}focus(){var e=this;e.isDisabled||e.isReadOnly||(e.ignoreFocus=!0,e.control_input.offsetWidth?e.control_input.focus():e.focus_node.focus(),setTimeout(()=>{e.ignoreFocus=!1,e.onFocus()},0))}blur(){this.focus_node.blur(),this.onBlur()}getScoreFunction(e){return this.sifter.getScoreFunction(e,this.getSearchOptions())}getSearchOptions(){var e=this.settings,t=e.sortField;return"string"==typeof e.sortField&&(t=[{field:e.sortField}]),{fields:e.searchField,conjunction:e.searchConjunction,sort:t,nesting:e.nesting}}search(e){var t,s,i=this,n=this.getSearchOptions();if(i.settings.score&&"function"!=typeof(s=i.settings.score.call(i,e)))throw new Error('Tom Select "score" setting must be a function that returns a function');return e!==i.lastQuery?(i.lastQuery=e,t=i.sifter.search(e,Object.assign(n,{score:s})),i.currentResults=t):t=Object.assign({},i.currentResults),i.settings.hideSelected&&(t.items=t.items.filter(e=>{let t=Qr(e.id);return!(t&&-1!==i.items.indexOf(t))})),t}refreshOptions(e=!0){var t,s,i,n,o,a,r,l,c,d;const u={},h=[];var p=this,m=p.inputValue();const g=m===p.lastQuery||""==m&&null==p.lastQuery;var f=p.search(m),b=null,v=p.settings.shouldOpen||!1,y=p.dropdown_content;g&&(b=p.activeOption)&&(c=b.closest("[data-group]")),n=f.items.length,"number"==typeof p.settings.maxOptions&&(n=Math.min(n,p.settings.maxOptions)),n>0&&(v=!0);const w=(e,t)=>{let s=u[e];if(void 0!==s){let e=h[s];if(void 0!==e)return[s,e.fragment]}let i=document.createDocumentFragment();return s=h.length,h.push({fragment:i,order:t,optgroup:e}),[s,i]};for(t=0;t0&&(d=d.cloneNode(!0),dl(d,{id:r.$id+"-clone-"+s,"aria-selected":null}),d.classList.add("ts-cloned"),nl(d,"active"),p.activeOption&&p.activeOption.dataset.value==n&&c&&c.dataset.group===o.toString()&&(b=d)),l.appendChild(d),""!=o&&(u[o]=i)}}var _;p.settings.lockOptgroupOrder&&h.sort((e,t)=>e.order-t.order),r=document.createDocumentFragment(),Kr(h,e=>{let t=e.fragment,s=e.optgroup;if(!t||!t.children.length)return;let i=p.optgroups[s];if(void 0!==i){let e=document.createDocumentFragment(),s=p.render("optgroup_header",i);Yr(e,s),Yr(e,t);let n=p.render("optgroup",{group:i,options:e});Yr(r,n)}else Yr(r,t)}),y.innerHTML="",Yr(y,r),p.settings.highlight&&(_=y.querySelectorAll("span.highlight"),Array.prototype.forEach.call(_,function(e){var t=e.parentNode;t.replaceChild(e.firstChild,e),t.normalize()}),f.query.length&&f.tokens.length&&Kr(f.tokens,e=>{((e,t)=>{if(null===t)return;if("string"==typeof t){if(!t.length)return;t=new RegExp(t,"i")}const s=e=>3===e.nodeType?(e=>{var s=e.data.match(t);if(s&&e.data.length>0){var i=document.createElement("span");i.className="highlight";var n=e.splitText(s.index);n.splitText(s[0].length);var o=n.cloneNode(!0);return i.appendChild(o),ul(n,i),1}return 0})(e):((e=>{1!==e.nodeType||!e.childNodes||/(script|style)/i.test(e.tagName)||"highlight"===e.className&&"SPAN"===e.tagName||Array.from(e.childNodes).forEach(e=>{s(e)})})(e),0);s(e)})(y,e.regex)}));var x=e=>{let t=p.render(e,{input:m});return t&&(v=!0,y.insertBefore(t,y.firstChild)),t};if(p.loading?x("loading"):p.settings.shouldLoad.call(p,m)?0===f.items.length&&x("no_results"):x("not_loading"),(l=p.canCreate(m))&&(d=x("option_create")),p.hasOptions=f.items.length>0||l,v){if(f.items.length>0){if(b||"single"!==p.settings.mode||null==p.items[0]||(b=p.getOption(p.items[0])),!y.contains(b)){let e=0;d&&!p.settings.addPrecedence&&(e=1),b=p.selectable()[e]}}else d&&(b=d);e&&!p.isOpen&&(p.open(),p.scrollToOption(b,"auto")),p.setActiveOption(b)}else p.clearActiveOption(),e&&p.isOpen&&p.close(!1)}selectable(){return this.dropdown_content.querySelectorAll("[data-selectable]")}addOption(e,t=!1){const s=this;if(Array.isArray(e))return s.addOptions(e,t),!1;const i=Qr(e[s.settings.valueField]);return null!==i&&!s.options.hasOwnProperty(i)&&(e.$order=e.$order||++s.order,e.$id=s.inputId+"-opt-"+e.$order,s.options[i]=e,s.lastQuery=null,t&&(s.userOptions[i]=t,s.trigger("option_add",i,e)),i)}addOptions(e,t=!1){Kr(e,e=>{this.addOption(e,t)})}registerOption(e){return this.addOption(e)}registerOptionGroup(e){var t=Qr(e[this.settings.optgroupValueField]);return null!==t&&(e.$order=e.$order||++this.order,this.optgroups[t]=e,t)}addOptionGroup(e,t){var s;t[this.settings.optgroupValueField]=e,(s=this.registerOptionGroup(t))&&this.trigger("optgroup_add",s,t)}removeOptionGroup(e){this.optgroups.hasOwnProperty(e)&&(delete this.optgroups[e],this.clearCache(),this.trigger("optgroup_remove",e))}clearOptionGroups(){this.optgroups={},this.clearCache(),this.trigger("optgroup_clear")}updateOption(e,t){const s=this;var i,n;const o=Qr(e),a=Qr(t[s.settings.valueField]);if(null===o)return;const r=s.options[o];if(null==r)return;if("string"!=typeof a)throw new Error("Value must be set in option data");const l=s.getOption(o),c=s.getItem(o);if(t.$order=t.$order||r.$order,delete s.options[o],s.uncacheValue(a),s.options[a]=t,l){if(s.dropdown_content.contains(l)){const e=s._render("option",t);ul(l,e),s.activeOption===l&&s.setActiveOption(e)}l.remove()}c&&(-1!==(n=s.items.indexOf(o))&&s.items.splice(n,1,a),i=s._render("item",t),c.classList.contains("active")&&il(i,"active"),ul(c,i)),s.lastQuery=null}removeOption(e,t){const s=this;e=Nr(e),s.uncacheValue(e),delete s.userOptions[e],delete s.options[e],s.lastQuery=null,s.trigger("option_remove",e),s.removeItem(e,t)}clearOptions(e){const t=(e||this.clearFilter).bind(this);this.loadedSearches={},this.userOptions={},this.clearCache();const s={};Kr(this.options,(e,i)=>{t(e,i)&&(s[i]=e)}),this.options=this.sifter.items=s,this.lastQuery=null,this.trigger("option_clear")}clearFilter(e,t){return this.items.indexOf(t)>=0}getOption(e,t=!1){const s=Qr(e);if(null===s)return null;const i=this.options[s];if(null!=i){if(i.$div)return i.$div;if(t)return this._render("option",i)}return null}getAdjacent(e,t,s="option"){var i;if(!e)return null;i="item"==s?this.controlChildren():this.dropdown_content.querySelectorAll("[data-selectable]");for(let s=0;s0?i[s+1]:i[s-1];return null}getItem(e){if("object"==typeof e)return e;var t=Qr(e);return null!==t?this.control.querySelector(`[data-value="${Gr(t)}"]`):null}addItems(e,t){var s=this,i=Array.isArray(e)?e:[e];const n=(i=i.filter(e=>-1===s.items.indexOf(e)))[i.length-1];i.forEach(e=>{s.isPending=e!==n,s.addItem(e,t)})}addItem(e,t){jr(this,t?[]:["change","dropdown_close"],()=>{var s,i;const n=this,o=n.settings.mode,a=Qr(e);if((!a||-1===n.items.indexOf(a)||("single"===o&&n.close(),"single"!==o&&n.settings.duplicates))&&null!==a&&n.options.hasOwnProperty(a)&&("single"===o&&n.clear(t),"multi"!==o||!n.isFull())){if(s=n._render("item",n.options[a]),n.control.contains(s)&&(s=s.cloneNode(!0)),i=n.isFull(),n.items.splice(n.caretPos,0,a),n.insertAtCaret(s),n.isSetup){if(!n.isPending&&n.settings.hideSelected){let e=n.getOption(a),t=n.getAdjacent(e,1);t&&n.setActiveOption(t)}n.isPending||n.settings.closeAfterSelect||n.refreshOptions(n.isFocused&&"single"!==o),0!=n.settings.closeAfterSelect&&n.isFull()?n.close():n.isPending||n.positionDropdown(),n.trigger("item_add",a,s),n.isPending||n.updateOriginalInput({silent:t})}(!n.isPending||!i&&n.isFull())&&(n.inputState(),n.refreshState())}})}removeItem(e=null,t){const s=this;if(!(e=s.getItem(e)))return;var i,n;const o=e.dataset.value;i=cl(e),e.remove(),e.classList.contains("active")&&(n=s.activeItems.indexOf(e),s.activeItems.splice(n,1),nl(e,"active")),s.items.splice(i,1),s.lastQuery=null,!s.settings.persist&&s.userOptions.hasOwnProperty(o)&&s.removeOption(o,t),i{}){3===arguments.length&&(t=arguments[2]),"function"!=typeof t&&(t=()=>{});var s,i=this,n=i.caretPos;if(e=e||i.inputValue(),!i.canCreate(e))return t(),!1;i.lock();var o=!1,a=e=>{if(i.unlock(),!e||"object"!=typeof e)return t();var s=Qr(e[i.settings.valueField]);if("string"!=typeof s)return t();i.setTextboxValue(),i.addOption(e,!0),i.setCaret(n),i.addItem(s),t(e),o=!0};return s="function"==typeof i.settings.create?i.settings.create.call(this,e,a):{[i.settings.labelField]:e,[i.settings.valueField]:e},o||a(s),!0}refreshItems(){var e=this;e.lastQuery=null,e.isSetup&&e.addItems(e.items),e.updateOriginalInput(),e.refreshState()}refreshState(){const e=this;e.refreshValidityState();const t=e.isFull(),s=e.isLocked;e.wrapper.classList.toggle("rtl",e.rtl);const i=e.wrapper.classList;var n;i.toggle("focus",e.isFocused),i.toggle("disabled",e.isDisabled),i.toggle("readonly",e.isReadOnly),i.toggle("required",e.isRequired),i.toggle("invalid",!e.isValid),i.toggle("locked",s),i.toggle("full",t),i.toggle("input-active",e.isFocused&&!e.isInputHidden),i.toggle("dropdown-active",e.isOpen),i.toggle("has-options",(n=e.options,0===Object.keys(n).length)),i.toggle("has-items",e.items.length>0)}refreshValidityState(){var e=this;e.input.validity&&(e.isValid=e.input.validity.valid,e.isInvalid=!e.isValid)}isFull(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems}updateOriginalInput(e={}){const t=this;var s,i;const n=t.input.querySelector('option[value=""]');if(t.is_select_tag){const o=[],a=t.input.querySelectorAll("option:checked").length;function r(e,s,i){return e||(e=Zr('")),e!=n&&t.input.append(e),o.push(e),(e!=n||a>0)&&(e.selected=!0),e}t.input.querySelectorAll("option:checked").forEach(e=>{e.selected=!1}),0==t.items.length&&"single"==t.settings.mode?r(n,"",""):t.items.forEach(e=>{s=t.options[e],i=s[t.settings.labelField]||"",o.includes(s.$option)?r(t.input.querySelector(`option[value="${Gr(e)}"]:not(:checked)`),e,i):s.$option=r(s.$option,e,i)})}else t.input.value=t.getValue();t.isSetup&&(e.silent||t.trigger("change",t.getValue()))}open(){var e=this;e.isLocked||e.isOpen||"multi"===e.settings.mode&&e.isFull()||(e.isOpen=!0,dl(e.focus_node,{"aria-expanded":"true"}),e.refreshState(),sl(e.dropdown,{visibility:"hidden",display:"block"}),e.positionDropdown(),sl(e.dropdown,{visibility:"visible",display:"block"}),e.focus(),e.trigger("dropdown_open",e.dropdown))}close(e=!0){var t=this,s=t.isOpen;e&&(t.setTextboxValue(),"single"===t.settings.mode&&t.items.length&&t.inputState()),t.isOpen=!1,dl(t.focus_node,{"aria-expanded":"false"}),sl(t.dropdown,{display:"none"}),t.settings.hideSelected&&t.clearActiveOption(),t.refreshState(),s&&t.trigger("dropdown_close",t.dropdown)}positionDropdown(){if("body"===this.settings.dropdownParent){var e=this.control,t=e.getBoundingClientRect(),s=e.offsetHeight+t.top+window.scrollY,i=t.left+window.scrollX;sl(this.dropdown,{width:t.width+"px",top:s+"px",left:i+"px"})}}clear(e){var t=this;if(t.items.length){var s=t.controlChildren();Kr(s,e=>{t.removeItem(e,!0)}),t.inputState(),e||t.updateOriginalInput(),t.trigger("clear")}}insertAtCaret(e){const t=this,s=t.caretPos,i=t.control;i.insertBefore(e,i.children[s]||null),t.setCaret(s+1)}deleteSelection(e){var t,s,i,n,o,a=this;t=e&&8===e.keyCode?-1:1,s={start:(o=a.control_input).selectionStart||0,length:(o.selectionEnd||0)-(o.selectionStart||0)};const r=[];if(a.activeItems.length)n=ll(a.activeItems,t),i=cl(n),t>0&&i++,Kr(a.activeItems,e=>r.push(e));else if((a.isFocused||"single"===a.settings.mode)&&a.items.length){const e=a.controlChildren();let i;t<0&&0===s.start&&0===s.length?i=e[a.caretPos-1]:t>0&&s.start===a.inputValue().length&&(i=e[a.caretPos]),void 0!==i&&r.push(i)}if(!a.shouldDelete(r,e))return!1;for(Vr(e,!0),void 0!==i&&a.setCaret(i);r.length;)a.removeItem(r.pop());return a.inputState(),a.positionDropdown(),a.refreshOptions(!1),!0}shouldDelete(e,t){const s=e.map(e=>e.dataset.value);return!(!s.length||"function"==typeof this.settings.onDelete&&!1===this.settings.onDelete(s,t))}advanceSelection(e,t){var s,i,n=this;n.rtl&&(e*=-1),n.inputValue().length||(Xr(hl,t)||Xr("shiftKey",t)?(i=(s=n.getLastActive(e))?s.classList.contains("active")?n.getAdjacent(s,e,"item"):s:e>0?n.control_input.nextElementSibling:n.control_input.previousElementSibling)&&(i.classList.contains("active")&&n.removeActiveItem(s),n.setActiveItemClass(i)):n.moveCaret(e))}moveCaret(e){}getLastActive(e){let t=this.control.querySelector(".last-active");if(t)return t;var s=this.control.querySelectorAll(".active");return s?ll(s,e):void 0}setCaret(e){this.caretPos=this.items.length}controlChildren(){return Array.from(this.control.querySelectorAll("[data-ts-item]"))}lock(){this.setLocked(!0)}unlock(){this.setLocked(!1)}setLocked(e=this.isReadOnly||this.isDisabled){this.isLocked=e,this.refreshState()}disable(){this.setDisabled(!0),this.close()}enable(){this.setDisabled(!1)}setDisabled(e){this.focus_node.tabIndex=e?-1:this.tabIndex,this.isDisabled=e,this.input.disabled=e,this.control_input.disabled=e,this.setLocked()}setReadOnly(e){this.isReadOnly=e,this.input.readOnly=e,this.control_input.readOnly=e,this.setLocked()}destroy(){var e=this,t=e.revertSettings;e.trigger("destroy"),e.off(),e.wrapper.remove(),e.dropdown.remove(),e.input.innerHTML=t.innerHTML,e.input.tabIndex=t.tabIndex,nl(e.input,"tomselected","ts-hidden-accessible"),e._destroy(),delete e.input.tomselect}render(e,t){var s,i;const n=this;if("function"!=typeof this.settings.render[e])return null;if(!(i=n.settings.render[e].call(this,t,Rr)))return null;if(i=Zr(i),"option"===e||"option_create"===e?t[n.settings.disabledField]?dl(i,{"aria-disabled":"true"}):dl(i,{"data-selectable":""}):"optgroup"===e&&(s=t.group[n.settings.optgroupValueField],dl(i,{"data-group":s}),t.group[n.settings.disabledField]&&dl(i,{"data-disabled":""})),"option"===e||"item"===e){const s=Nr(t[n.settings.valueField]);dl(i,{"data-value":s}),"item"===e?(il(i,n.settings.itemClass),dl(i,{"data-ts-item":""})):(il(i,n.settings.optionClass),dl(i,{role:"option",id:t.$id}),t.$div=i,n.options[s]=t)}return i}_render(e,t){const s=this.render(e,t);if(null==s)throw"HTMLElement expected";return s}clearCache(){Kr(this.options,e=>{e.$div&&(e.$div.remove(),delete e.$div)})}uncacheValue(e){const t=this.getOption(e);t&&t.remove()}canCreate(e){return this.settings.create&&e.length>0&&this.settings.createFilter.call(this,e)}hook(e,t,s){var i=this,n=i[t];i[t]=function(){var t,o;return"after"===e&&(t=n.apply(i,arguments)),o=s.apply(i,arguments),"instead"===e?o:("before"===e&&(t=n.apply(i,arguments)),t)}}}const bl=(e,t=!1)=>{e&&(e.preventDefault(),t&&e.stopPropagation())},vl=(e,t,s,i)=>{e.addEventListener(t,s,i)},yl=e=>{if(e.jquery)return e[0];if(e instanceof HTMLElement)return e;if(wl(e)){var t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}return document.querySelector(e)},wl=e=>"string"==typeof e&&e.indexOf("<")>-1,_l=(e,t,s,i)=>{e.addEventListener(t,s,i)},xl=(e,t=!1)=>{e&&(e.preventDefault(),t&&e.stopPropagation())},Sl=(e,t,s,i)=>{e.addEventListener(t,s,i)},Cl=e=>{if(e.jquery)return e[0];if(e instanceof HTMLElement)return e;if(kl(e)){var t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}return document.querySelector(e)},kl=e=>"string"==typeof e&&e.indexOf("<")>-1;fl.define("change_listener",function(){((e,t,s)=>{this.input.addEventListener("change",s,void 0)})(0,0,()=>{this.sync()})}),fl.define("checkbox_options",function(e){var t=this,s=t.onOptionSelect;t.settings.hideSelected=!1;const i=Object.assign({className:"tomselect-checkbox",checkedClassNames:void 0,uncheckedClassNames:void 0},e);var n=function(e,t){t?(e.checked=!0,i.uncheckedClassNames&&e.classList.remove(...i.uncheckedClassNames),i.checkedClassNames&&e.classList.add(...i.checkedClassNames)):(e.checked=!1,i.checkedClassNames&&e.classList.remove(...i.checkedClassNames),i.uncheckedClassNames&&e.classList.add(...i.uncheckedClassNames))},o=function(e){setTimeout(()=>{var t=e.querySelector("input."+i.className);t instanceof HTMLInputElement&&n(t,e.classList.contains("selected"))},1)};t.hook("after","setupTemplates",()=>{var e=t.settings.render.option;t.settings.render.option=(s,o)=>{var a=(e=>{if(e.jquery)return e[0];if(e instanceof HTMLElement)return e;if("string"==typeof(s=e)&&s.indexOf("<")>-1){var t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}var s;return document.querySelector(e)})(e.call(t,s,o)),r=document.createElement("input");i.className&&r.classList.add(i.className),r.addEventListener("click",function(e){bl(e)}),r.type="checkbox";const l=null==(c=s[t.settings.valueField])?null:(e=>"boolean"==typeof e?e?"1":"0":e+"")(c);var c;return n(r,!!(l&&t.items.indexOf(l)>-1)),a.prepend(r),a}}),t.on("item_remove",e=>{var s=t.getOption(e);s&&(s.classList.remove("selected"),o(s))}),t.on("item_add",e=>{var s=t.getOption(e);s&&o(s)}),t.hook("instead","onOptionSelect",(e,i)=>{if(i.classList.contains("selected"))return i.classList.remove("selected"),t.removeItem(i.dataset.value),t.refreshOptions(),void bl(e,!0);s.call(t,e,i),o(i)})}),fl.define("clear_button",function(e){const t=this,s=Object.assign({className:"clear-button",title:"Clear All",html:e=>`⨯
`},e);t.on("initialize",()=>{var e=(e=>{if(e.jquery)return e[0];if(e instanceof HTMLElement)return e;if("string"==typeof(s=e)&&s.indexOf("<")>-1){var t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}var s;return document.querySelector(e)})(s.html(s));e.addEventListener("click",e=>{t.isLocked||(t.clear(),"single"===t.settings.mode&&t.settings.allowEmptyOption&&t.addItem(""),e.preventDefault(),e.stopPropagation())}),t.control.appendChild(e)})}),fl.define("drag_drop",function(){var e=this;if("multi"!==e.settings.mode)return;var t=e.lock,s=e.unlock;let i,n=!0;e.hook("after","setupTemplates",()=>{var t=e.settings.render.item;e.settings.render.item=(s,o)=>{const a=(e=>{if(e.jquery)return e[0];if(e instanceof HTMLElement)return e;if("string"==typeof(s=e)&&s.indexOf("<")>-1){var t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}var s;return document.querySelector(e)})(t.call(e,s,o));var r;r=a,((e,t)=>{if(Array.isArray(e))e.forEach(t);else for(var s in e)e.hasOwnProperty(s)&&t(e[s],s)})({draggable:"true"},(e,t)=>{null==e?r.removeAttribute(t):r.setAttribute(t,""+e)});const l=e=>{e.preventDefault(),a.classList.add("ts-drag-over"),c(a,i)},c=(e,t)=>{var s,i,n;void 0!==t&&(((e,t)=>{do{var s;if(e==(t=null==(s=t)?void 0:s.previousElementSibling))return!0}while(t&&t.previousElementSibling);return!1})(t,a)?(i=t,null==(n=(s=e).parentNode)||n.insertBefore(i,s.nextSibling)):((e,t)=>{var s;null==(s=e.parentNode)||s.insertBefore(t,e)})(e,t))};return vl(a,"mousedown",e=>{n||((e,t=!1)=>{e&&(e.preventDefault(),t&&e.stopPropagation())})(e),e.stopPropagation()}),vl(a,"dragstart",e=>{i=a,setTimeout(()=>{a.classList.add("ts-dragging")},0)}),vl(a,"dragenter",l),vl(a,"dragover",l),vl(a,"dragleave",()=>{a.classList.remove("ts-drag-over")}),vl(a,"dragend",()=>{var t;document.querySelectorAll(".ts-drag-over").forEach(e=>e.classList.remove("ts-drag-over")),null==(t=i)||t.classList.remove("ts-dragging"),i=void 0;var s=[];e.control.querySelectorAll("[data-value]").forEach(e=>{if(e.dataset.value){let t=e.dataset.value;t&&s.push(t)}}),e.setValue(s)}),a}}),e.hook("instead","lock",()=>(n=!1,t.call(e))),e.hook("instead","unlock",()=>(n=!0,s.call(e)))}),fl.define("dropdown_header",function(e){const t=this,s=Object.assign({title:"Untitled",headerClass:"dropdown-header",titleRowClass:"dropdown-header-title",labelClass:"dropdown-header-label",closeClass:"dropdown-header-close",html:e=>''},e);t.on("initialize",()=>{var e=(e=>{if(e.jquery)return e[0];if(e instanceof HTMLElement)return e;if("string"==typeof(s=e)&&s.indexOf("<")>-1){var t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}var s;return document.querySelector(e)})(s.html(s)),i=e.querySelector("."+s.closeClass);i&&i.addEventListener("click",e=>{((e,t=!1)=>{e&&(e.preventDefault(),t&&e.stopPropagation())})(e,!0),t.close()}),t.dropdown.insertBefore(e,t.dropdown.firstChild)})}),fl.define("caret_position",function(){var e=this;e.hook("instead","setCaret",t=>{"single"!==e.settings.mode&&e.control.contains(e.control_input)?(t=Math.max(0,Math.min(e.items.length,t)))==e.caretPos||e.isPending||e.controlChildren().forEach((s,i)=>{i{if(!e.isFocused)return;const s=e.getLastActive(t);if(s){const r=((e,t)=>{if(!e)return-1;t=t||e.nodeName;for(var s=0;e=e.previousElementSibling;)e.matches(t)&&s++;return s})(s);e.setCaret(t>0?r+1:r),e.setActiveItem(),n=s,i=[],((e,t)=>{if(Array.isArray(e))e.forEach(t);else for(var s in e)e.hasOwnProperty(s)&&t(e[s])})(["last-active"],e=>{"string"==typeof e&&(e=e.trim().split(/[\t\n\f\r\s]/)),Array.isArray(e)&&(i=i.concat(e))}),a=i.filter(Boolean),(o=n,Array.isArray(o)||(o=[o]),n=o).map(e=>{a.map(t=>{e.classList.remove(t)})})}else e.setCaret(e.caretPos+t);var i,n,o,a})}),fl.define("dropdown_input",function(){const e=this;e.settings.shouldOpen=!0,e.hook("before","setup",()=>{e.focus_node=e.control,((e,...t)=>{var s,i=(e=>{var t=[];return((e,t)=>{if(Array.isArray(e))e.forEach(t);else for(var s in e)e.hasOwnProperty(s)&&t(e[s])})(e,e=>{"string"==typeof e&&(e=e.trim().split(/[\t\n\f\r\s]/)),Array.isArray(e)&&(t=t.concat(e))}),t.filter(Boolean)})(t);(s=e,Array.isArray(s)||(s=[s]),e=s).map(e=>{i.map(t=>{e.classList.add(t)})})})(e.control_input,"dropdown-input");const t=yl('');t.append(e.control_input),e.dropdown.insertBefore(t,e.dropdown.firstChild);const s=yl('
');s.placeholder=e.settings.placeholder||"",e.control.append(s)}),e.on("initialize",()=>{e.control_input.addEventListener("keydown",t=>{switch(t.keyCode){case 27:return e.isOpen&&(((e,t=!1)=>{e&&(e.preventDefault(),t&&e.stopPropagation())})(t,!0),e.close()),void e.clearActiveItems();case 9:e.focus_node.tabIndex=-1}return e.onKeyDown.call(e,t)}),e.on("blur",()=>{e.focus_node.tabIndex=e.isDisabled?-1:e.tabIndex}),e.on("dropdown_open",()=>{e.control_input.focus()});const t=e.onBlur;e.hook("instead","onBlur",s=>{if(!s||s.relatedTarget!=e.control_input)return t.call(e)}),e.control_input.addEventListener("blur",()=>e.onBlur(),void 0),e.hook("before","close",()=>{e.isOpen&&e.focus_node.focus({preventScroll:!0})})})}),fl.define("input_autogrow",function(){var e=this;e.on("initialize",()=>{var t=document.createElement("span"),s=e.control_input;t.style.cssText="position:absolute; top:-99999px; left:-99999px; width:auto; padding:0; white-space:pre; ",e.wrapper.appendChild(t);for(const e of["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"])t.style[e]=s.style[e];var i=()=>{t.textContent=s.value,s.style.width=t.clientWidth+"px"};i(),e.on("update item_add item_remove",i),_l(s,"input",i),_l(s,"keyup",i),_l(s,"blur",i),_l(s,"update",i)})}),fl.define("no_backspace_delete",function(){var e=this,t=e.deleteSelection;this.hook("instead","deleteSelection",s=>!!e.activeItems.length&&t.call(e,s))}),fl.define("no_active_items",function(){this.hook("instead","setActiveItem",()=>{}),this.hook("instead","selectAll",()=>{})}),fl.define("optgroup_columns",function(){var e=this,t=e.onKeyDown;e.hook("instead","onKeyDown",s=>{var i,n,o,a;if(!e.isOpen||37!==s.keyCode&&39!==s.keyCode)return t.call(e,s);e.ignoreHover=!0,a=(e=>{for(;e&&e.matches;){if(e.matches("[data-group]"))return e;e=e.parentNode}})(e.activeOption),i=((e,t)=>{if(!e)return-1;t=t||e.nodeName;for(var s=0;e=e.previousElementSibling;)e.matches(t)&&s++;return s})(e.activeOption,"[data-selectable]"),a&&(a=37===s.keyCode?a.previousSibling:a.nextSibling)&&(n=(o=a.querySelectorAll("[data-selectable]"))[Math.min(o.length-1,i)])&&e.setActiveOption(n)})}),fl.define("remove_button",function(e){const t=Object.assign({label:"×",title:"Remove",className:"remove",append:!0},e);var s=this;if(t.append){var i='
/g,">").replace(/"/g,""")+'">'+t.label+"";s.hook("after","setupTemplates",()=>{var e=s.settings.render.item;s.settings.render.item=(t,n)=>{var o=Cl(e.call(s,t,n)),a=Cl(i);return o.appendChild(a),Sl(a,"mousedown",e=>{xl(e,!0)}),Sl(a,"click",e=>{s.isLocked||(xl(e,!0),s.isLocked||s.shouldDelete([o],e)&&(s.removeItem(o),s.refreshOptions(!1),s.inputState()))}),o}})}}),fl.define("restore_on_backspace",function(e){const t=this,s=Object.assign({text:e=>e[t.settings.labelField]},e);t.on("item_remove",function(e){if(t.isFocused&&""===t.control_input.value.trim()){var i=t.options[e];i&&t.setTextboxValue(s.text.call(t,i))}})}),fl.define("virtual_scroll",function(){const e=this,t=e.canLoad,s=e.clearActiveOption,i=e.loadCallback;var n,o,a={},r=!1,l=[];if(e.settings.shouldLoadMore||(e.settings.shouldLoadMore=()=>{if(n.clientHeight/(n.scrollHeight-n.scrollTop)>.9)return!0;if(e.activeOption){var t=e.selectable();if(Array.from(t).indexOf(e.activeOption)>=t.length-2)return!0}return!1}),!e.settings.firstUrl)throw"virtual_scroll plugin requires a firstUrl() method";e.settings.sortField=[{field:"$order"},{field:"$score"}];const c=t=>!("number"==typeof e.settings.maxOptions&&n.children.length>=e.settings.maxOptions||!(t in a)||!a[t]),d=(t,s)=>e.items.indexOf(s)>=0||l.indexOf(s)>=0;e.setNextUrl=(e,t)=>{a[e]=t},e.getUrl=t=>{if(t in a){const e=a[t];return a[t]=!1,e}return e.clearPagination(),e.settings.firstUrl.call(e,t)},e.clearPagination=()=>{a={}},e.hook("instead","clearActiveOption",()=>{if(!r)return s.call(e)}),e.hook("instead","canLoad",s=>s in a?c(s):t.call(e,s)),e.hook("instead","loadCallback",(t,s)=>{if(r){if(o){const s=t[0];void 0!==s&&(o.dataset.value=s[e.settings.valueField])}}else e.clearOptions(d);i.call(e,t,s),r=!1}),e.hook("after","refreshOptions",()=>{const t=e.lastValue;var s;c(t)?(s=e.render("loading_more",{query:t}))&&(s.setAttribute("data-selectable",""),o=s):t in a&&!n.querySelector(".no-results")&&(s=e.render("no_more_results",{query:t})),s&&(((e,...t)=>{var s,i=(e=>{var t=[];return((e,t)=>{if(Array.isArray(e))e.forEach(t);else for(var s in e)e.hasOwnProperty(s)&&t(e[s])})(e,e=>{"string"==typeof e&&(e=e.trim().split(/[\t\n\f\r\s]/)),Array.isArray(e)&&(t=t.concat(e))}),t.filter(Boolean)})(t);(s=e,Array.isArray(s)||(s=[s]),e=s).map(e=>{i.map(t=>{e.classList.add(t)})})})(s,e.settings.optionClass),n.append(s))}),e.on("initialize",()=>{l=Object.keys(e.options),n=e.dropdown_content,e.settings.render=Object.assign({},{loading_more:()=>'
Loading more results ...
',no_more_results:()=>'
No more results
'},e.settings.render),n.addEventListener("scroll",()=>{e.settings.shouldLoadMore.call(e)&&c(e.lastValue)&&(r||(r=!0,e.load.call(e,e.lastValue)))})})});const Al=fl,El={};let Tl;"undefined"!=typeof lpDataAdmin&&(Tl=lpDataAdmin.lp_rest_url,El.admin={apiAdminNotice:Tl+"lp/v1/admin/tools/admin-notices",apiAddons:Tl+"lp/v1/addon/all",apiAddonAction:Tl+"lp/v1/addon/action-n",apiAddonsPurchase:Tl+"lp/v1/addon/info-addons-purchase",apiSearchCourses:Tl+"lp/v1/admin/tools/search-course",apiSearchUsers:Tl+"lp/v1/admin/tools/search-user",apiAssignUserCourse:Tl+"lp/v1/admin/tools/assign-user-course",apiUnAssignUserCourse:Tl+"lp/v1/admin/tools/unassign-user-course"}),"undefined"!=typeof lpData&&(Tl=lpData.lp_rest_url,El.frontend={apiWidgets:Tl+"lp/v1/widgets/api",apiCourses:Tl+"lp/v1/courses/archive-course",apiAJAX:Tl+"lp/v1/load_content_via_ajax/",apiProfileCoverImage:Tl+"lp/v1/profile/cover-image"}),Tl&&(El.apiCourses=Tl+"lp/v1/courses/",El.apiEditCoursesArchiveBlock=Tl+"lp/v1/courses/edit-archive-block",El.apiCoursesSuggest=Tl+"lp/v1/courses/courses-suggest");const Ll=El,Il={buildTomSelect(e,t,s,i,n){if(!e)return;const o={plugins:{remove_button:{title:"Remove this item"},dropdown_input:{}},onInitialize(){},onItemAdd(t){if(s){const o=Array.from(e.selectedOptions).map(e=>e.value);o.push(t),i.id_not_in=o.join(","),s("",i,n)}}};return s&&(o.load=(t,o)=>{const a=Array.from(e.selectedOptions).map(e=>e.value);i.id_not_in=a.join(","),s(t,i,Il.callBackTomSelectSearchAPI(o,n))}),(t={...o,...t}).options,new Al(e,t)},callBackTomSelectSearchAPI:(e,t)=>({success:s=>{const i=t.success(s);e(i)}}),fetchCourses(t="",s={},i){const n=Ll.admin.apiSearchCourses;s.search=t;const o={headers:{"Content-Type":"application/json","X-WP-Nonce":lpDataAdmin.nonce},method:"POST",body:JSON.stringify(s)};e.lpFetchAPI(n,o,i)},fetchUsers(t="",s={},i){const n=Ll.admin.apiSearchUsers;s.search=t;const o={headers:{"Content-Type":"application/json","X-WP-Nonce":lpDataAdmin.nonce},method:"POST",body:JSON.stringify(s)};e.lpFetchAPI(n,o,i)}},Dl=(e,t={})=>e?null!=e.tomSelectInstance?null:void(e.tomSelectInstance=Il.buildTomSelect(e,t)):null,ql=()=>{const t=document.querySelectorAll("select.lp-tom-select:not(.loaded)");t.length&&t.forEach(t=>{t.closest(".widget-liquid-left")||((t,s={},i={})=>{var n,o;if(!t)return;if(t.classList.contains("loaded"))return;t.classList.add("loaded");const a=t.dataset?.saved?JSON.parse(t.dataset.saved):0,r=t?.dataset?.struct?JSON.parse(t.dataset.struct):"";if(!r)return void Dl(t);const l=(e,t)=>{const s=t.parentElement;return s.tagName.toLowerCase()===e?s:"html"!==s.tagName.toLowerCase()&&l(e,s)},c=l("form",t);if(c){const e=c.querySelector('input[name="'+t.getAttribute("name")+'"]');e&&e.remove()}const d=null!==(n=r.dataSendApi)&&void 0!==n?n:"",u=null!==(o=r.urlApi)&&void 0!==o?o:"",h={...r.setting,...s};if(!u)return void Dl(t,h);const p=(t="",s,i)=>{const n=u,o={current_ids:a,...d,...s};o.search=t;const r={headers:{"Content-Type":"application/json","X-WP-Nonce":lpData.nonce},method:"POST",body:JSON.stringify(o)};e.lpFetchAPI(n,r,i)},m={success:e=>{((e,t,s,i,n={},o)=>{if(!(e&&t&&s&&i&&o))return;const a=e=>{if(!s.keyGetValue?.text||!s.keyGetValue.key_render)return;let t=s.keyGetValue.text;for(const[i,n]of Object.entries(s.keyGetValue.key_render))t=t.replace(new RegExp(`{{${n}}}`,"g"),e[n]);return t},r=t.dataset?.saved?JSON.parse(t.dataset.saved):0;let l=[];e.data[s.dataType].length>0&&(l=e.data[s.dataType].map(e=>({value:e[s.keyGetValue.value],text:a(e)})));const c={items:r,render:{item:(e,t)=>`
\n\t\t\t\t\t\t${e.text}
\n\t\t\t\t\t`},onChange:e=>{e.length<1&&(t.value="")},...n,options:l};null!=t.tomSelectInstance?t.tomSelectInstance.addOptions(l):t.tomSelectInstance=Il.buildTomSelect(t,c,i,{},o)})(e,t,r,p,h,m)}};let g=[];"object"==typeof a&&(g=Object.entries(a).map(([e,t])=>({key:e,value:t}))),d?.id_not_in&&(g=[...g,...d.id_not_in]),i.id_not_in=g.join(","),p("",i,m)})(t)})};document.addEventListener("submit",e=>{const t=e.target.closest(".cb-search-form");if(!t)return;const s=t.querySelector(".cb-search-btn");s&&(s.classList.add("loading"),s.disabled=!0)}),(()=>{try{new l,new k,document.querySelector(".lp-btn-generate-course-with-ai, .lp-btn-warning-enable-ai")&&new L({autoInsertButton:!1,isCourseBuilder:!0,redirectDelayMs:1200}),document.querySelector(".cb-course-edit-ai-btn.lp-btn-generate-with-ai")&&new $({autoInsertButtons:!1,isCourseBuilder:!0}),new F,new H,new Q,new W,new j,new V,new X,new or,new ar,new cr({isCourseBuilder:!0}),C(),(()=>{const e=document.getElementById("lp-course-builder-sidebar"),t=document.querySelector(".lp-cb-sidebar__toggle"),s=document.getElementById("lp-course-builder"),i="lp_cb_sidebar_collapsed";e&&t&&("true"===localStorage.getItem(i)&&(e.classList.add("is-collapsed"),s&&s.classList.add("has-collapsed-sidebar")),t.addEventListener("click",()=>{const t=!e.classList.contains("is-collapsed");e.classList.toggle("is-collapsed"),s&&s.classList.toggle("has-collapsed-sidebar"),localStorage.setItem(i,t?"true":"false")}))})(),(()=>{const e=document.getElementById("lp-course-builder-sidebar");e&&"true"!==e.dataset.subMenusInitialized&&(e.dataset.subMenusInitialized="true",e.addEventListener("click",t=>{const s=t.target.closest(".lp-cb-sidebar__sub-menu-toggle");if(!s||!e.contains(s))return;const i=s.closest(".lp-cb-sidebar__item.has-sub-menu");if(!i)return;t.preventDefault();const n=i.classList.toggle("is-expanded");s.setAttribute("aria-expanded",n?"true":"false")}))})(),(()=>{const t=".cb-header-action-expanded",s=".course-action-expanded",i="is-open",o=(e=null)=>{document.querySelectorAll(`${t}.${i}`).forEach(t=>{if(e&&t===e)return;t.classList.remove(i);const n=t.querySelector(s);n&&n.setAttribute("aria-expanded","false")})};document.addEventListener("click",a=>{const r=a.target,l=r.closest(s);if(l){a.preventDefault(),a.stopPropagation();const e=l.closest(t);if(!e)return;const s=!e.classList.contains(i);return o(e),e.classList.toggle(i,s),void l.setAttribute("aria-expanded",s?"true":"false")}r.closest(t)||o();const c=document.querySelectorAll(".lp-cb-item-action-expand");if(r.closest(".lp-cb-item-action-expand-toggle")){const t=r.closest(".lp-cb-item-action-wrap").querySelector(".lp-cb-item-action-expand");t.classList.toggle(e.lpClassName.hidden),c.forEach(s=>{s!==t&&s.classList.add(e.lpClassName.hidden)})}if(r.closest(".lp-cb-item-action-expand-toggle")||c.forEach(t=>{t.classList.add(e.lpClassName.hidden)}),r.closest(".lp-cb-item-action")){const t=r.closest(".lp-cb-item-action"),s=t.closest(".lp-cb-item-action-wrap").querySelector(".lp-cb-item-action-expand-toggle"),i=JSON.parse(t.dataset.send);e.lpSetLoadingEl(s,1),s.querySelector("svg");const o={success:e=>{const{message:s,status:o,data:a}=e;n.W(s,o),"success"===o&&(a.redirect_url?window.location.href=a.redirect_url:a.html?t.closest("li.course").outerHTML=a.html:"delete"===i.action_type&&t.closest("li.course").remove())},error:e=>{n.W(e,"error")},completed:()=>{e.lpSetLoadingEl(s,0)}};window.lpAJAXG.fetchAJAX(i,o)}}),document.addEventListener("keydown",e=>{"Escape"===e.key&&o()})})()}catch(e){console.error("Error initializing builder components:",e)}})(),document.addEventListener("click",e=>{try{ql()}catch(e){console.warn("Error initializing TomSelect:",e)}}),document.addEventListener("DOMContentLoaded",()=>{try{ql()}catch(e){console.warn("Error initializing TomSelect on DOMContentLoaded:",e)}try{!function(){const e=new WeakSet;document.addEventListener("click",t=>{const s=t.target.closest("ul.lp-meta-box__course-tab__tabs a");if(!s)return;const i=s.getAttribute("href");i&&i.includes("material")&&setTimeout(()=>{try{const t=document.querySelector(i+" #lp-material-container");t&&!e.has(t)&&(e.add(t),new U(t))}catch(e){console.error("Error initializing BuilderMaterial:",e)}},100)})}()}catch(e){console.error("Error initializing BuilderMaterial:",e)}}),e?.lpOnElementReady&&e.lpOnElementReady("select.lp-tom-select",()=>{try{ql()}catch(e){console.warn("Error initializing TomSelect:",e)}}),window.lpFindTomSelect=ql})()})();