scope360-core 0.0.425 → 0.0.426

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,7 +39,7 @@
39
39
  `)>-1?t.split(`
40
40
  `):t}function $L(t,e){const{element:n,datasetIndex:r,index:o}=e,i=t.getDatasetMeta(r).controller,{label:s,value:l}=i.getLabelAndValue(o);return{chart:t,label:s,parsed:i.getParsed(o),raw:t.data.datasets[r].data[o],formattedValue:l,dataset:i.getDataset(),dataIndex:o,datasetIndex:r,element:n}}function C2(t,e){const n=t.chart.ctx,{body:r,footer:o,title:i}=t,{boxWidth:s,boxHeight:l}=e,d=mn(e.bodyFont),c=mn(e.titleFont),u=mn(e.footerFont),h=i.length,p=o.length,f=r.length,_=Sn(e.padding);let m=_.height,g=0,b=r.reduce((C,x)=>C+x.before.length+x.lines.length+x.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,h&&(m+=h*c.lineHeight+(h-1)*e.titleSpacing+e.titleMarginBottom),b){const C=e.displayColors?Math.max(l,d.lineHeight):d.lineHeight;m+=f*C+(b-f)*d.lineHeight+(b-1)*e.bodySpacing}p&&(m+=e.footerMarginTop+p*u.lineHeight+(p-1)*e.footerSpacing);let w=0;const y=function(C){g=Math.max(g,n.measureText(C).width+w)};return n.save(),n.font=c.string,je(t.title,y),n.font=d.string,je(t.beforeBody.concat(t.afterBody),y),w=e.displayColors?s+2+e.boxPadding:0,je(r,C=>{je(C.before,y),je(C.lines,y),je(C.after,y)}),w=0,n.font=u.string,je(t.footer,y),n.restore(),g+=_.width,{width:g,height:m}}function TL(t,e){const{y:n,height:r}=e;return n<r/2?"top":n>t.height-r/2?"bottom":"center"}function EL(t,e,n,r){const{x:o,width:i}=r,s=n.caretSize+n.caretPadding;if(t==="left"&&o+i+s>e.width||t==="right"&&o-i-s<0)return!0}function OL(t,e,n,r){const{x:o,width:i}=n,{width:s,chartArea:{left:l,right:d}}=t;let c="center";return r==="center"?c=o<=(l+d)/2?"left":"right":o<=i/2?c="left":o>=s-i/2&&(c="right"),EL(c,t,e,n)&&(c="center"),c}function M2(t,e,n){const r=n.yAlign||e.yAlign||TL(t,n);return{xAlign:n.xAlign||e.xAlign||OL(t,e,n,r),yAlign:r}}function VL(t,e){let{x:n,width:r}=t;return e==="right"?n-=r:e==="center"&&(n-=r/2),n}function PL(t,e,n){let{y:r,height:o}=t;return e==="top"?r+=n:e==="bottom"?r-=o+n:r-=o/2,r}function S2(t,e,n,r){const{caretSize:o,caretPadding:i,cornerRadius:s}=t,{xAlign:l,yAlign:d}=n,c=o+i,{topLeft:u,topRight:h,bottomLeft:p,bottomRight:f}=Ni(s);let _=VL(e,l);const m=PL(e,d,c);return d==="center"?l==="left"?_+=c:l==="right"&&(_-=c):l==="left"?_-=Math.max(u,p)+o:l==="right"&&(_+=Math.max(h,f)+o),{x:Mn(_,0,r.width-e.width),y:Mn(m,0,r.height-e.height)}}function Tl(t,e,n){const r=Sn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-r.right:t.x+r.left}function L2(t){return ir([],kr(t))}function BL(t,e,n){return oo(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function D2(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const $2={beforeTitle:wr,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,r=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(r>0&&e.dataIndex<r)return n[e.dataIndex]}return""},afterTitle:wr,beforeBody:wr,beforeLabel:wr,label(t){if(this&&this.options&&this.options.mode==="dataset")return t.label+": "+t.formattedValue||t.formattedValue;let e=t.dataset.label||"";e&&(e+=": ");const n=t.formattedValue;return Ge(n)||(e+=n),e},labelColor(t){const n=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{borderColor:n.borderColor,backgroundColor:n.backgroundColor,borderWidth:n.borderWidth,borderDash:n.borderDash,borderDashOffset:n.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(t){const n=t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex);return{pointStyle:n.pointStyle,rotation:n.rotation}},afterLabel:wr,afterBody:wr,beforeFooter:wr,footer:wr,afterFooter:wr};function Jt(t,e,n,r){const o=t[e].call(n,r);return typeof o>"u"?$2[e].call(n,r):o}class T2 extends ji{static positioners=qi;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,r=this.options.setContext(this.getContext()),o=r.enabled&&n.options.animation&&r.animations,i=new $3(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(i)),i}getContext(){return this.$context||(this.$context=BL(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:r}=n,o=Jt(r,"beforeTitle",this,e),i=Jt(r,"title",this,e),s=Jt(r,"afterTitle",this,e);let l=[];return l=ir(l,kr(o)),l=ir(l,kr(i)),l=ir(l,kr(s)),l}getBeforeBody(e,n){return L2(Jt(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:r}=n,o=[];return je(e,i=>{const s={before:[],lines:[],after:[]},l=D2(r,i);ir(s.before,kr(Jt(l,"beforeLabel",this,i))),ir(s.lines,Jt(l,"label",this,i)),ir(s.after,kr(Jt(l,"afterLabel",this,i))),o.push(s)}),o}getAfterBody(e,n){return L2(Jt(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:r}=n,o=Jt(r,"beforeFooter",this,e),i=Jt(r,"footer",this,e),s=Jt(r,"afterFooter",this,e);let l=[];return l=ir(l,kr(o)),l=ir(l,kr(i)),l=ir(l,kr(s)),l}_createItems(e){const n=this._active,r=this.chart.data,o=[],i=[],s=[];let l=[],d,c;for(d=0,c=n.length;d<c;++d)l.push($L(this.chart,n[d]));return e.filter&&(l=l.filter((u,h,p)=>e.filter(u,h,p,r))),e.itemSort&&(l=l.sort((u,h)=>e.itemSort(u,h,r))),je(l,u=>{const h=D2(e.callbacks,u);o.push(Jt(h,"labelColor",this,u)),i.push(Jt(h,"labelPointStyle",this,u)),s.push(Jt(h,"labelTextColor",this,u))}),this.labelColors=o,this.labelPointStyles=i,this.labelTextColors=s,this.dataPoints=l,l}update(e,n){const r=this.options.setContext(this.getContext()),o=this._active;let i,s=[];if(!o.length)this.opacity!==0&&(i={opacity:0});else{const l=qi[r.position].call(this,o,this._eventPosition);s=this._createItems(r),this.title=this.getTitle(s,r),this.beforeBody=this.getBeforeBody(s,r),this.body=this.getBody(s,r),this.afterBody=this.getAfterBody(s,r),this.footer=this.getFooter(s,r);const d=this._size=C2(this,r),c=Object.assign({},l,d),u=M2(this.chart,r,c),h=S2(r,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,i={opacity:1,x:h.x,y:h.y,width:d.width,height:d.height,caretX:l.x,caretY:l.y}}this._tooltipItems=s,this.$context=void 0,i&&this._resolveAnimations().update(this,i),e&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,r,o){const i=this.getCaretPosition(e,r,o);n.lineTo(i.x1,i.y1),n.lineTo(i.x2,i.y2),n.lineTo(i.x3,i.y3)}getCaretPosition(e,n,r){const{xAlign:o,yAlign:i}=this,{caretSize:s,cornerRadius:l}=r,{topLeft:d,topRight:c,bottomLeft:u,bottomRight:h}=Ni(l),{x:p,y:f}=e,{width:_,height:m}=n;let g,b,w,y,C,x;return i==="center"?(C=f+m/2,o==="left"?(g=p,b=g-s,y=C+s,x=C-s):(g=p+_,b=g+s,y=C-s,x=C+s),w=g):(o==="left"?b=p+Math.max(d,u)+s:o==="right"?b=p+_-Math.max(c,h)-s:b=this.caretX,i==="top"?(y=f,C=y-s,g=b-s,w=b+s):(y=f+m,C=y+s,g=b+s,w=b-s),x=y),{x1:g,x2:b,x3:w,y1:y,y2:C,y3:x}}drawTitle(e,n,r){const o=this.title,i=o.length;let s,l,d;if(i){const c=z1(r.rtl,this.x,this.width);for(e.x=Tl(this,r.titleAlign,r),n.textAlign=c.textAlign(r.titleAlign),n.textBaseline="middle",s=mn(r.titleFont),l=r.titleSpacing,n.fillStyle=r.titleColor,n.font=s.string,d=0;d<i;++d)n.fillText(o[d],c.x(e.x),e.y+s.lineHeight/2),e.y+=s.lineHeight+l,d+1===i&&(e.y+=r.titleMarginBottom-l)}}_drawColorBox(e,n,r,o,i){const s=this.labelColors[r],l=this.labelPointStyles[r],{boxHeight:d,boxWidth:c}=i,u=mn(i.bodyFont),h=Tl(this,"left",i),p=o.x(h),f=d<u.lineHeight?(u.lineHeight-d)/2:0,_=n.y+f;if(i.usePointStyle){const m={radius:Math.min(c,d)/2,pointStyle:l.pointStyle,rotation:l.rotation,borderWidth:1},g=o.leftForLtr(p,c)+c/2,b=_+d/2;e.strokeStyle=i.multiKeyBackground,e.fillStyle=i.multiKeyBackground,E1(e,m,g,b),e.strokeStyle=s.borderColor,e.fillStyle=s.backgroundColor,E1(e,m,g,b)}else{e.lineWidth=Ee(s.borderWidth)?Math.max(...Object.values(s.borderWidth)):s.borderWidth||1,e.strokeStyle=s.borderColor,e.setLineDash(s.borderDash||[]),e.lineDashOffset=s.borderDashOffset||0;const m=o.leftForLtr(p,c),g=o.leftForLtr(o.xPlus(p,1),c-2),b=Ni(s.borderRadius);Object.values(b).some(w=>w!==0)?(e.beginPath(),e.fillStyle=i.multiKeyBackground,P1(e,{x:m,y:_,w:c,h:d,radius:b}),e.fill(),e.stroke(),e.fillStyle=s.backgroundColor,e.beginPath(),P1(e,{x:g,y:_+1,w:c-2,h:d-2,radius:b}),e.fill()):(e.fillStyle=i.multiKeyBackground,e.fillRect(m,_,c,d),e.strokeRect(m,_,c,d),e.fillStyle=s.backgroundColor,e.fillRect(g,_+1,c-2,d-2))}e.fillStyle=this.labelTextColors[r]}drawBody(e,n,r){const{body:o}=this,{bodySpacing:i,bodyAlign:s,displayColors:l,boxHeight:d,boxWidth:c,boxPadding:u}=r,h=mn(r.bodyFont);let p=h.lineHeight,f=0;const _=z1(r.rtl,this.x,this.width),m=function(T){n.fillText(T,_.x(e.x+f),e.y+p/2),e.y+=p+i},g=_.textAlign(s);let b,w,y,C,x,L,M;for(n.textAlign=s,n.textBaseline="middle",n.font=h.string,e.x=Tl(this,g,r),n.fillStyle=r.bodyColor,je(this.beforeBody,m),f=l&&g!=="right"?s==="center"?c/2+u:c+2+u:0,C=0,L=o.length;C<L;++C){for(b=o[C],w=this.labelTextColors[C],n.fillStyle=w,je(b.before,m),y=b.lines,l&&y.length&&(this._drawColorBox(n,e,C,_,r),p=Math.max(h.lineHeight,d)),x=0,M=y.length;x<M;++x)m(y[x]),p=h.lineHeight;je(b.after,m)}f=0,p=h.lineHeight,je(this.afterBody,m),e.y-=i}drawFooter(e,n,r){const o=this.footer,i=o.length;let s,l;if(i){const d=z1(r.rtl,this.x,this.width);for(e.x=Tl(this,r.footerAlign,r),e.y+=r.footerMarginTop,n.textAlign=d.textAlign(r.footerAlign),n.textBaseline="middle",s=mn(r.footerFont),n.fillStyle=r.footerColor,n.font=s.string,l=0;l<i;++l)n.fillText(o[l],d.x(e.x),e.y+s.lineHeight/2),e.y+=s.lineHeight+r.footerSpacing}}drawBackground(e,n,r,o){const{xAlign:i,yAlign:s}=this,{x:l,y:d}=e,{width:c,height:u}=r,{topLeft:h,topRight:p,bottomLeft:f,bottomRight:_}=Ni(o.cornerRadius);n.fillStyle=o.backgroundColor,n.strokeStyle=o.borderColor,n.lineWidth=o.borderWidth,n.beginPath(),n.moveTo(l+h,d),s==="top"&&this.drawCaret(e,n,r,o),n.lineTo(l+c-p,d),n.quadraticCurveTo(l+c,d,l+c,d+p),s==="center"&&i==="right"&&this.drawCaret(e,n,r,o),n.lineTo(l+c,d+u-_),n.quadraticCurveTo(l+c,d+u,l+c-_,d+u),s==="bottom"&&this.drawCaret(e,n,r,o),n.lineTo(l+f,d+u),n.quadraticCurveTo(l,d+u,l,d+u-f),s==="center"&&i==="left"&&this.drawCaret(e,n,r,o),n.lineTo(l,d+h),n.quadraticCurveTo(l,d,l+h,d),n.closePath(),n.fill(),o.borderWidth>0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,r=this.$animations,o=r&&r.x,i=r&&r.y;if(o||i){const s=qi[e.position].call(this,this._active,this._eventPosition);if(!s)return;const l=this._size=C2(this,e),d=Object.assign({},s,this._size),c=M2(n,e,d),u=S2(e,d,c,n);(o._to!==u.x||i._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=l.width,this.height=l.height,this.caretX=s.x,this.caretY=s.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let r=this.opacity;if(!r)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},i={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const s=Sn(n.padding),l=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&l&&(e.save(),e.globalAlpha=r,this.drawBackground(i,e,o,n),xM(e,n.textDirection),i.y+=s.top,this.drawTitle(i,e,n),this.drawBody(i,e,n),this.drawFooter(i,e,n),kM(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const r=this._active,o=e.map(({datasetIndex:l,index:d})=>{const c=this.chart.getDatasetMeta(l);if(!c)throw new Error("Cannot find a dataset at index "+l);return{datasetIndex:l,element:c.data[d],index:d}}),i=!sl(r,o),s=this._positionChanged(o,n);(i||s)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,i=this._active||[],s=this._getActiveElements(e,i,n,r),l=this._positionChanged(s,e),d=n||!sl(s,i)||l;return d&&(this._active=s,(o.enabled||o.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),d}_getActiveElements(e,n,r,o){const i=this.options;if(e.type==="mouseout")return[];if(!o)return n.filter(l=>this.chart.data.datasets[l.datasetIndex]&&this.chart.getDatasetMeta(l.datasetIndex).controller.getParsed(l.index)!==void 0);const s=this.chart.getElementsAtEventForMode(e,i.mode,i,r);return i.reverse&&s.reverse(),s}_positionChanged(e,n){const{caretX:r,caretY:o,options:i}=this,s=qi[i.position].call(this,e,n);return s!==!1&&(r!==s.x||o!==s.y)}}var NL={id:"tooltip",_element:T2,positioners:qi,afterInit(t,e,n){n&&(t.tooltip=new T2({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.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:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.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:$2},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const FL=(t,e,n,r)=>(typeof e=="string"?(n=t.push(e)-1,r.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function AL(t,e,n,r){const o=t.indexOf(e);if(o===-1)return FL(t,e,n,r);const i=t.lastIndexOf(e);return o!==i?n:o}const RL=(t,e)=>t===null?null:Mn(Math.round(t),0,e);function E2(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}class O2 extends Zo{static id="category";static defaults={ticks:{callback:E2}};constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const n=this._addedLabels;if(n.length){const r=this.getLabels();for(const{index:o,label:i}of n)r[o]===i&&r.splice(o,1);this._addedLabels=[]}super.init(e)}parse(e,n){if(Ge(e))return null;const r=this.getLabels();return n=isFinite(n)&&r[n]===e?n:AL(r,e,He(n,e),this._addedLabels),RL(n,r.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let{min:r,max:o}=this.getMinMax(!0);this.options.bounds==="ticks"&&(e||(r=0),n||(o=this.getLabels().length-1)),this.min=r,this.max=o}buildTicks(){const e=this.min,n=this.max,r=this.options.offset,o=[];let i=this.getLabels();i=e===0&&n===i.length-1?i:i.slice(e,n+1),this._valueRange=Math.max(i.length-(r?0:1),1),this._startValue=this.min-(r?.5:0);for(let s=e;s<=n;s++)o.push({value:s});return o}getLabelForValue(e){return E2.call(this,e)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(e){return typeof e!="number"&&(e=this.parse(e)),e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function zL(t,e){const n=[],{bounds:o,step:i,min:s,max:l,precision:d,count:c,maxTicks:u,maxDigits:h,includeBounds:p}=t,f=i||1,_=u-1,{min:m,max:g}=e,b=!Ge(s),w=!Ge(l),y=!Ge(c),C=(g-m)/(h+1);let x=Kf((g-m)/_/f)*f,L,M,T,$;if(x<1e-14&&!b&&!w)return[{value:m},{value:g}];$=Math.ceil(g/x)-Math.floor(m/x),$>_&&(x=Kf($*x/_/f)*f),Ge(d)||(L=Math.pow(10,d),x=Math.ceil(x*L)/L),o==="ticks"?(M=Math.floor(m/x)*x,T=Math.ceil(g/x)*x):(M=m,T=g),b&&w&&i&&mC((l-s)/i,x/1e3)?($=Math.round(Math.min((l-s)/x,u)),x=(l-s)/$,M=s,T=l):y?(M=b?s:M,T=w?l:T,$=c-1,x=(T-M)/$):($=(T-M)/x,Oi($,Math.round($),x/1e3)?$=Math.round($):$=Math.ceil($));const V=Math.max(Jf(x),Jf(M));L=Math.pow(10,Ge(d)?V:d),M=Math.round(M*L)/L,T=Math.round(T*L)/L;let z=0;for(b&&(p&&M!==s?(n.push({value:s}),M<s&&z++,Oi(Math.round((M+z*x)*L)/L,s,V2(s,C,t))&&z++):M<s&&z++);z<$;++z){const U=Math.round((M+z*x)*L)/L;if(w&&U>l)break;n.push({value:U})}return w&&p&&T!==l?n.length&&Oi(n[n.length-1].value,l,V2(l,C,t))?n[n.length-1].value=l:n.push({value:l}):(!w||T===l)&&n.push({value:T}),n}function V2(t,e,{horizontal:n,minRotation:r}){const o=ro(r),i=(n?Math.sin(o):Math.cos(o))||.001,s=.75*e*(""+t).length;return Math.min(e/i,s)}class El extends Zo{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return Ge(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:r}=this.getUserBounds();let{min:o,max:i}=this;const s=d=>o=n?o:d,l=d=>i=r?i:d;if(e){const d=La(o),c=La(i);d<0&&c<0?l(0):d>0&&c>0&&s(0)}if(o===i){let d=i===0?1:Math.abs(i*.05);l(i+d),e||s(o-d)}this.min=o,this.max=i}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=e,o;return r?(o=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let r=this.getTickLimit();r=Math.max(2,r);const o={maxTicks:r,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},i=this._range||this,s=zL(o,i);return e.bounds==="ticks"&&Xf(s,this,"value"),e.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}configure(){const e=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&e.length){const o=(r-n)/Math.max(e.length-1,1)/2;n-=o,r+=o}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(e){return D1(e,this.chart.options.locale,this.options.ticks.format)}}class P2 extends El{static id="linear";static defaults={ticks:{callback:pl.formatters.numeric}};determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=ut(e)?e:0,this.max=ut(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,r=ro(this.options.ticks.minRotation),o=(e?Math.sin(r):Math.cos(r))||.001,i=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,i.lineHeight/o))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const Gi=t=>Math.floor(no(t)),Yo=(t,e)=>Math.pow(10,Gi(t)+e);function B2(t){return t/Math.pow(10,Gi(t))===1}function N2(t,e,n){const r=Math.pow(10,n),o=Math.floor(t/r);return Math.ceil(e/r)-o}function IL(t,e){const n=e-t;let r=Gi(n);for(;N2(t,e,r)>10;)r++;for(;N2(t,e,r)<10;)r--;return Math.min(r,Gi(t))}function HL(t,{min:e,max:n}){e=hn(t.min,e);const r=[],o=Gi(e);let i=IL(e,n),s=i<0?Math.pow(10,Math.abs(i)):1;const l=Math.pow(10,i),d=o>i?Math.pow(10,o):0,c=Math.round((e-d)*s)/s,u=Math.floor((e-d)/l/10)*l*10;let h=Math.floor((c-u)/Math.pow(10,i)),p=hn(t.min,Math.round((d+u+h*Math.pow(10,i))*s)/s);for(;p<n;)r.push({value:p,major:B2(p),significand:h}),h>=10?h=h<15?15:20:h++,h>=20&&(i++,h=2,s=i>=0?1:s),p=Math.round((d+u+h*Math.pow(10,i))*s)/s;const f=hn(t.max,p);return r.push({value:f,major:B2(f),significand:h}),r}class gU extends Zo{static id="logarithmic";static defaults={ticks:{callback:pl.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,n){const r=El.prototype.parse.apply(this,[e,n]);if(r===0){this._zero=!0;return}return ut(r)&&r>0?r:null}determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=ut(e)?Math.max(0,e):null,this.max=ut(n)?Math.max(0,n):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!ut(this._userMin)&&(this.min=e===Yo(this.min,0)?Yo(this.min,-1):Yo(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let r=this.min,o=this.max;const i=l=>r=e?r:l,s=l=>o=n?o:l;r===o&&(r<=0?(i(1),s(10)):(i(Yo(r,-1)),s(Yo(o,1)))),r<=0&&i(Yo(o,-1)),o<=0&&s(Yo(r,1)),this.min=r,this.max=o}buildTicks(){const e=this.options,n={min:this._userMin,max:this._userMax},r=HL(n,this);return e.bounds==="ticks"&&Xf(r,this,"value"),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}getLabelForValue(e){return e===void 0?"0":D1(e,this.chart.options.locale,this.options.ticks.format)}configure(){const e=this.min;super.configure(),this._startValue=no(e),this._valueRange=no(this.max)-no(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(no(e)-this._startValue)/this._valueRange)}getValueForPixel(e){const n=this.getDecimalForPixel(e);return Math.pow(10,this._startValue+n*this._valueRange)}}function Q1(t){const e=t.ticks;if(e.display&&t.display){const n=Sn(e.backdropPadding);return He(e.font&&e.font.size,vt.font.size)+n.height}return 0}function jL(t,e,n){return n=ct(n)?n:[n],{w:NC(t,e.string,n),h:n.length*e.lineHeight}}function F2(t,e,n,r,o){return t===r||t===o?{start:e-n/2,end:e+n/2}:t<r||t>o?{start:e-n,end:e}:{start:e,end:e+n}}function ZL(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},n=Object.assign({},e),r=[],o=[],i=t._pointLabels.length,s=t.options.pointLabels,l=s.centerPointLabels?Tt/i:0;for(let d=0;d<i;d++){const c=s.setContext(t.getPointLabelContext(d));o[d]=c.padding;const u=t.getPointPosition(d,t.drawingArea+o[d],l),h=mn(c.font),p=jL(t.ctx,h,t._pointLabels[d]);r[d]=p;const f=fn(t.getIndexAngle(d)+l),_=Math.round(k1(f)),m=F2(_,u.x,p.w,0,180),g=F2(_,u.y,p.h,90,270);YL(n,e,f,m,g)}t.setCenterPoint(e.l-n.l,n.r-e.r,e.t-n.t,n.b-e.b),t._pointLabelItems=qL(t,r,o)}function YL(t,e,n,r,o){const i=Math.abs(Math.sin(n)),s=Math.abs(Math.cos(n));let l=0,d=0;r.start<e.l?(l=(e.l-r.start)/i,t.l=Math.min(t.l,e.l-l)):r.end>e.r&&(l=(r.end-e.r)/i,t.r=Math.max(t.r,e.r+l)),o.start<e.t?(d=(e.t-o.start)/s,t.t=Math.min(t.t,e.t-d)):o.end>e.b&&(d=(o.end-e.b)/s,t.b=Math.max(t.b,e.b+d))}function WL(t,e,n){const r=t.drawingArea,{extra:o,additionalAngle:i,padding:s,size:l}=n,d=t.getPointPosition(e,r+o+s,i),c=Math.round(k1(fn(d.angle+pn))),u=XL(d.y,l.h,c),h=GL(c),p=KL(d.x,l.w,h);return{visible:!0,x:d.x,y:u,textAlign:h,left:p,top:u,right:p+l.w,bottom:u+l.h}}function UL(t,e){if(!e)return!0;const{left:n,top:r,right:o,bottom:i}=t;return!(vr({x:n,y:r},e)||vr({x:n,y:i},e)||vr({x:o,y:r},e)||vr({x:o,y:i},e))}function qL(t,e,n){const r=[],o=t._pointLabels.length,i=t.options,{centerPointLabels:s,display:l}=i.pointLabels,d={extra:Q1(i)/2,additionalAngle:s?Tt/o:0};let c;for(let u=0;u<o;u++){d.padding=n[u],d.size=e[u];const h=WL(t,u,d);r.push(h),l==="auto"&&(h.visible=UL(h,c),h.visible&&(c=h))}return r}function GL(t){return t===0||t===180?"center":t<180?"left":"right"}function KL(t,e,n){return n==="right"?t-=e:n==="center"&&(t-=e/2),t}function XL(t,e,n){return n===90||n===270?t-=e/2:(n>270||n<90)&&(t-=e),t}function JL(t,e,n){const{left:r,top:o,right:i,bottom:s}=n,{backdropColor:l}=e;if(!Ge(l)){const d=Ni(e.borderRadius),c=Sn(e.backdropPadding);t.fillStyle=l;const u=r-c.left,h=o-c.top,p=i-r+c.width,f=s-o+c.height;Object.values(d).some(_=>_!==0)?(t.beginPath(),P1(t,{x:u,y:h,w:p,h:f,radius:d}),t.fill()):t.fillRect(u,h,p,f)}}function QL(t,e){const{ctx:n,options:{pointLabels:r}}=t;for(let o=e-1;o>=0;o--){const i=t._pointLabelItems[o];if(!i.visible)continue;const s=r.setContext(t.getPointLabelContext(o));JL(n,s,i);const l=mn(s.font),{x:d,y:c,textAlign:u}=i;ml(n,t._pointLabels[o],d,c+l.lineHeight/2,l,{color:s.color,textAlign:u,textBaseline:"middle"})}}function A2(t,e,n,r){const{ctx:o}=t;if(n)o.arc(t.xCenter,t.yCenter,e,0,Cn);else{let i=t.getPointPosition(0,e);o.moveTo(i.x,i.y);for(let s=1;s<r;s++)i=t.getPointPosition(s,e),o.lineTo(i.x,i.y)}}function eD(t,e,n,r,o){const i=t.ctx,s=e.circular,{color:l,lineWidth:d}=e;!s&&!r||!l||!d||n<0||(i.save(),i.strokeStyle=l,i.lineWidth=d,i.setLineDash(o.dash),i.lineDashOffset=o.dashOffset,i.beginPath(),A2(t,n,s,r),i.closePath(),i.stroke(),i.restore())}function tD(t,e,n){return oo(t,{label:n,index:e,type:"pointLabel"})}class bU extends El{static id="radialLinear";static defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:pl.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(e){return e},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=Sn(Q1(this.options)/2),n=this.width=this.maxWidth-e.width,r=this.height=this.maxHeight-e.height;this.xCenter=Math.floor(this.left+n/2+e.left),this.yCenter=Math.floor(this.top+r/2+e.top),this.drawingArea=Math.floor(Math.min(n,r)/2)}determineDataLimits(){const{min:e,max:n}=this.getMinMax(!1);this.min=ut(e)&&!isNaN(e)?e:0,this.max=ut(n)&&!isNaN(n)?n:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/Q1(this.options))}generateTickLabels(e){El.prototype.generateTickLabels.call(this,e),this._pointLabels=this.getLabels().map((n,r)=>{const o=ht(this.options.pointLabels.callback,[n,r],this);return o||o===0?o:""}).filter((n,r)=>this.chart.getDataVisibility(r))}fit(){const e=this.options;e.display&&e.pointLabels.display?ZL(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,n,r,o){this.xCenter+=Math.floor((e-n)/2),this.yCenter+=Math.floor((r-o)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,n,r,o))}getIndexAngle(e){const n=Cn/(this._pointLabels.length||1),r=this.options.startAngle||0;return fn(e*n+ro(r))}getDistanceFromCenterForValue(e){if(Ge(e))return NaN;const n=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-e)*n:(e-this.min)*n}getValueForDistanceFromCenter(e){if(Ge(e))return NaN;const n=e/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-n:this.min+n}getPointLabelContext(e){const n=this._pointLabels||[];if(e>=0&&e<n.length){const r=n[e];return tD(this.getContext(),e,r)}}getPointPosition(e,n,r=0){const o=this.getIndexAngle(e)-pn+r;return{x:Math.cos(o)*n+this.xCenter,y:Math.sin(o)*n+this.yCenter,angle:o}}getPointPositionForValue(e,n){return this.getPointPosition(e,this.getDistanceFromCenterForValue(n))}getBasePosition(e){return this.getPointPositionForValue(e||0,this.getBaseValue())}getPointLabelPosition(e){const{left:n,top:r,right:o,bottom:i}=this._pointLabelItems[e];return{left:n,top:r,right:o,bottom:i}}drawBackground(){const{backgroundColor:e,grid:{circular:n}}=this.options;if(e){const r=this.ctx;r.save(),r.beginPath(),A2(this,this.getDistanceFromCenterForValue(this._endValue),n,this._pointLabels.length),r.closePath(),r.fillStyle=e,r.fill(),r.restore()}}drawGrid(){const e=this.ctx,n=this.options,{angleLines:r,grid:o,border:i}=n,s=this._pointLabels.length;let l,d,c;if(n.pointLabels.display&&QL(this,s),o.display&&this.ticks.forEach((u,h)=>{if(h!==0||h===0&&this.min<0){d=this.getDistanceFromCenterForValue(u.value);const p=this.getContext(h),f=o.setContext(p),_=i.setContext(p);eD(this,f,d,s,_)}}),r.display){for(e.save(),l=s-1;l>=0;l--){const u=r.setContext(this.getPointLabelContext(l)),{color:h,lineWidth:p}=u;!p||!h||(e.lineWidth=p,e.strokeStyle=h,e.setLineDash(u.borderDash),e.lineDashOffset=u.borderDashOffset,d=this.getDistanceFromCenterForValue(n.reverse?this.min:this.max),c=this.getPointPosition(l,d),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){const e=this.ctx,n=this.options,r=n.ticks;if(!r.display)return;const o=this.getIndexAngle(0);let i,s;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(o),e.textAlign="center",e.textBaseline="middle",this.ticks.forEach((l,d)=>{if(d===0&&this.min>=0&&!n.reverse)return;const c=r.setContext(this.getContext(d)),u=mn(c.font);if(i=this.getDistanceFromCenterForValue(this.ticks[d].value),c.showLabelBackdrop){e.font=u.string,s=e.measureText(l.label).width,e.fillStyle=c.backdropColor;const h=Sn(c.backdropPadding);e.fillRect(-s/2-h.left,-i-u.size/2-h.top,s+h.width,u.size+h.height)}ml(e,l.label,0,-i,u,{color:c.color,strokeColor:c.textStrokeColor,strokeWidth:c.textStrokeWidth})}),e.restore()}drawTitle(){}}const Ol={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}},Qt=Object.keys(Ol);function R2(t,e){return t-e}function z2(t,e){if(Ge(e))return null;const n=t._adapter,{parser:r,round:o,isoWeekday:i}=t._parseOpts;let s=e;return typeof r=="function"&&(s=r(s)),ut(s)||(s=typeof r=="string"?n.parse(s,r):n.parse(s)),s===null?null:(o&&(s=o==="week"&&(Vi(i)||i===!0)?n.startOf(s,"isoWeek",i):n.startOf(s,o)),+s)}function I2(t,e,n,r){const o=Qt.length;for(let i=Qt.indexOf(t);i<o-1;++i){const s=Ol[Qt[i]],l=s.steps?s.steps:Number.MAX_SAFE_INTEGER;if(s.common&&Math.ceil((n-e)/(l*s.size))<=r)return Qt[i]}return Qt[o-1]}function nD(t,e,n,r,o){for(let i=Qt.length-1;i>=Qt.indexOf(n);i--){const s=Qt[i];if(Ol[s].common&&t._adapter.diff(o,r,s)>=e-1)return s}return Qt[n?Qt.indexOf(n):0]}function rD(t){for(let e=Qt.indexOf(t)+1,n=Qt.length;e<n;++e)if(Ol[Qt[e]].common)return Qt[e]}function H2(t,e,n){if(!n)t[e]=!0;else if(n.length){const{lo:r,hi:o}=M1(n,e),i=n[r]>=e?n[r]:n[o];t[i]=!0}}function oD(t,e,n,r){const o=t._adapter,i=+o.startOf(e[0].value,r),s=e[e.length-1].value;let l,d;for(l=i;l<=s;l=+o.add(l,1,r))d=n[l],d>=0&&(e[d].major=!0);return e}function j2(t,e,n){const r=[],o={},i=e.length;let s,l;for(s=0;s<i;++s)l=e[s],o[l]=s,r.push({value:l,major:!1});return i===0||!n?r:oD(t,r,o,n)}class Z2 extends Zo{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,n={}){const r=e.time||(e.time={}),o=this._adapter=new YM._date(e.adapters.date);o.init(n),Ei(r.displayFormats,o.formats()),this._parseOpts={parser:r.parser,round:r.round,isoWeekday:r.isoWeekday},super.init(e),this._normalized=n.normalized}parse(e,n){return e===void 0?null:z2(this,e)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const e=this.options,n=this._adapter,r=e.time.unit||"day";let{min:o,max:i,minDefined:s,maxDefined:l}=this.getUserBounds();function d(c){!s&&!isNaN(c.min)&&(o=Math.min(o,c.min)),!l&&!isNaN(c.max)&&(i=Math.max(i,c.max))}(!s||!l)&&(d(this._getLabelBounds()),(e.bounds!=="ticks"||e.ticks.source!=="labels")&&d(this.getMinMax(!1))),o=ut(o)&&!isNaN(o)?o:+n.startOf(Date.now(),r),i=ut(i)&&!isNaN(i)?i:+n.endOf(Date.now(),r)+1,this.min=Math.min(o,i-1),this.max=Math.max(o+1,i)}_getLabelBounds(){const e=this.getLabelTimestamps();let n=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY;return e.length&&(n=e[0],r=e[e.length-1]),{min:n,max:r}}buildTicks(){const e=this.options,n=e.time,r=e.ticks,o=r.source==="labels"?this.getLabelTimestamps():this._generate();e.bounds==="ticks"&&o.length&&(this.min=this._userMin||o[0],this.max=this._userMax||o[o.length-1]);const i=this.min,s=this.max,l=wC(o,i,s);return this._unit=n.unit||(r.autoSkip?I2(n.minUnit,this.min,this.max,this._getLabelCapacity(i)):nD(this,l.length,n.minUnit,this.min,this.max)),this._majorUnit=!r.major.enabled||this._unit==="year"?void 0:rD(this._unit),this.initOffsets(o),e.reverse&&l.reverse(),j2(this,l,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(e=>+e.value))}initOffsets(e=[]){let n=0,r=0,o,i;this.options.offset&&e.length&&(o=this.getDecimalForValue(e[0]),e.length===1?n=1-o:n=(this.getDecimalForValue(e[1])-o)/2,i=this.getDecimalForValue(e[e.length-1]),e.length===1?r=i:r=(i-this.getDecimalForValue(e[e.length-2]))/2);const s=e.length<3?.5:.25;n=Mn(n,0,s),r=Mn(r,0,s),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const e=this._adapter,n=this.min,r=this.max,o=this.options,i=o.time,s=i.unit||I2(i.minUnit,n,r,this._getLabelCapacity(n)),l=He(o.ticks.stepSize,1),d=s==="week"?i.isoWeekday:!1,c=Vi(d)||d===!0,u={};let h=n,p,f;if(c&&(h=+e.startOf(h,"isoWeek",d)),h=+e.startOf(h,c?"day":s),e.diff(r,n,s)>1e5*l)throw new Error(n+" and "+r+" are too far apart with stepSize of "+l+" "+s);const _=o.ticks.source==="data"&&this.getDataTimestamps();for(p=h,f=0;p<r;p=+e.add(p,l,s),f++)H2(u,p,_);return(p===r||o.bounds==="ticks"||f===1)&&H2(u,p,_),Object.keys(u).sort(R2).map(m=>+m)}getLabelForValue(e){const n=this._adapter,r=this.options.time;return r.tooltipFormat?n.format(e,r.tooltipFormat):n.format(e,r.displayFormats.datetime)}format(e,n){const o=this.options.time.displayFormats,i=this._unit,s=n||o[i];return this._adapter.format(e,s)}_tickFormatFunction(e,n,r,o){const i=this.options,s=i.ticks.callback;if(s)return ht(s,[e,n,r],this);const l=i.time.displayFormats,d=this._unit,c=this._majorUnit,u=d&&l[d],h=c&&l[c],p=r[n],f=c&&h&&p&&p.major;return this._adapter.format(e,o||(f?h:u))}generateTickLabels(e){let n,r,o;for(n=0,r=e.length;n<r;++n)o=e[n],o.label=this._tickFormatFunction(o.value,n,e)}getDecimalForValue(e){return e===null?NaN:(e-this.min)/(this.max-this.min)}getPixelForValue(e){const n=this._offsets,r=this.getDecimalForValue(e);return this.getPixelForDecimal((n.start+r)*n.factor)}getValueForPixel(e){const n=this._offsets,r=this.getDecimalForPixel(e)/n.factor-n.end;return this.min+r*(this.max-this.min)}_getLabelSize(e){const n=this.options.ticks,r=this.ctx.measureText(e).width,o=ro(this.isHorizontal()?n.maxRotation:n.minRotation),i=Math.cos(o),s=Math.sin(o),l=this._resolveTickFontOptions(0).size;return{w:r*i+l*s,h:r*s+l*i}}_getLabelCapacity(e){const n=this.options.time,r=n.displayFormats,o=r[n.unit]||r.millisecond,i=this._tickFormatFunction(e,0,j2(this,[e],this._majorUnit),o),s=this._getLabelSize(i),l=Math.floor(this.isHorizontal()?this.width/s.w:this.height/s.h)-1;return l>0?l:1}getDataTimestamps(){let e=this._cache.data||[],n,r;if(e.length)return e;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,r=o.length;n<r;++n)e=e.concat(o[n].controller.getAllParsedValues(this));return this._cache.data=this.normalize(e)}getLabelTimestamps(){const e=this._cache.labels||[];let n,r;if(e.length)return e;const o=this.getLabels();for(n=0,r=o.length;n<r;++n)e.push(z2(this,o[n]));return this._cache.labels=this._normalized?e:this.normalize(e)}normalize(e){return xC(e.sort(R2))}}function Vl(t,e,n){let r=0,o=t.length-1,i,s,l,d;n?(e>=t[r].pos&&e<=t[o].pos&&({lo:r,hi:o}=Fo(t,"pos",e)),{pos:i,time:l}=t[r],{pos:s,time:d}=t[o]):(e>=t[r].time&&e<=t[o].time&&({lo:r,hi:o}=Fo(t,"time",e)),{time:i,pos:l}=t[r],{time:s,pos:d}=t[o]);const c=s-i;return c?l+(d-l)*(e-i)/c:l}class yU extends Z2{static id="timeseries";static defaults=Z2.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=Vl(n,this.min),this._tableRange=Vl(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:r}=this,o=[],i=[];let s,l,d,c,u;for(s=0,l=e.length;s<l;++s)c=e[s],c>=n&&c<=r&&o.push(c);if(o.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(s=0,l=o.length;s<l;++s)u=o[s+1],d=o[s-1],c=o[s],Math.round((u+d)/2)!==c&&i.push({time:c,pos:s/(l-1)});return i}_generate(){const e=this.min,n=this.max;let r=super.getDataTimestamps();return(!r.includes(e)||!r.length)&&r.splice(0,0,e),(!r.includes(n)||r.length===1)&&r.push(n),r.sort((o,i)=>o-i)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),r=this.getLabelTimestamps();return n.length&&r.length?e=this.normalize(n.concat(r)):e=n.length?n:r,e=this._cache.all=e,e}getDecimalForValue(e){return(Vl(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,r=this.getDecimalForPixel(e)/n.factor-n.end;return Vl(this._table,r*this._tableRange+this._minPos,!0)}}const Y2={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},aD={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...Y2,...{ariaLabel:{type:String},ariaDescribedby:{type:String}}},iD=a.version[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Ta(t){return a.isProxy(t)?a.toRaw(t):t}function sD(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return a.isProxy(e)?new Proxy(t,{}):t}function lD(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function W2(t,e){t.labels=e}function U2(t,e,n){const r=[];t.datasets=e.map(o=>{const i=t.datasets.find(s=>s[n]===o[n]);return!i||!o.data||r.includes(i)?{...o}:(r.push(i),Object.assign(i,o),i)})}function dD(t,e){const n={labels:[],datasets:[]};return W2(n,t.labels),U2(n,t.datasets,e),n}const cD=a.defineComponent({props:aD,setup(t,e){let{expose:n,slots:r}=e;const o=a.ref(null),i=a.shallowRef(null);n({chart:i});const s=()=>{if(!o.value)return;const{type:c,data:u,options:h,plugins:p,datasetIdKey:f}=t,_=dD(u,f),m=sD(_,u);i.value=new Wi(o.value,{type:c,data:m,options:{...h},plugins:p})},l=()=>{const c=a.toRaw(i.value);c&&(t.destroyDelay>0?setTimeout(()=>{c.destroy(),i.value=null},t.destroyDelay):(c.destroy(),i.value=null))},d=c=>{c.update(t.updateMode)};return a.onMounted(s),a.onUnmounted(l),a.watch([()=>t.options,()=>t.data],(c,u)=>{let[h,p]=c,[f,_]=u;const m=a.toRaw(i.value);if(!m)return;let g=!1;if(h){const b=Ta(h),w=Ta(f);b&&b!==w&&(lD(m,b),g=!0)}if(p){const b=Ta(p.labels),w=Ta(_.labels),y=Ta(p.datasets),C=Ta(_.datasets);b!==w&&(W2(m.config.data,b),g=!0),y&&y!==C&&(U2(m.config.data,y,t.datasetIdKey),g=!0)}g&&a.nextTick(()=>{d(m)})},{deep:!0}),()=>a.h("canvas",{role:"img",ariaLabel:t.ariaLabel,ariaDescribedby:t.ariaDescribedby,ref:o},[a.h("p",{},[r.default?r.default():""])])}});function uD(t,e){return Wi.register(e),a.defineComponent({props:Y2,setup(n,r){let{expose:o}=r;const i=a.shallowRef(null),s=l=>{i.value=l?.chart};return o({chart:i}),()=>a.h(cD,iD({ref:s},{type:t,...n}))}})}const q2=uD("line",ZM),hD={class:"chart-container"},eu={__name:"LineChart",props:{data:{type:Array,required:!0},dataType:{type:String,required:!0},isMask:{type:Boolean,default:!1},ticksCallback:{type:Function,default:t=>t},borderColor:{type:String,default:"#007AFF"},gradient:{type:Object,default:{height:450,startColor:"rgba(0, 122, 255, 0.1)",endColor:"rgba(0, 122, 255, 0)"}}},setup(t){Wi.register(O2,P2,m2,Ui,NL,k2);const e=t,n=a.ref(0),r=a.inject("darkMode");let o=a.reactive({isEmpty:!0});const i=p=>{const f=new Set,_=[];let m=[];switch(e.dataType){case"balanceChartData":p.length===0?m=[0,0]:m=p.map(b=>(f.add(b.date),it(b.balance*f0(),2)));break;case"performanceChartData":p.length===0?m=[0,0]:m=p.reduce((b,w,y)=>{f.add(w.date);const C=y?b[y-1]:0,x=it(C+w.pnl_to_deposit,2);return b.push(x),b},[]);break}_.push({data:m});const g=Array.from(f);return g.length===1?(g.push(...g),_.forEach(b=>{b.data.push(...b.data)}),o.isEmpty=!1):g.length===0?(o.isEmpty=!0,g.push(0,0)):o.isEmpty=!1,{labels:g,datasets:_}},s=a.computed(()=>i(e.data)),l=p=>{const _=p.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return _.addColorStop(0,e.gradient.startColor),_.addColorStop(1,e.gradient.endColor),_},d=(p,f)=>{let _=document.querySelector(`#${p}-${e.dataType}`);return _||(_=document.createElement("div"),_.classList.add(p),_.setAttribute("id",`${p}-${e.dataType}`),f.canvas.parentNode.appendChild(_)),_},c=p=>{if(!o.isEmpty){const{chart:f,tooltip:_}=p,m=d("chart-tooltip",f);if(_.opacity===0){m.style.opacity="0";return}if(_.body){const L=_.title||[],M=_.body.map($=>$.lines),T=document.createElement("div");for(T.classList.add("chart-tooltip-middle"),T.innerHTML=`<div class="chart-tooltip-content">
41
41
  ${e.dataType==="balanceChartData"?`${ys()}${De(e.isMask,h0(M[0]),{repeat:6})}`:`${De(e.isMask,h0(M[0]),{repeat:3})}%`}
42
- <span> | ${B4(L[0],"EEE, dd LLL, yyyy")}</span></div>`;m.firstChild;)m.firstChild.remove();m.appendChild(T)}const{offsetLeft:g,offsetTop:b,clientWidth:w}=f.canvas;let y=g+_.caretX;const C=b+_.caretY,x=m.clientWidth;y+x>w&&(y-=x),m.style.opacity="1",m.style.left=y+"px",m.style.top=C+"px"}},u=p=>{const{chart:f}=p,_=d("chart-line",f),m=f.chartArea;f.canvas.addEventListener("mousemove",function(g){const b=f.canvas.getBoundingClientRect(),w=g.clientX-b.left,y=g.clientY-b.top;w>=m.left&&w<=m.right&&y>=m.top&&y<=m.bottom?(_.style.left=w+"px",_.style.top=m.top+"px",_.style.height=m.bottom-m.top+"px",_.style.display="flex"):_.style.display="none"}),f.canvas.addEventListener("mouseout",function(){_.style.display="none"})},h=a.computed(()=>({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},scales:{x:{ticks:{display:!o.isEmpty,callback:function(p){return N4(this.getLabelForValue(p)).slice(0,3)},color:"#8E8E93",font:{size:14,weight:400,family:"'SF Pro Display', sans-serif"},padding:15,align:"center"},grid:{display:!1},border:{color:r.value?"#2D2D2D":"#EDEDED"}},y:{ticks:{display:!o.isEmpty,callback:function(p){return e.ticksCallback(p)},color:"#8E8E93",font:{size:14,weight:400,family:"'SF Pro Display', sans-serif"},padding:15},grid:{color:r.value?"#2D2D2D":"#EDEDED",drawTicks:!1},border:{display:!1,dash:[4,4],dashOffset:1}}},plugins:{tooltip:{enabled:!1,position:"nearest",external:c},legend:!1},elements:{line:{backgroundColor:p=>l(p),tension:.3,borderWidth:2,borderColor:e.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:"circle",pointRadius:1,pointHoverRadius:8,pointBackgroundColor:e.borderColor,pointBorderWidth:0,pointHoverBorderWidth:3,pointBorderColor:"#fff",pointHoverBorderColor:"#fff",pointHitRadius:50}},onHover:u}));return a.watch(()=>e.isMask,()=>{n.value+=1},{immediate:!0}),(p,f)=>(a.openBlock(),a.createElementBlock("div",hD,[(a.openBlock(),a.createBlock(a.unref(q2),{key:n.value,data:s.value,options:h.value},null,8,["data","options"]))]))}},tu={__name:"SimpleLineChart",props:{data:{type:Array,required:!0},borderColor:{type:String,default:"#56B683"},gradient:{type:Object,default:{height:200,startColor:"rgba(86, 182, 131, 0.1)",endColor:"rgba(86, 182, 131, 0)"}}},setup(t){Wi.register(O2,P2,m2,Ui,k2);const e=t,n=s=>{const l=new Set,d=[],c=s.map(h=>(l.add(h.date),h.balance));return d.push({data:c}),{labels:Array.from(l),datasets:d}},r=a.computed(()=>n(e.data)),o=s=>{const d=s.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return d.addColorStop(0,e.gradient.startColor),d.addColorStop(1,e.gradient.endColor),d},i=a.ref({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{display:!1}},plugins:{tooltip:!1,legend:!1},elements:{line:{backgroundColor:s=>o(s),tension:.3,borderWidth:4,borderColor:e.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:!1}}});return(s,l)=>(a.openBlock(),a.createBlock(a.unref(q2),{data:r.value,options:i.value},null,8,["data","options"]))}},pD=t=>(a.pushScopeId("data-v-a1d419ad"),t=t(),a.popScopeId(),t),fD={class:"import-data"},mD={class:"import-data__content"},_D=pD(()=>a.createElementVNode("div",{class:"import-data__text"},[a.createTextVNode(" Importing data from the exchange. "),a.createElementVNode("br"),a.createTextVNode(" The widget will be displayed after the page reloads ")],-1)),Cr=Me({__name:"ImportData",emits:["refresh"],setup(t,{emit:e}){const n=e;return(r,o)=>(a.openBlock(),a.createElementBlock("div",fD,[a.createElementVNode("div",mD,[a.createElementVNode("div",{onClick:o[0]||(o[0]=i=>n("refresh")),class:"import-data__refresh-btn"},[a.createVNode(a.unref(ke),{icon:"arrow-rotating"})]),_D])]))}},[["__scopeId","data-v-a1d419ad"]]),gD=t=>(a.pushScopeId("data-v-34167713"),t=t(),a.popScopeId(),t),bD={class:"account-balance-widget"},yD={class:"account-balance-widget__top"},wD={class:"account-balance-widget__title-wrapper"},vD=gD(()=>a.createElementVNode("div",{class:"account-balance-widget__title"},"Account Balance",-1)),xD=Me({__name:"AccountBalanceWidget",props:{balanceChartData:{type:Array,default:[]},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=i=>i>=1e3||i<=-1e3?De(o.isMask,it(i/1e3,2)+"k",{repeat:3}):De(o.isMask,it(i,2),{repeat:3}),r=e,o=t;return(i,s)=>(a.openBlock(),a.createElementBlock("div",bD,[a.createElementVNode("div",yD,[a.createElementVNode("div",wD,[vD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("This graphic widget displays changes to your deposit over a specific time period. ")]),_:1})])]),a.createVNode(a.unref(eu),{data:t.balanceChartData,"data-type":"balanceChartData","ticks-callback":n,isMask:t.isMask},null,8,["data","isMask"]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:s[0]||(s[0]=l=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-34167713"]]),G2=t=>(a.pushScopeId("data-v-b0d26ed0"),t=t(),a.popScopeId(),t),kD={class:"balance-widget"},CD={class:"balance-part"},MD={class:"balance-part__top"},SD={class:"balance-part__title-wrapper"},LD=G2(()=>a.createElementVNode("div",{class:"balance-part__title"},"Balance",-1)),DD={class:"balance-part__content"},$D={class:"balance-part__content__wrapper"},TD={class:"balance-part__content__bitcoin"},ED={key:0,class:"divider"},OD={key:1,class:"personal-target-part"},VD={class:"personal-target-part__top"},PD={class:"personal-target-part__title-wrapper"},BD=G2(()=>a.createElementVNode("div",{class:"personal-target-part__title"},"Personal target",-1)),ND={class:"personal-target-part__content"},FD={class:"personal-target-part__content__current"},AD={class:"personal-target-part__content__from"},RD=Me({__name:"BalanceWidget",props:{BTC:{type:Number,default:0},USDT:{type:Number,default:0},delta:{type:Number,default:0},balanceChartData:{type:Array,default:[]},currentProfit:{type:Number,default:0},profit:{type:Number,default:0},drawdown:{type:Number,default:0},isPercentage:Boolean,isShare:{type:Boolean,default:!1},isHidden:{type:Boolean,default:!1},isMaskBalance:{type:Boolean,default:!1},isMaskPersonalTarget:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["switchModal","switchVisibility","refresh"],setup(t,{emit:e}){const n=e,r=t,o=a.reactive({USDT:0,BTC:0,delta:0}),i=a.reactive({currentProfit:0}),s=a.ref(0),l=()=>{n("switchVisibility")},d=a.computed(()=>({currentProfit:r.currentProfit,profit:r.profit,drawdown:r.drawdown})),c=a.computed(()=>`${44+(String(it(r.USDT,2)).length-1)*16}px`);return a.watch(()=>r.USDT,u=>{Jr.to(o,{duration:1.5,USDT:Number(u)||0,BTC:r.BTC,delta:r.delta})},{immediate:!0}),a.watch(()=>d,u=>{s.value=Jr.to(i,{duration:1.5,currentProfit:r.currentProfit})},{immediate:!0,deep:!0}),(u,h)=>(a.openBlock(),a.createElementBlock("div",kD,[a.createElementVNode("div",CD,[a.createElementVNode("div",MD,[a.createElementVNode("div",SD,[LD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Displays the balance of your deposit in USD and BTC equivalent, additionally showing the growth/fall of your balance.")]),_:1})]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",{key:0,class:"balance-part__visibility-switcher",onClick:l},[a.withDirectives(a.createVNode(a.unref(ke),{icon:"eye"},null,512),[[a.vShow,t.isHidden]]),a.withDirectives(a.createVNode(a.unref(ke),{icon:"eye-slash"},null,512),[[a.vShow,!t.isHidden]])]))]),a.createElementVNode("div",DD,[a.createElementVNode("div",$D,[a.createElementVNode("div",{class:"balance-part__content__count",style:a.normalizeStyle({minWidth:c.value})},a.toDisplayString(a.unref(De)(t.isMaskBalance,a.unref(Je)(o.USDT),{prefix:"$"})),5),t.delta?(a.openBlock(),a.createBlock(a.unref(rd),{key:0,class:"balance-part__content__chips","is-hidden":t.isMaskBalance,percentage:"",delta:o.delta},null,8,["is-hidden","delta"])):a.createCommentVNode("",!0)]),a.createElementVNode("div",TD," = "+a.toDisplayString(a.unref(De)(t.isMaskBalance,o.BTC))+" BTC ",1)]),t.isShare?(a.openBlock(),a.createBlock(a.unref(tu),{key:0,class:"balance-part__chart balance-part__chart--share",data:t.balanceChartData,gradient:{height:500,startColor:"rgba(86, 182, 131, 0.1)",endColor:"rgba(86, 182, 131, 0)"}},null,8,["data"])):(a.openBlock(),a.createBlock(a.unref(tu),{key:1,class:"balance-part__chart",data:t.balanceChartData},null,8,["data"]))]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",ED)),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",OD,[a.createElementVNode("div",VD,[a.createElementVNode("div",PD,[BD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode(" In this widget, set your desired balance growth target in $ or % for a specific period. It will display your PNL relative to the goal, helping you know when to stop or pay closer attention. ")]),_:1})]),a.createElementVNode("div",{class:"balance-part__modal-switcher",onClick:h[0]||(h[0]=p=>n("switchModal"))},[a.createVNode(a.unref(ke),{icon:"settings"})])]),a.createElementVNode("div",ND,[a.createElementVNode("div",FD,a.toDisplayString(a.unref(De)(t.isMaskPersonalTarget,a.unref(Je)(i.currentProfit,{isPercentage:t.isPercentage,isFixed:!0}),{prefix:"$",repeat:5})),1),a.createElementVNode("div",AD," / "+a.toDisplayString(a.unref(De)(t.isMaskPersonalTarget,a.unref(Je)(t.profit,{isPercentage:t.isPercentage,isFixed:!0}))),1)]),(a.openBlock(),a.createBlock(a.unref(om),{key:s.value,"current-profit":t.currentProfit,"is-hidden":t.isMaskPersonalTarget,drawdown:t.drawdown,profit:t.profit,"is-percentage":t.isPercentage},null,8,["current-profit","is-hidden","drawdown","profit","is-percentage"]))])),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:2,onRefresh:h[1]||(h[1]=p=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-b0d26ed0"]]),Pl=t=>(a.pushScopeId("data-v-9786b83c"),t=t(),a.popScopeId(),t),zD={class:"calendar-widget"},ID={class:"calendar-widget__calendar"},HD={class:"calendar-widget__top"},jD={class:"calendar-widget__title-wrapper"},ZD=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__title"},"Calendar",-1)),YD={class:"stat-calendar"},WD={class:"stat-calendar__week-days"},UD={key:0,class:"stat-calendar__row-wrapper"},qD={class:"stat-calendar__row"},GD=["onClick"],KD=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__divider"},null,-1)),XD={key:0,class:"calendar-widget__day"},JD={class:"calendar-widget__day__title-wrapper"},QD={class:"calendar-widget__day__title"},e$={class:"calendar-widget__day__content"},t$={class:"calendar-widget__point"},n$={class:"calendar-widget__point__title"},r$=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),o$={class:"calendar-widget__day__trades"},a$={class:"calendar-widget__point"},i$={class:"calendar-widget__point__title"},s$=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),l$={__name:"CalendarWidget",props:{rows:Array,dailyStatData:Object,minDate:Date,currentDate:{type:Date,default:new Date},maxDate:{type:Date,default:Date()},isCurrentDate:Function,isCurrentDay:Function,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["setNewDate","chooseMonth","refresh","getDetails"],setup(t,{emit:e}){const n=["Mo","Tu","We","Th","Fr","Sa","Su"],r=a.ref(null),o=a.ref(null),i=e,s=t,l=u=>{r.value=u.year,o.value=u.month,i("chooseMonth",u)};a.nextTick(()=>{const u=new Date;r.value=u.getFullYear(),o.value=u.getMonth()});const d=a.computed(()=>[{title:"Total trades",value:s.dailyStatData&&s.dailyStatData.trades_total_count||0},{title:"Winrate",value:Je(s.dailyStatData&&s.dailyStatData.win_rate||0,{isPercentage:!0,isFixed:!0}),class:s.dailyStatData&&s.dailyStatData.win_rate>=50?"-win":"-loss"},{title:"Return",value:Je(s.dailyStatData&&s.dailyStatData.return_total||0),class:s.dailyStatData&&s.dailyStatData.return_total>=0?"-win":"-loss"},{title:"Return on winners",value:Je(s.dailyStatData&&s.dailyStatData.return_win||0)},{title:"Return on losers",value:Je(s.dailyStatData&&s.dailyStatData.return_lose||0)},{title:"Commission",value:Je(s.dailyStatData&&s.dailyStatData.commission||0)}]),c=a.computed(()=>[{title:"Win trades",value:s.dailyStatData&&s.dailyStatData.trades_win_count||0,isPositive:!0},{title:"Loss trades",value:-(s.dailyStatData&&s.dailyStatData.trades_lose_count)||0,isNegative:!1}]);return(u,h)=>(a.openBlock(),a.createElementBlock("div",zD,[a.createElementVNode("div",ID,[a.createElementVNode("div",HD,[a.createElementVNode("div",jD,[ZD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("A widget that displays the performance of your trades in a calendar format. Here you can see profitable and unprofitable days with detailed statistics for each day. ")]),_:1})]),t.currentDate&&t.minDate?(a.openBlock(),a.createBlock(a.unref(nm),{key:0,"current-date":t.currentDate||new Date,"min-date":t.minDate,"max-date":t.maxDate,onOnChange:l,year:r.value,"onUpdate:year":h[0]||(h[0]=p=>r.value=p),month:o.value,"onUpdate:month":h[1]||(h[1]=p=>o.value=p)},null,8,["current-date","min-date","max-date","year","month"])):a.createCommentVNode("",!0)]),a.createElementVNode("div",YD,[a.createElementVNode("div",WD,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(n,(p,f)=>a.createElementVNode("div",{class:a.normalizeClass(["stat-calendar__week-day",{"-current":t.isCurrentDay(f)}])},a.toDisplayString(p),3)),64))]),t.rows?(a.openBlock(),a.createElementBlock("div",UD,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.rows,p=>(a.openBlock(),a.createElementBlock("div",qD,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(p,f=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["stat-calendar__day",{"-unavailable":f.unavailable,"-empty":!f.date,"-current":t.isCurrentDate(f.date),"-positive":f.win,"-negative":f.win===!1}]),onClick:_=>i("setNewDate",f.date)},a.toDisplayString(f.date?f.date:""),11,GD))),256))]))),256))])):a.createCommentVNode("",!0)])]),KD,t.dailyStatData&&!t.dailyStatData.isNull?(a.openBlock(),a.createElementBlock("div",XD,[a.createElementVNode("div",JD,[a.createElementVNode("div",QD,a.toDisplayString(t.currentDate.getDate()+" "+t.currentDate.toLocaleString("en-us",{month:"long"})),1),a.createVNode(ke,{icon:"preview",onClick:h[2]||(h[2]=p=>i("getDetails"))})]),a.createElementVNode("div",e$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(d.value,p=>(a.openBlock(),a.createElementBlock("div",t$,[a.createElementVNode("div",n$,a.toDisplayString(p.title),1),r$,a.createElementVNode("div",{class:a.normalizeClass(["calendar-widget__point__value",p.class?p.class:""])},a.toDisplayString(a.unref(De)(t.isMask,p.value,{repeat:5})),3)]))),256)),a.createVNode(a.unref(Af),{isHidden:t.isMask,long:t.dailyStatData?.long_count,short:t.dailyStatData?.short_count},null,8,["isHidden","long","short"]),a.createElementVNode("div",o$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(c.value,p=>(a.openBlock(),a.createElementBlock("div",a$,[a.createElementVNode("div",i$,a.toDisplayString(p.title),1),s$,a.createVNode(a.unref(rd),{isHidden:t.isMask,"is-positive":p.isPositive,"is-negative":p.isNegative,delta:p.value},null,8,["isHidden","is-positive","is-negative","delta"])]))),256))])])])):(a.openBlock(),a.createBlock(a.unref($c),{key:1,class:"-empty"})),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:2,onRefresh:h[3]||(h[3]=p=>i("refresh"))})):a.createCommentVNode("",!0)]))}},d$=Me(l$,[["__scopeId","data-v-9786b83c"]]),nu=t=>(a.pushScopeId("data-v-f0601396"),t=t(),a.popScopeId(),t),c$={class:"commission-widget"},u$={class:"commission-widget__content"},h$={class:"commission-widget__top"},p$={class:"commission-widget__title-wrapper"},f$=nu(()=>a.createElementVNode("div",{class:"commission-widget__title"},"Commissions and Fees",-1)),m$={class:"commission-widget__info"},_$={class:"commission-widget__total-wrapper"},g$=nu(()=>a.createElementVNode("div",{class:"commission-widget__total-wrapper__title"},"Total",-1)),b$={class:"commission-widget__total-wrapper__total"},y$={class:"commission-widget__total-wrapper__value"},w$={class:"commission-widget__points"},v$={class:"commission-widget__point"},x$={class:"commission-widget__point__title"},k$=nu(()=>a.createElementVNode("div",{class:"commission-widget__point__line"},null,-1)),C$=Me({__name:"CommissionsFeesWidget",props:{commissionData:Object,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=e,r=t,o=a.reactive({commission:0}),i=a.computed(()=>r.commissionData&&r.commissionData.commission||0),s=a.computed(()=>r.commissionData&&r.commissionData.pnl||0),l=a.computed(()=>[{title:"AVG fees per trade",value:`${Je(r.commissionData&&r.commissionData.fees_per_trade||0)}`},{title:"PNL / Commission",value:s.value&&i.value?`${Je(s.value)}/${Je(i.value)}`:`${Je(0)}`},{title:"AVG fees per day",value:`${Je(r.commissionData&&r.commissionData.fees_per_day||0)}`},{title:"Funding",value:`${Je(r.commissionData&&r.commissionData.funding||0)}`}]);return a.watch(i,d=>{Jr.to(o,{duration:1.5,commission:d})},{immediate:!0}),(d,c)=>(a.openBlock(),a.createElementBlock("div",c$,[a.createElementVNode("div",u$,[a.createElementVNode("div",h$,[a.createElementVNode("div",p$,[f$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("This widget helps traders finally understand how much money they spent on commissions and funding. ")]),_:1})])]),a.createElementVNode("div",m$,[a.createElementVNode("div",_$,[g$,a.createElementVNode("div",b$,[a.createElementVNode("div",y$,a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(o.commission),{repeat:5})),1)])]),a.createElementVNode("div",w$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(l.value,(u,h)=>(a.openBlock(),a.createElementBlock("div",v$,[a.createElementVNode("div",x$,a.toDisplayString(u.title),1),k$,a.createElementVNode("div",{class:a.normalizeClass(["commission-widget__point__value",u.class?u.class:""])},a.toDisplayString(a.unref(De)(t.isMask,u.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:c[0]||(c[0]=u=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-f0601396"]]),M$=t=>(a.pushScopeId("data-v-98670dfc"),t=t(),a.popScopeId(),t),S$={class:"performance-widget"},L$={class:"performance-widget__top"},D$={class:"performance-widget__title-wrapper"},$$=M$(()=>a.createElementVNode("div",{class:"performance-widget__title"},"Performance (cumulative)",-1)),T$=Me({__name:"PerformanceWidget",props:{performanceChartData:{type:Array,default:[]},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){a.ref("week");const n=t,r=e,o=i=>De(n.isMask,it(i,2)+"%",{repeat:3});return(i,s)=>(a.openBlock(),a.createElementBlock("div",S$,[a.createElementVNode("div",L$,[a.createElementVNode("div",D$,[$$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("The linear graphics widget displays the profit as a percentage of the deposit. ")]),_:1})])]),a.createVNode(a.unref(eu),{data:t.performanceChartData,"data-type":"performanceChartData","ticks-callback":o,isMask:t.isMask},null,8,["data","isMask"]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:s[0]||(s[0]=l=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-98670dfc"]]),ru=t=>(a.pushScopeId("data-v-e936f12b"),t=t(),a.popScopeId(),t),E$={class:"return-widget"},O$={class:"return-widget__content"},V$={class:"return-widget__top"},P$={class:"return-widget__title-wrapper"},B$=ru(()=>a.createElementVNode("div",{class:"return-widget__title"},"Return",-1)),N$={class:"return-widget__info"},F$={class:"return-widget__total-wrapper"},A$=ru(()=>a.createElementVNode("div",{class:"return-widget__total-wrapper__title"},"Total",-1)),R$={class:"return-widget__total-wrapper__total"},z$={class:"return-widget__points"},I$={class:"return-widget__point"},H$={class:"return-widget__point__title"},j$=ru(()=>a.createElementVNode("div",{class:"return-widget__point__line"},null,-1)),Z$=["innerHTML"],Y$=Me({__name:"ReturnWidget",props:{totalReturn:{type:Number,default:0},win:{type:Number,default:0},lose:{type:Number,default:0},returnPeriod:{type:Number,default:0},profitFactor:{type:Number,default:0},daily:{type:Number,default:0},changeRate:{type:Number,default:0},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=e,r=t,o=a.computed(()=>`${44+(String(it(r.returnPeriod,2)).length-1)*16}px`),i=a.reactive({returnPeriod:0,changeRate:0}),s=a.computed(()=>[{title:"Average return per trade",value:r.totalReturn,options:{isPlus:!0,isFixed:!0},class:r.totalReturn===0?"":r.totalReturn>0?"-win":"-loss"},{title:"Daily return",value:r.daily,options:{isPlus:!0,isFixed:!0},class:r.daily===0?"":r.daily>0?"-win":"-loss"},{title:"Return on winners",value:r.win,class:"-win"},{title:"Return on losers",value:r.lose,class:"-loss"}]),l=a.computed(()=>r.returnPeriod>0),d=a.computed(()=>r.returnPeriod<0),c=a.computed(()=>r.profitFactor>1?"-positive":"-negative"),u=a.computed(()=>r.profitFactor>0?`Your profit factor is ${De(r.isMask,it(r.profitFactor),{repeat:5})}. <br /> You earn ${De(r.isMask,Je(r.profitFactor),{repeat:5,prefix:"$"})} on every ${De(r.isMask,"$1",{repeat:5,prefix:"$"})} loss.`:`Your profit factor is ${De(r.isMask,it(r.profitFactor),{repeat:5})}. <br/> You loss ${De(r.isMask,Je(Math.abs(r.profitFactor)),{repeat:5,prefix:"$"})} on every ${De(r.isMask,"$1",{repeat:5,prefix:"$"})} earn. `);return a.watch(()=>r.returnPeriod,h=>{Jr.to(i,{duration:1.5,returnPeriod:h,changeRate:r.changeRate})},{immediate:!0}),(h,p)=>(a.openBlock(),a.createElementBlock("div",E$,[a.createElementVNode("div",O$,[a.createElementVNode("div",V$,[a.createElementVNode("div",P$,[B$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("This widget displays an increase in NET profit in dollars and percentage relative to the deposit for the specified period you have chosen. ")]),_:1})])]),a.createElementVNode("div",N$,[a.createElementVNode("div",F$,[A$,a.createElementVNode("div",R$,[a.createElementVNode("div",{class:a.normalizeClass(["return-widget__total-wrapper__value",{"-positive":l.value,"-negative":d.value}]),style:a.normalizeStyle({minWidth:o.value})},a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(i.returnPeriod,{isPlus:!0,isFixed:!0}),{repeat:5})),7),r.changeRate?(a.openBlock(),a.createBlock(a.unref(rd),{key:0,percentage:"",class:"return-widget__total-wrapper__chips",isHidden:t.isMask,delta:i.changeRate},null,8,["isHidden","delta"])):a.createCommentVNode("",!0)])]),a.createElementVNode("div",z$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(s.value,f=>(a.openBlock(),a.createElementBlock("div",I$,[a.createElementVNode("div",H$,a.toDisplayString(f.title),1),j$,a.createElementVNode("div",{class:a.normalizeClass(["return-widget__point__value",f.class?f.class:""])},a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(f.value,f.options),{repeat:5,prefix:"$"})),3)]))),256))])])]),t.profitFactor?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["return-widget__profit",c.value])},[a.createVNode(a.unref(ke),{icon:"tip",class:"return-widget__profit__icon"}),a.createElementVNode("div",{class:"return-widget__profit__text",innerHTML:u.value},null,8,Z$)],2)):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:1,onRefresh:p[0]||(p[0]=f=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-e936f12b"]]),K2=t=>(a.pushScopeId("data-v-1522f636"),t=t(),a.popScopeId(),t),W$={class:"top-positions-widget"},U$={class:"top-positions-widget__top"},q$={class:"top-positions-widget__title-wrapper"},G$=K2(()=>a.createElementVNode("div",{class:"top-positions-widget__title"},"Top Positions",-1)),K$={key:0,class:"top-positions-widget__returns"},X$={class:"top-positions-widget__return"},J$={class:"top-positions-widget__return__left"},Q$=K2(()=>a.createElementVNode("div",{class:"top-positions-widget__return__line"},null,-1)),eT=["onClick"],tT={class:"top-positions-widget__return__right"},nT={class:"top-positions-widget__return__pnl"},rT=Me({__name:"TopPositionsWidget",props:{topPositions:{type:Array,default:[]},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh","onPairClick"],setup(t,{emit:e}){a.ref("week");const n=e;return(r,o)=>(a.openBlock(),a.createElementBlock("div",W$,[a.createElementVNode("div",U$,[a.createElementVNode("div",q$,[G$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Helps you find the top profitable positions. We calculate only net PNL, taking into account commission and funding. ")]),_:1})])]),t.topPositions&&t.topPositions.length?(a.openBlock(),a.createElementBlock("div",K$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.topPositions,i=>(a.openBlock(),a.createElementBlock("div",X$,[a.createElementVNode("div",J$,[Q$,a.createElementVNode("div",{class:"top-positions-widget__return__pair",onClick:s=>n("onPairClick",i)},[a.createTextVNode(a.toDisplayString(a.unref(A4)(i.pair))+" ",1),a.createVNode(a.unref(ke),{icon:"chevron-right-small"})],8,eT)]),a.createElementVNode("div",tT,[a.createElementVNode("div",nT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(i.pnl,{isFixed:!0,isPlus:!0},{repeat:5}))),1),a.createElementVNode("div",{class:a.normalizeClass(["top-positions-widget__return__roi",i.roi<0?"-negative":"-positive"])},[a.createVNode(a.unref(ke),{icon:"bxs_up-arrow"}),a.createElementVNode("span",null,a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(i.roi,{isPercentage:!0,isFixed:!0},{repeat:2}))),1)],2)])]))),256))])):(a.openBlock(),a.createBlock(a.unref($c),{key:1,title:"No more pair",subtitle:"No data available for the specified period",icon:"coins-add"})),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:2,onRefresh:o[0]||(o[0]=i=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-1522f636"]]),ou=t=>(a.pushScopeId("data-v-a3559196"),t=t(),a.popScopeId(),t),oT={class:"trade-widget"},aT={class:"trade-widget__content"},iT={class:"trade-widget__top"},sT={class:"trade-widget__title-wrapper"},lT=ou(()=>a.createElementVNode("div",{class:"trade-widget__title"},"Trades Performance",-1)),dT={class:"trade-widget__info"},cT={class:"trade-widget__total-wrapper"},uT=ou(()=>a.createElementVNode("div",{class:"trade-widget__total-wrapper__title"},"Total",-1)),hT={class:"trade-widget__total-wrapper__total"},pT={class:"trade-widget__total-wrapper__value"},fT={class:"trade-widget__points"},mT={class:"trade-widget__point"},_T={class:"trade-widget__point__title"},gT=ou(()=>a.createElementVNode("div",{class:"trade-widget__point__line"},null,-1)),bT=Me({__name:"TradePerformanceWidget",props:{totalTrades:Number,minDate:Date,tradePoints:Array,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=a.reactive({totalTrades:0}),r=e,o=t;return a.watch(()=>o.totalTrades,i=>{Jr.to(n,{duration:1.5,totalTrades:i})},{immediate:!0}),(i,s)=>(a.openBlock(),a.createElementBlock("div",oT,[a.createElementVNode("div",aT,[a.createElementVNode("div",iT,[a.createElementVNode("div",sT,[lT,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("It displays the number of profitable and unprofitable positions. This widget is very useful for understanding your trading opportunities. ")]),_:1})])]),a.createElementVNode("div",dT,[a.createElementVNode("div",cT,[uT,a.createElementVNode("div",hT,[a.createElementVNode("div",pT,a.toDisplayString(a.unref(De)(t.isMask,Math.floor(n.totalTrades),{repeat:5})),1)])]),a.createElementVNode("div",fT,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.tradePoints,l=>(a.openBlock(),a.createElementBlock("div",mT,[a.createElementVNode("div",_T,a.toDisplayString(l.title),1),gT,a.createElementVNode("div",{class:a.normalizeClass(["trade-widget__point__value",l.class?l.class:""])},a.toDisplayString(a.unref(De)(t.isMask,l.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:s[0]||(s[0]=l=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-a3559196"]]),au=t=>(a.pushScopeId("data-v-13ed57a4"),t=t(),a.popScopeId(),t),yT={class:"winrate-widget"},wT={class:"winrate-widget__winrate"},vT={class:"winrate-widget__title-wrapper"},xT=au(()=>a.createElementVNode("div",{class:"winrate-widget__title"},"Daily Winrate",-1)),kT={class:"winrate-widget__chart"},CT={class:"winrate-widget__data"},MT={class:"winrate-widget__data_value"},ST=au(()=>a.createElementVNode("div",{class:"winrate-widget__data_title"},"Winrate",-1)),LT={class:"winrate-widget__average-rr"},DT={class:"winrate-widget__title-wrapper"},$T=au(()=>a.createElementVNode("div",{class:"winrate-widget__title"},"Average RR",-1)),TT=Me({__name:"WinrateWidget",props:{winrate:{type:Number,default:0},minRR:{type:Number,default:0},averageRR:{type:Number,default:0},maxRR:{type:Number,default:0},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=e;return(r,o)=>(a.openBlock(),a.createElementBlock("div",yT,[a.createElementVNode("div",wT,[a.createElementVNode("div",vT,[xT,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Displays the percentage of your successful positions. ")]),_:1})]),a.createElementVNode("div",kT,[a.renderSlot(r.$slots,"roundSlider",{},void 0,!0),a.createElementVNode("div",CT,[a.createElementVNode("div",MT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(it)(t.winrate,2)))+"% ",1),ST])])]),a.createElementVNode("div",LT,[a.createElementVNode("div",DT,[$T,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Risk Reward, defines the ratio of potential profit to loss you can get. ")]),_:1})]),a.createVNode(a.unref(X2),{avg:t.averageRR,min:t.minRR,max:t.maxRR,isMask:t.isMask},null,8,["avg","min","max","isMask"])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:o[0]||(o[0]=i=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-13ed57a4"]]),ET=t=>(a.pushScopeId("data-v-d204a720"),t=t(),a.popScopeId(),t),OT={class:"average-rr-line-container"},VT={class:"average-rr-line"},PT={key:0,class:"average-rr-line__progress"},BT=[ET(()=>a.createElementVNode("div",{class:"average-rr-line__dot"},null,-1))],NT={class:"coefficients"},FT={class:"coefficients__value -min"},AT={class:"coefficients__value -avg"},RT={class:"coefficients__value -max"},X2=Me({__name:"AverageRRLine",props:{min:{type:Number,default:0},avg:{type:Number,default:0},max:{type:Number,default:0},isMask:{type:Boolean,default:!1}},setup(t){return(e,n)=>(a.openBlock(),a.createElementBlock("div",OT,[a.createElementVNode("div",VT,[t.avg&&t.max?(a.openBlock(),a.createElementBlock("div",PT,BT)):a.createCommentVNode("",!0)]),a.createElementVNode("div",NT,[a.createElementVNode("div",FT,a.toDisplayString(a.unref(De)(t.isMask,t.min,{repeat:3})),1),a.createElementVNode("div",AT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(it)(t.avg))),1),a.createElementVNode("div",RT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(it)(t.max),{repeat:3})),1)])]))}},[["__scopeId","data-v-d204a720"]]);function J2(t){return a.getCurrentScope()?(a.onScopeDispose(t),!0):!1}function Ki(t){return typeof t=="function"?t():a.unref(t)}const Q2=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zT=Object.prototype.toString,IT=t=>zT.call(t)==="[object Object]",Xi=()=>{},iu=HT();function HT(){var t,e;return Q2&&((t=window?.navigator)==null?void 0:t.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((e=window?.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}const e6={mounted:"mounted",updated:"updated",unmounted:"unmounted"};function jT(...t){if(t.length!==1)return a.toRef(...t);const e=t[0];return typeof e=="function"?a.readonly(a.customRef(()=>({get:e,set:Xi}))):a.ref(e)}function Ji(t){var e;const n=Ki(t);return(e=n?.$el)!=null?e:n}const t6=Q2?window:void 0;function Bl(...t){let e,n,r,o;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,o]=t,e=t6):[e,n,r,o]=t,!e)return Xi;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],s=()=>{i.forEach(u=>u()),i.length=0},l=(u,h,p,f)=>(u.addEventListener(h,p,f),()=>u.removeEventListener(h,p,f)),d=a.watch(()=>[Ji(e),Ki(o)],([u,h])=>{if(s(),!u)return;const p=IT(h)?{...h}:h;i.push(...n.flatMap(f=>r.map(_=>l(u,f,_,p))))},{immediate:!0,flush:"post"}),c=()=>{d(),s()};return J2(c),c}let n6=!1;function r6(t,e,n={}){const{window:r=t6,ignore:o=[],capture:i=!0,detectIframe:s=!1}=n;if(!r)return Xi;iu&&!n6&&(n6=!0,Array.from(r.document.body.children).forEach(p=>p.addEventListener("click",Xi)),r.document.documentElement.addEventListener("click",Xi));let l=!0;const d=p=>o.some(f=>{if(typeof f=="string")return Array.from(r.document.querySelectorAll(f)).some(_=>_===p.target||p.composedPath().includes(_));{const _=Ji(f);return _&&(p.target===_||p.composedPath().includes(_))}}),u=[Bl(r,"click",p=>{const f=Ji(t);if(!(!f||f===p.target||p.composedPath().includes(f))){if(p.detail===0&&(l=!d(p)),!l){l=!0;return}e(p)}},{passive:!0,capture:i}),Bl(r,"pointerdown",p=>{const f=Ji(t);l=!d(p)&&!!(f&&!p.composedPath().includes(f))},{passive:!0}),s&&Bl(r,"blur",p=>{setTimeout(()=>{var f;const _=Ji(t);((f=r.document.activeElement)==null?void 0:f.tagName)==="IFRAME"&&!_?.contains(r.document.activeElement)&&e(p)},0)})].filter(Boolean);return()=>u.forEach(p=>p())}const su={[e6.mounted](t,e){const n=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=r6(t,e.value,{capture:n});else{const[r,o]=e.value;t.__onClickOutside_stop=r6(t,r,Object.assign({capture:n},o))}},[e6.unmounted](t){t.__onClickOutside_stop()}};function lu(t){return typeof Window<"u"&&t instanceof Window?t.document.documentElement:typeof Document<"u"&&t instanceof Document?t.documentElement:t}function o6(t){const e=window.getComputedStyle(t);if(e.overflowX==="scroll"||e.overflowY==="scroll"||e.overflowX==="auto"&&t.clientWidth<t.scrollWidth||e.overflowY==="auto"&&t.clientHeight<t.scrollHeight)return!0;{const n=t.parentNode;return!n||n.tagName==="BODY"?!1:o6(n)}}function ZT(t){const e=t||window.event,n=e.target;return o6(n)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}const du=new WeakMap;function YT(t,e=!1){const n=a.ref(e);let r=null,o="";a.watch(jT(t),l=>{const d=lu(Ki(l));if(d){const c=d;if(du.get(c)||du.set(c,c.style.overflow),c.style.overflow!=="hidden"&&(o=c.style.overflow),c.style.overflow==="hidden")return n.value=!0;if(n.value)return c.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=lu(Ki(t));!l||n.value||(iu&&(r=Bl(l,"touchmove",d=>{ZT(d)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},s=()=>{const l=lu(Ki(t));!l||!n.value||(iu&&r?.(),l.style.overflow=o,du.delete(l),n.value=!1)};return J2(s),a.computed({get(){return n.value},set(l){l?i():s()}})}function WT(){let t=!1;const e=a.ref(!1);return(n,r)=>{if(e.value=r.value,t)return;t=!0;const o=YT(n,r.value);a.watch(e,i=>o.value=i)}}WT();//! moment.js
42
+ <span> | ${B4(L[0],"EEE, dd LLL, yyyy")}</span></div>`;m.firstChild;)m.firstChild.remove();m.appendChild(T)}const{offsetLeft:g,offsetTop:b,clientWidth:w}=f.canvas;let y=g+_.caretX;const C=b+_.caretY,x=m.clientWidth;y+x>w&&(y-=x),m.style.opacity="1",m.style.left=y+"px",m.style.top=C+"px"}},u=p=>{const{chart:f}=p,_=d("chart-line",f),m=f.chartArea;f.canvas.addEventListener("mousemove",function(g){const b=f.canvas.getBoundingClientRect(),w=g.clientX-b.left,y=g.clientY-b.top;w>=m.left&&w<=m.right&&y>=m.top&&y<=m.bottom?(_.style.left=w+"px",_.style.top=m.top+"px",_.style.height=m.bottom-m.top+"px",_.style.display="flex"):_.style.display="none"}),f.canvas.addEventListener("mouseout",function(){_.style.display="none"})},h=a.computed(()=>({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},scales:{x:{ticks:{display:!o.isEmpty,callback:function(p){return N4(this.getLabelForValue(p)).slice(0,3)},color:"#8E8E93",font:{size:14,weight:400,family:"'SF Pro Display', sans-serif"},padding:15,align:"center"},grid:{display:!1},border:{color:r.value?"#2D2D2D":"#EDEDED"}},y:{ticks:{display:!o.isEmpty,callback:function(p){return e.ticksCallback(p)},color:"#8E8E93",font:{size:14,weight:400,family:"'SF Pro Display', sans-serif"},padding:15},grid:{color:r.value?"#2D2D2D":"#EDEDED",drawTicks:!1},border:{display:!1,dash:[4,4],dashOffset:1}}},plugins:{tooltip:{enabled:!1,position:"nearest",external:c},legend:!1},elements:{line:{backgroundColor:p=>l(p),tension:.3,borderWidth:2,borderColor:e.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:"circle",pointRadius:1,pointHoverRadius:8,pointBackgroundColor:e.borderColor,pointBorderWidth:0,pointHoverBorderWidth:3,pointBorderColor:"#fff",pointHoverBorderColor:"#fff",pointHitRadius:50}},onHover:u}));return a.watch(()=>e.isMask,()=>{n.value+=1},{immediate:!0}),(p,f)=>(a.openBlock(),a.createElementBlock("div",hD,[(a.openBlock(),a.createBlock(a.unref(q2),{key:n.value,data:s.value,options:h.value},null,8,["data","options"]))]))}},tu={__name:"SimpleLineChart",props:{data:{type:Array,required:!0},borderColor:{type:String,default:"#56B683"},gradient:{type:Object,default:{height:200,startColor:"rgba(86, 182, 131, 0.1)",endColor:"rgba(86, 182, 131, 0)"}}},setup(t){Wi.register(O2,P2,m2,Ui,k2);const e=t,n=s=>{const l=new Set,d=[],c=s.map(h=>(l.add(h.date),h.balance));return d.push({data:c}),{labels:Array.from(l),datasets:d}},r=a.computed(()=>n(e.data)),o=s=>{const d=s.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return d.addColorStop(0,e.gradient.startColor),d.addColorStop(1,e.gradient.endColor),d},i=a.ref({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{display:!1}},plugins:{tooltip:!1,legend:!1},elements:{line:{backgroundColor:s=>o(s),tension:.05,borderWidth:3,borderColor:e.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:!1}}});return(s,l)=>(a.openBlock(),a.createBlock(a.unref(q2),{data:r.value,options:i.value},null,8,["data","options"]))}},pD=t=>(a.pushScopeId("data-v-a1d419ad"),t=t(),a.popScopeId(),t),fD={class:"import-data"},mD={class:"import-data__content"},_D=pD(()=>a.createElementVNode("div",{class:"import-data__text"},[a.createTextVNode(" Importing data from the exchange. "),a.createElementVNode("br"),a.createTextVNode(" The widget will be displayed after the page reloads ")],-1)),Cr=Me({__name:"ImportData",emits:["refresh"],setup(t,{emit:e}){const n=e;return(r,o)=>(a.openBlock(),a.createElementBlock("div",fD,[a.createElementVNode("div",mD,[a.createElementVNode("div",{onClick:o[0]||(o[0]=i=>n("refresh")),class:"import-data__refresh-btn"},[a.createVNode(a.unref(ke),{icon:"arrow-rotating"})]),_D])]))}},[["__scopeId","data-v-a1d419ad"]]),gD=t=>(a.pushScopeId("data-v-34167713"),t=t(),a.popScopeId(),t),bD={class:"account-balance-widget"},yD={class:"account-balance-widget__top"},wD={class:"account-balance-widget__title-wrapper"},vD=gD(()=>a.createElementVNode("div",{class:"account-balance-widget__title"},"Account Balance",-1)),xD=Me({__name:"AccountBalanceWidget",props:{balanceChartData:{type:Array,default:[]},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=i=>i>=1e3||i<=-1e3?De(o.isMask,it(i/1e3,2)+"k",{repeat:3}):De(o.isMask,it(i,2),{repeat:3}),r=e,o=t;return(i,s)=>(a.openBlock(),a.createElementBlock("div",bD,[a.createElementVNode("div",yD,[a.createElementVNode("div",wD,[vD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("This graphic widget displays changes to your deposit over a specific time period. ")]),_:1})])]),a.createVNode(a.unref(eu),{data:t.balanceChartData,"data-type":"balanceChartData","ticks-callback":n,isMask:t.isMask},null,8,["data","isMask"]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:s[0]||(s[0]=l=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-34167713"]]),G2=t=>(a.pushScopeId("data-v-b0d26ed0"),t=t(),a.popScopeId(),t),kD={class:"balance-widget"},CD={class:"balance-part"},MD={class:"balance-part__top"},SD={class:"balance-part__title-wrapper"},LD=G2(()=>a.createElementVNode("div",{class:"balance-part__title"},"Balance",-1)),DD={class:"balance-part__content"},$D={class:"balance-part__content__wrapper"},TD={class:"balance-part__content__bitcoin"},ED={key:0,class:"divider"},OD={key:1,class:"personal-target-part"},VD={class:"personal-target-part__top"},PD={class:"personal-target-part__title-wrapper"},BD=G2(()=>a.createElementVNode("div",{class:"personal-target-part__title"},"Personal target",-1)),ND={class:"personal-target-part__content"},FD={class:"personal-target-part__content__current"},AD={class:"personal-target-part__content__from"},RD=Me({__name:"BalanceWidget",props:{BTC:{type:Number,default:0},USDT:{type:Number,default:0},delta:{type:Number,default:0},balanceChartData:{type:Array,default:[]},currentProfit:{type:Number,default:0},profit:{type:Number,default:0},drawdown:{type:Number,default:0},isPercentage:Boolean,isShare:{type:Boolean,default:!1},isHidden:{type:Boolean,default:!1},isMaskBalance:{type:Boolean,default:!1},isMaskPersonalTarget:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["switchModal","switchVisibility","refresh"],setup(t,{emit:e}){const n=e,r=t,o=a.reactive({USDT:0,BTC:0,delta:0}),i=a.reactive({currentProfit:0}),s=a.ref(0),l=()=>{n("switchVisibility")},d=a.computed(()=>({currentProfit:r.currentProfit,profit:r.profit,drawdown:r.drawdown})),c=a.computed(()=>`${44+(String(it(r.USDT,2)).length-1)*16}px`);return a.watch(()=>r.USDT,u=>{Jr.to(o,{duration:1.5,USDT:Number(u)||0,BTC:r.BTC,delta:r.delta})},{immediate:!0}),a.watch(()=>d,u=>{s.value=Jr.to(i,{duration:1.5,currentProfit:r.currentProfit})},{immediate:!0,deep:!0}),(u,h)=>(a.openBlock(),a.createElementBlock("div",kD,[a.createElementVNode("div",CD,[a.createElementVNode("div",MD,[a.createElementVNode("div",SD,[LD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Displays the balance of your deposit in USD and BTC equivalent, additionally showing the growth/fall of your balance.")]),_:1})]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",{key:0,class:"balance-part__visibility-switcher",onClick:l},[a.withDirectives(a.createVNode(a.unref(ke),{icon:"eye"},null,512),[[a.vShow,t.isHidden]]),a.withDirectives(a.createVNode(a.unref(ke),{icon:"eye-slash"},null,512),[[a.vShow,!t.isHidden]])]))]),a.createElementVNode("div",DD,[a.createElementVNode("div",$D,[a.createElementVNode("div",{class:"balance-part__content__count",style:a.normalizeStyle({minWidth:c.value})},a.toDisplayString(a.unref(De)(t.isMaskBalance,a.unref(Je)(o.USDT),{prefix:"$"})),5),t.delta?(a.openBlock(),a.createBlock(a.unref(rd),{key:0,class:"balance-part__content__chips","is-hidden":t.isMaskBalance,percentage:"",delta:o.delta},null,8,["is-hidden","delta"])):a.createCommentVNode("",!0)]),a.createElementVNode("div",TD," = "+a.toDisplayString(a.unref(De)(t.isMaskBalance,o.BTC))+" BTC ",1)]),t.isShare?(a.openBlock(),a.createBlock(a.unref(tu),{key:0,class:"balance-part__chart balance-part__chart--share",data:t.balanceChartData,gradient:{height:500,startColor:"rgba(86, 182, 131, 0.1)",endColor:"rgba(86, 182, 131, 0)"}},null,8,["data"])):(a.openBlock(),a.createBlock(a.unref(tu),{key:1,class:"balance-part__chart",data:t.balanceChartData},null,8,["data"]))]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",ED)),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",OD,[a.createElementVNode("div",VD,[a.createElementVNode("div",PD,[BD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode(" In this widget, set your desired balance growth target in $ or % for a specific period. It will display your PNL relative to the goal, helping you know when to stop or pay closer attention. ")]),_:1})]),a.createElementVNode("div",{class:"balance-part__modal-switcher",onClick:h[0]||(h[0]=p=>n("switchModal"))},[a.createVNode(a.unref(ke),{icon:"settings"})])]),a.createElementVNode("div",ND,[a.createElementVNode("div",FD,a.toDisplayString(a.unref(De)(t.isMaskPersonalTarget,a.unref(Je)(i.currentProfit,{isPercentage:t.isPercentage,isFixed:!0}),{prefix:"$",repeat:5})),1),a.createElementVNode("div",AD," / "+a.toDisplayString(a.unref(De)(t.isMaskPersonalTarget,a.unref(Je)(t.profit,{isPercentage:t.isPercentage,isFixed:!0}))),1)]),(a.openBlock(),a.createBlock(a.unref(om),{key:s.value,"current-profit":t.currentProfit,"is-hidden":t.isMaskPersonalTarget,drawdown:t.drawdown,profit:t.profit,"is-percentage":t.isPercentage},null,8,["current-profit","is-hidden","drawdown","profit","is-percentage"]))])),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:2,onRefresh:h[1]||(h[1]=p=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-b0d26ed0"]]),Pl=t=>(a.pushScopeId("data-v-9786b83c"),t=t(),a.popScopeId(),t),zD={class:"calendar-widget"},ID={class:"calendar-widget__calendar"},HD={class:"calendar-widget__top"},jD={class:"calendar-widget__title-wrapper"},ZD=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__title"},"Calendar",-1)),YD={class:"stat-calendar"},WD={class:"stat-calendar__week-days"},UD={key:0,class:"stat-calendar__row-wrapper"},qD={class:"stat-calendar__row"},GD=["onClick"],KD=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__divider"},null,-1)),XD={key:0,class:"calendar-widget__day"},JD={class:"calendar-widget__day__title-wrapper"},QD={class:"calendar-widget__day__title"},e$={class:"calendar-widget__day__content"},t$={class:"calendar-widget__point"},n$={class:"calendar-widget__point__title"},r$=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),o$={class:"calendar-widget__day__trades"},a$={class:"calendar-widget__point"},i$={class:"calendar-widget__point__title"},s$=Pl(()=>a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),l$={__name:"CalendarWidget",props:{rows:Array,dailyStatData:Object,minDate:Date,currentDate:{type:Date,default:new Date},maxDate:{type:Date,default:Date()},isCurrentDate:Function,isCurrentDay:Function,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["setNewDate","chooseMonth","refresh","getDetails"],setup(t,{emit:e}){const n=["Mo","Tu","We","Th","Fr","Sa","Su"],r=a.ref(null),o=a.ref(null),i=e,s=t,l=u=>{r.value=u.year,o.value=u.month,i("chooseMonth",u)};a.nextTick(()=>{const u=new Date;r.value=u.getFullYear(),o.value=u.getMonth()});const d=a.computed(()=>[{title:"Total trades",value:s.dailyStatData&&s.dailyStatData.trades_total_count||0},{title:"Winrate",value:Je(s.dailyStatData&&s.dailyStatData.win_rate||0,{isPercentage:!0,isFixed:!0}),class:s.dailyStatData&&s.dailyStatData.win_rate>=50?"-win":"-loss"},{title:"Return",value:Je(s.dailyStatData&&s.dailyStatData.return_total||0),class:s.dailyStatData&&s.dailyStatData.return_total>=0?"-win":"-loss"},{title:"Return on winners",value:Je(s.dailyStatData&&s.dailyStatData.return_win||0)},{title:"Return on losers",value:Je(s.dailyStatData&&s.dailyStatData.return_lose||0)},{title:"Commission",value:Je(s.dailyStatData&&s.dailyStatData.commission||0)}]),c=a.computed(()=>[{title:"Win trades",value:s.dailyStatData&&s.dailyStatData.trades_win_count||0,isPositive:!0},{title:"Loss trades",value:-(s.dailyStatData&&s.dailyStatData.trades_lose_count)||0,isNegative:!1}]);return(u,h)=>(a.openBlock(),a.createElementBlock("div",zD,[a.createElementVNode("div",ID,[a.createElementVNode("div",HD,[a.createElementVNode("div",jD,[ZD,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("A widget that displays the performance of your trades in a calendar format. Here you can see profitable and unprofitable days with detailed statistics for each day. ")]),_:1})]),t.currentDate&&t.minDate?(a.openBlock(),a.createBlock(a.unref(nm),{key:0,"current-date":t.currentDate||new Date,"min-date":t.minDate,"max-date":t.maxDate,onOnChange:l,year:r.value,"onUpdate:year":h[0]||(h[0]=p=>r.value=p),month:o.value,"onUpdate:month":h[1]||(h[1]=p=>o.value=p)},null,8,["current-date","min-date","max-date","year","month"])):a.createCommentVNode("",!0)]),a.createElementVNode("div",YD,[a.createElementVNode("div",WD,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(n,(p,f)=>a.createElementVNode("div",{class:a.normalizeClass(["stat-calendar__week-day",{"-current":t.isCurrentDay(f)}])},a.toDisplayString(p),3)),64))]),t.rows?(a.openBlock(),a.createElementBlock("div",UD,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.rows,p=>(a.openBlock(),a.createElementBlock("div",qD,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(p,f=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["stat-calendar__day",{"-unavailable":f.unavailable,"-empty":!f.date,"-current":t.isCurrentDate(f.date),"-positive":f.win,"-negative":f.win===!1}]),onClick:_=>i("setNewDate",f.date)},a.toDisplayString(f.date?f.date:""),11,GD))),256))]))),256))])):a.createCommentVNode("",!0)])]),KD,t.dailyStatData&&!t.dailyStatData.isNull?(a.openBlock(),a.createElementBlock("div",XD,[a.createElementVNode("div",JD,[a.createElementVNode("div",QD,a.toDisplayString(t.currentDate.getDate()+" "+t.currentDate.toLocaleString("en-us",{month:"long"})),1),a.createVNode(ke,{icon:"preview",onClick:h[2]||(h[2]=p=>i("getDetails"))})]),a.createElementVNode("div",e$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(d.value,p=>(a.openBlock(),a.createElementBlock("div",t$,[a.createElementVNode("div",n$,a.toDisplayString(p.title),1),r$,a.createElementVNode("div",{class:a.normalizeClass(["calendar-widget__point__value",p.class?p.class:""])},a.toDisplayString(a.unref(De)(t.isMask,p.value,{repeat:5})),3)]))),256)),a.createVNode(a.unref(Af),{isHidden:t.isMask,long:t.dailyStatData?.long_count,short:t.dailyStatData?.short_count},null,8,["isHidden","long","short"]),a.createElementVNode("div",o$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(c.value,p=>(a.openBlock(),a.createElementBlock("div",a$,[a.createElementVNode("div",i$,a.toDisplayString(p.title),1),s$,a.createVNode(a.unref(rd),{isHidden:t.isMask,"is-positive":p.isPositive,"is-negative":p.isNegative,delta:p.value},null,8,["isHidden","is-positive","is-negative","delta"])]))),256))])])])):(a.openBlock(),a.createBlock(a.unref($c),{key:1,class:"-empty"})),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:2,onRefresh:h[3]||(h[3]=p=>i("refresh"))})):a.createCommentVNode("",!0)]))}},d$=Me(l$,[["__scopeId","data-v-9786b83c"]]),nu=t=>(a.pushScopeId("data-v-f0601396"),t=t(),a.popScopeId(),t),c$={class:"commission-widget"},u$={class:"commission-widget__content"},h$={class:"commission-widget__top"},p$={class:"commission-widget__title-wrapper"},f$=nu(()=>a.createElementVNode("div",{class:"commission-widget__title"},"Commissions and Fees",-1)),m$={class:"commission-widget__info"},_$={class:"commission-widget__total-wrapper"},g$=nu(()=>a.createElementVNode("div",{class:"commission-widget__total-wrapper__title"},"Total",-1)),b$={class:"commission-widget__total-wrapper__total"},y$={class:"commission-widget__total-wrapper__value"},w$={class:"commission-widget__points"},v$={class:"commission-widget__point"},x$={class:"commission-widget__point__title"},k$=nu(()=>a.createElementVNode("div",{class:"commission-widget__point__line"},null,-1)),C$=Me({__name:"CommissionsFeesWidget",props:{commissionData:Object,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=e,r=t,o=a.reactive({commission:0}),i=a.computed(()=>r.commissionData&&r.commissionData.commission||0),s=a.computed(()=>r.commissionData&&r.commissionData.pnl||0),l=a.computed(()=>[{title:"AVG fees per trade",value:`${Je(r.commissionData&&r.commissionData.fees_per_trade||0)}`},{title:"PNL / Commission",value:s.value&&i.value?`${Je(s.value)}/${Je(i.value)}`:`${Je(0)}`},{title:"AVG fees per day",value:`${Je(r.commissionData&&r.commissionData.fees_per_day||0)}`},{title:"Funding",value:`${Je(r.commissionData&&r.commissionData.funding||0)}`}]);return a.watch(i,d=>{Jr.to(o,{duration:1.5,commission:d})},{immediate:!0}),(d,c)=>(a.openBlock(),a.createElementBlock("div",c$,[a.createElementVNode("div",u$,[a.createElementVNode("div",h$,[a.createElementVNode("div",p$,[f$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("This widget helps traders finally understand how much money they spent on commissions and funding. ")]),_:1})])]),a.createElementVNode("div",m$,[a.createElementVNode("div",_$,[g$,a.createElementVNode("div",b$,[a.createElementVNode("div",y$,a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(o.commission),{repeat:5})),1)])]),a.createElementVNode("div",w$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(l.value,(u,h)=>(a.openBlock(),a.createElementBlock("div",v$,[a.createElementVNode("div",x$,a.toDisplayString(u.title),1),k$,a.createElementVNode("div",{class:a.normalizeClass(["commission-widget__point__value",u.class?u.class:""])},a.toDisplayString(a.unref(De)(t.isMask,u.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:c[0]||(c[0]=u=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-f0601396"]]),M$=t=>(a.pushScopeId("data-v-98670dfc"),t=t(),a.popScopeId(),t),S$={class:"performance-widget"},L$={class:"performance-widget__top"},D$={class:"performance-widget__title-wrapper"},$$=M$(()=>a.createElementVNode("div",{class:"performance-widget__title"},"Performance (cumulative)",-1)),T$=Me({__name:"PerformanceWidget",props:{performanceChartData:{type:Array,default:[]},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){a.ref("week");const n=t,r=e,o=i=>De(n.isMask,it(i,2)+"%",{repeat:3});return(i,s)=>(a.openBlock(),a.createElementBlock("div",S$,[a.createElementVNode("div",L$,[a.createElementVNode("div",D$,[$$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("The linear graphics widget displays the profit as a percentage of the deposit. ")]),_:1})])]),a.createVNode(a.unref(eu),{data:t.performanceChartData,"data-type":"performanceChartData","ticks-callback":o,isMask:t.isMask},null,8,["data","isMask"]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:s[0]||(s[0]=l=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-98670dfc"]]),ru=t=>(a.pushScopeId("data-v-e936f12b"),t=t(),a.popScopeId(),t),E$={class:"return-widget"},O$={class:"return-widget__content"},V$={class:"return-widget__top"},P$={class:"return-widget__title-wrapper"},B$=ru(()=>a.createElementVNode("div",{class:"return-widget__title"},"Return",-1)),N$={class:"return-widget__info"},F$={class:"return-widget__total-wrapper"},A$=ru(()=>a.createElementVNode("div",{class:"return-widget__total-wrapper__title"},"Total",-1)),R$={class:"return-widget__total-wrapper__total"},z$={class:"return-widget__points"},I$={class:"return-widget__point"},H$={class:"return-widget__point__title"},j$=ru(()=>a.createElementVNode("div",{class:"return-widget__point__line"},null,-1)),Z$=["innerHTML"],Y$=Me({__name:"ReturnWidget",props:{totalReturn:{type:Number,default:0},win:{type:Number,default:0},lose:{type:Number,default:0},returnPeriod:{type:Number,default:0},profitFactor:{type:Number,default:0},daily:{type:Number,default:0},changeRate:{type:Number,default:0},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=e,r=t,o=a.computed(()=>`${44+(String(it(r.returnPeriod,2)).length-1)*16}px`),i=a.reactive({returnPeriod:0,changeRate:0}),s=a.computed(()=>[{title:"Average return per trade",value:r.totalReturn,options:{isPlus:!0,isFixed:!0},class:r.totalReturn===0?"":r.totalReturn>0?"-win":"-loss"},{title:"Daily return",value:r.daily,options:{isPlus:!0,isFixed:!0},class:r.daily===0?"":r.daily>0?"-win":"-loss"},{title:"Return on winners",value:r.win,class:"-win"},{title:"Return on losers",value:r.lose,class:"-loss"}]),l=a.computed(()=>r.returnPeriod>0),d=a.computed(()=>r.returnPeriod<0),c=a.computed(()=>r.profitFactor>1?"-positive":"-negative"),u=a.computed(()=>r.profitFactor>0?`Your profit factor is ${De(r.isMask,it(r.profitFactor),{repeat:5})}. <br /> You earn ${De(r.isMask,Je(r.profitFactor),{repeat:5,prefix:"$"})} on every ${De(r.isMask,"$1",{repeat:5,prefix:"$"})} loss.`:`Your profit factor is ${De(r.isMask,it(r.profitFactor),{repeat:5})}. <br/> You loss ${De(r.isMask,Je(Math.abs(r.profitFactor)),{repeat:5,prefix:"$"})} on every ${De(r.isMask,"$1",{repeat:5,prefix:"$"})} earn. `);return a.watch(()=>r.returnPeriod,h=>{Jr.to(i,{duration:1.5,returnPeriod:h,changeRate:r.changeRate})},{immediate:!0}),(h,p)=>(a.openBlock(),a.createElementBlock("div",E$,[a.createElementVNode("div",O$,[a.createElementVNode("div",V$,[a.createElementVNode("div",P$,[B$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("This widget displays an increase in NET profit in dollars and percentage relative to the deposit for the specified period you have chosen. ")]),_:1})])]),a.createElementVNode("div",N$,[a.createElementVNode("div",F$,[A$,a.createElementVNode("div",R$,[a.createElementVNode("div",{class:a.normalizeClass(["return-widget__total-wrapper__value",{"-positive":l.value,"-negative":d.value}]),style:a.normalizeStyle({minWidth:o.value})},a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(i.returnPeriod,{isPlus:!0,isFixed:!0}),{repeat:5})),7),r.changeRate?(a.openBlock(),a.createBlock(a.unref(rd),{key:0,percentage:"",class:"return-widget__total-wrapper__chips",isHidden:t.isMask,delta:i.changeRate},null,8,["isHidden","delta"])):a.createCommentVNode("",!0)])]),a.createElementVNode("div",z$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(s.value,f=>(a.openBlock(),a.createElementBlock("div",I$,[a.createElementVNode("div",H$,a.toDisplayString(f.title),1),j$,a.createElementVNode("div",{class:a.normalizeClass(["return-widget__point__value",f.class?f.class:""])},a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(f.value,f.options),{repeat:5,prefix:"$"})),3)]))),256))])])]),t.profitFactor?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["return-widget__profit",c.value])},[a.createVNode(a.unref(ke),{icon:"tip",class:"return-widget__profit__icon"}),a.createElementVNode("div",{class:"return-widget__profit__text",innerHTML:u.value},null,8,Z$)],2)):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:1,onRefresh:p[0]||(p[0]=f=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-e936f12b"]]),K2=t=>(a.pushScopeId("data-v-1522f636"),t=t(),a.popScopeId(),t),W$={class:"top-positions-widget"},U$={class:"top-positions-widget__top"},q$={class:"top-positions-widget__title-wrapper"},G$=K2(()=>a.createElementVNode("div",{class:"top-positions-widget__title"},"Top Positions",-1)),K$={key:0,class:"top-positions-widget__returns"},X$={class:"top-positions-widget__return"},J$={class:"top-positions-widget__return__left"},Q$=K2(()=>a.createElementVNode("div",{class:"top-positions-widget__return__line"},null,-1)),eT=["onClick"],tT={class:"top-positions-widget__return__right"},nT={class:"top-positions-widget__return__pnl"},rT=Me({__name:"TopPositionsWidget",props:{topPositions:{type:Array,default:[]},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh","onPairClick"],setup(t,{emit:e}){a.ref("week");const n=e;return(r,o)=>(a.openBlock(),a.createElementBlock("div",W$,[a.createElementVNode("div",U$,[a.createElementVNode("div",q$,[G$,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Helps you find the top profitable positions. We calculate only net PNL, taking into account commission and funding. ")]),_:1})])]),t.topPositions&&t.topPositions.length?(a.openBlock(),a.createElementBlock("div",K$,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.topPositions,i=>(a.openBlock(),a.createElementBlock("div",X$,[a.createElementVNode("div",J$,[Q$,a.createElementVNode("div",{class:"top-positions-widget__return__pair",onClick:s=>n("onPairClick",i)},[a.createTextVNode(a.toDisplayString(a.unref(A4)(i.pair))+" ",1),a.createVNode(a.unref(ke),{icon:"chevron-right-small"})],8,eT)]),a.createElementVNode("div",tT,[a.createElementVNode("div",nT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(i.pnl,{isFixed:!0,isPlus:!0},{repeat:5}))),1),a.createElementVNode("div",{class:a.normalizeClass(["top-positions-widget__return__roi",i.roi<0?"-negative":"-positive"])},[a.createVNode(a.unref(ke),{icon:"bxs_up-arrow"}),a.createElementVNode("span",null,a.toDisplayString(a.unref(De)(t.isMask,a.unref(Je)(i.roi,{isPercentage:!0,isFixed:!0},{repeat:2}))),1)],2)])]))),256))])):(a.openBlock(),a.createBlock(a.unref($c),{key:1,title:"No more pair",subtitle:"No data available for the specified period",icon:"coins-add"})),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:2,onRefresh:o[0]||(o[0]=i=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-1522f636"]]),ou=t=>(a.pushScopeId("data-v-a3559196"),t=t(),a.popScopeId(),t),oT={class:"trade-widget"},aT={class:"trade-widget__content"},iT={class:"trade-widget__top"},sT={class:"trade-widget__title-wrapper"},lT=ou(()=>a.createElementVNode("div",{class:"trade-widget__title"},"Trades Performance",-1)),dT={class:"trade-widget__info"},cT={class:"trade-widget__total-wrapper"},uT=ou(()=>a.createElementVNode("div",{class:"trade-widget__total-wrapper__title"},"Total",-1)),hT={class:"trade-widget__total-wrapper__total"},pT={class:"trade-widget__total-wrapper__value"},fT={class:"trade-widget__points"},mT={class:"trade-widget__point"},_T={class:"trade-widget__point__title"},gT=ou(()=>a.createElementVNode("div",{class:"trade-widget__point__line"},null,-1)),bT=Me({__name:"TradePerformanceWidget",props:{totalTrades:Number,minDate:Date,tradePoints:Array,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=a.reactive({totalTrades:0}),r=e,o=t;return a.watch(()=>o.totalTrades,i=>{Jr.to(n,{duration:1.5,totalTrades:i})},{immediate:!0}),(i,s)=>(a.openBlock(),a.createElementBlock("div",oT,[a.createElementVNode("div",aT,[a.createElementVNode("div",iT,[a.createElementVNode("div",sT,[lT,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("It displays the number of profitable and unprofitable positions. This widget is very useful for understanding your trading opportunities. ")]),_:1})])]),a.createElementVNode("div",dT,[a.createElementVNode("div",cT,[uT,a.createElementVNode("div",hT,[a.createElementVNode("div",pT,a.toDisplayString(a.unref(De)(t.isMask,Math.floor(n.totalTrades),{repeat:5})),1)])]),a.createElementVNode("div",fT,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.tradePoints,l=>(a.openBlock(),a.createElementBlock("div",mT,[a.createElementVNode("div",_T,a.toDisplayString(l.title),1),gT,a.createElementVNode("div",{class:a.normalizeClass(["trade-widget__point__value",l.class?l.class:""])},a.toDisplayString(a.unref(De)(t.isMask,l.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:s[0]||(s[0]=l=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-a3559196"]]),au=t=>(a.pushScopeId("data-v-13ed57a4"),t=t(),a.popScopeId(),t),yT={class:"winrate-widget"},wT={class:"winrate-widget__winrate"},vT={class:"winrate-widget__title-wrapper"},xT=au(()=>a.createElementVNode("div",{class:"winrate-widget__title"},"Daily Winrate",-1)),kT={class:"winrate-widget__chart"},CT={class:"winrate-widget__data"},MT={class:"winrate-widget__data_value"},ST=au(()=>a.createElementVNode("div",{class:"winrate-widget__data_title"},"Winrate",-1)),LT={class:"winrate-widget__average-rr"},DT={class:"winrate-widget__title-wrapper"},$T=au(()=>a.createElementVNode("div",{class:"winrate-widget__title"},"Average RR",-1)),TT=Me({__name:"WinrateWidget",props:{winrate:{type:Number,default:0},minRR:{type:Number,default:0},averageRR:{type:Number,default:0},maxRR:{type:Number,default:0},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const n=e;return(r,o)=>(a.openBlock(),a.createElementBlock("div",yT,[a.createElementVNode("div",wT,[a.createElementVNode("div",vT,[xT,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Displays the percentage of your successful positions. ")]),_:1})]),a.createElementVNode("div",kT,[a.renderSlot(r.$slots,"roundSlider",{},void 0,!0),a.createElementVNode("div",CT,[a.createElementVNode("div",MT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(it)(t.winrate,2)))+"% ",1),ST])])]),a.createElementVNode("div",LT,[a.createElementVNode("div",DT,[$T,a.createVNode(a.unref(an),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode("Risk Reward, defines the ratio of potential profit to loss you can get. ")]),_:1})]),a.createVNode(a.unref(X2),{avg:t.averageRR,min:t.minRR,max:t.maxRR,isMask:t.isMask},null,8,["avg","min","max","isMask"])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Cr,{key:0,onRefresh:o[0]||(o[0]=i=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-13ed57a4"]]),ET=t=>(a.pushScopeId("data-v-d204a720"),t=t(),a.popScopeId(),t),OT={class:"average-rr-line-container"},VT={class:"average-rr-line"},PT={key:0,class:"average-rr-line__progress"},BT=[ET(()=>a.createElementVNode("div",{class:"average-rr-line__dot"},null,-1))],NT={class:"coefficients"},FT={class:"coefficients__value -min"},AT={class:"coefficients__value -avg"},RT={class:"coefficients__value -max"},X2=Me({__name:"AverageRRLine",props:{min:{type:Number,default:0},avg:{type:Number,default:0},max:{type:Number,default:0},isMask:{type:Boolean,default:!1}},setup(t){return(e,n)=>(a.openBlock(),a.createElementBlock("div",OT,[a.createElementVNode("div",VT,[t.avg&&t.max?(a.openBlock(),a.createElementBlock("div",PT,BT)):a.createCommentVNode("",!0)]),a.createElementVNode("div",NT,[a.createElementVNode("div",FT,a.toDisplayString(a.unref(De)(t.isMask,t.min,{repeat:3})),1),a.createElementVNode("div",AT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(it)(t.avg))),1),a.createElementVNode("div",RT,a.toDisplayString(a.unref(De)(t.isMask,a.unref(it)(t.max),{repeat:3})),1)])]))}},[["__scopeId","data-v-d204a720"]]);function J2(t){return a.getCurrentScope()?(a.onScopeDispose(t),!0):!1}function Ki(t){return typeof t=="function"?t():a.unref(t)}const Q2=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zT=Object.prototype.toString,IT=t=>zT.call(t)==="[object Object]",Xi=()=>{},iu=HT();function HT(){var t,e;return Q2&&((t=window?.navigator)==null?void 0:t.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((e=window?.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}const e6={mounted:"mounted",updated:"updated",unmounted:"unmounted"};function jT(...t){if(t.length!==1)return a.toRef(...t);const e=t[0];return typeof e=="function"?a.readonly(a.customRef(()=>({get:e,set:Xi}))):a.ref(e)}function Ji(t){var e;const n=Ki(t);return(e=n?.$el)!=null?e:n}const t6=Q2?window:void 0;function Bl(...t){let e,n,r,o;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,o]=t,e=t6):[e,n,r,o]=t,!e)return Xi;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],s=()=>{i.forEach(u=>u()),i.length=0},l=(u,h,p,f)=>(u.addEventListener(h,p,f),()=>u.removeEventListener(h,p,f)),d=a.watch(()=>[Ji(e),Ki(o)],([u,h])=>{if(s(),!u)return;const p=IT(h)?{...h}:h;i.push(...n.flatMap(f=>r.map(_=>l(u,f,_,p))))},{immediate:!0,flush:"post"}),c=()=>{d(),s()};return J2(c),c}let n6=!1;function r6(t,e,n={}){const{window:r=t6,ignore:o=[],capture:i=!0,detectIframe:s=!1}=n;if(!r)return Xi;iu&&!n6&&(n6=!0,Array.from(r.document.body.children).forEach(p=>p.addEventListener("click",Xi)),r.document.documentElement.addEventListener("click",Xi));let l=!0;const d=p=>o.some(f=>{if(typeof f=="string")return Array.from(r.document.querySelectorAll(f)).some(_=>_===p.target||p.composedPath().includes(_));{const _=Ji(f);return _&&(p.target===_||p.composedPath().includes(_))}}),u=[Bl(r,"click",p=>{const f=Ji(t);if(!(!f||f===p.target||p.composedPath().includes(f))){if(p.detail===0&&(l=!d(p)),!l){l=!0;return}e(p)}},{passive:!0,capture:i}),Bl(r,"pointerdown",p=>{const f=Ji(t);l=!d(p)&&!!(f&&!p.composedPath().includes(f))},{passive:!0}),s&&Bl(r,"blur",p=>{setTimeout(()=>{var f;const _=Ji(t);((f=r.document.activeElement)==null?void 0:f.tagName)==="IFRAME"&&!_?.contains(r.document.activeElement)&&e(p)},0)})].filter(Boolean);return()=>u.forEach(p=>p())}const su={[e6.mounted](t,e){const n=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=r6(t,e.value,{capture:n});else{const[r,o]=e.value;t.__onClickOutside_stop=r6(t,r,Object.assign({capture:n},o))}},[e6.unmounted](t){t.__onClickOutside_stop()}};function lu(t){return typeof Window<"u"&&t instanceof Window?t.document.documentElement:typeof Document<"u"&&t instanceof Document?t.documentElement:t}function o6(t){const e=window.getComputedStyle(t);if(e.overflowX==="scroll"||e.overflowY==="scroll"||e.overflowX==="auto"&&t.clientWidth<t.scrollWidth||e.overflowY==="auto"&&t.clientHeight<t.scrollHeight)return!0;{const n=t.parentNode;return!n||n.tagName==="BODY"?!1:o6(n)}}function ZT(t){const e=t||window.event,n=e.target;return o6(n)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}const du=new WeakMap;function YT(t,e=!1){const n=a.ref(e);let r=null,o="";a.watch(jT(t),l=>{const d=lu(Ki(l));if(d){const c=d;if(du.get(c)||du.set(c,c.style.overflow),c.style.overflow!=="hidden"&&(o=c.style.overflow),c.style.overflow==="hidden")return n.value=!0;if(n.value)return c.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=lu(Ki(t));!l||n.value||(iu&&(r=Bl(l,"touchmove",d=>{ZT(d)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},s=()=>{const l=lu(Ki(t));!l||!n.value||(iu&&r?.(),l.style.overflow=o,du.delete(l),n.value=!1)};return J2(s),a.computed({get(){return n.value},set(l){l?i():s()}})}function WT(){let t=!1;const e=a.ref(!1);return(n,r)=>{if(e.value=r.value,t)return;t=!0;const o=YT(n,r.value);a.watch(e,i=>o.value=i)}}WT();//! moment.js
43
43
  //! version : 2.30.1
44
44
  //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
45
45
  //! license : MIT