scope360-core 0.0.252 → 0.0.253

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.
@@ -38,7 +38,7 @@
38
38
  `)>-1?t.split(`
39
39
  `):t}function RS(t,e){const{element:n,datasetIndex:r,index:s}=e,o=t.getDatasetMeta(r).controller,{label:a,value:l}=o.getLabelAndValue(s);return{chart:t,label:a,parsed:o.getParsed(s),raw:t.data.datasets[r].data[s],formattedValue:l,dataset:o.getDataset(),dataIndex:s,datasetIndex:r,element:n}}function l2(t,e){const n=t.chart.ctx,{body:r,footer:s,title:o}=t,{boxWidth:a,boxHeight:l}=e,c=an(e.bodyFont),d=an(e.titleFont),u=an(e.footerFont),h=o.length,f=s.length,m=r.length,g=yn(e.padding);let p=g.height,_=0,y=r.reduce((v,M)=>v+M.before.length+M.lines.length+M.after.length,0);if(y+=t.beforeBody.length+t.afterBody.length,h&&(p+=h*d.lineHeight+(h-1)*e.titleSpacing+e.titleMarginBottom),y){const v=e.displayColors?Math.max(l,c.lineHeight):c.lineHeight;p+=m*v+(y-m)*c.lineHeight+(y-1)*e.bodySpacing}f&&(p+=e.footerMarginTop+f*u.lineHeight+(f-1)*e.footerSpacing);let C=0;const k=function(v){_=Math.max(_,n.measureText(v).width+C)};return n.save(),n.font=d.string,Fe(t.title,k),n.font=c.string,Fe(t.beforeBody.concat(t.afterBody),k),C=e.displayColors?a+2+e.boxPadding:0,Fe(r,v=>{Fe(v.before,k),Fe(v.lines,k),Fe(v.after,k)}),C=0,n.font=u.string,Fe(t.footer,k),n.restore(),_+=g.width,{width:_,height:p}}function FS(t,e){const{y:n,height:r}=e;return n<r/2?"top":n>t.height-r/2?"bottom":"center"}function IS(t,e,n,r){const{x:s,width:o}=r,a=n.caretSize+n.caretPadding;if(t==="left"&&s+o+a>e.width||t==="right"&&s-o-a<0)return!0}function HS(t,e,n,r){const{x:s,width:o}=n,{width:a,chartArea:{left:l,right:c}}=t;let d="center";return r==="center"?d=s<=(l+c)/2?"left":"right":s<=o/2?d="left":s>=a-o/2&&(d="right"),IS(d,t,e,n)&&(d="center"),d}function c2(t,e,n){const r=n.yAlign||e.yAlign||FS(t,n);return{xAlign:n.xAlign||e.xAlign||HS(t,e,n,r),yAlign:r}}function zS(t,e){let{x:n,width:r}=t;return e==="right"?n-=r:e==="center"&&(n-=r/2),n}function YS(t,e,n){let{y:r,height:s}=t;return e==="top"?r+=n:e==="bottom"?r-=s+n:r-=s/2,r}function d2(t,e,n,r){const{caretSize:s,caretPadding:o,cornerRadius:a}=t,{xAlign:l,yAlign:c}=n,d=s+o,{topLeft:u,topRight:h,bottomLeft:f,bottomRight:m}=Lo(a);let g=zS(e,l);const p=YS(e,c,d);return c==="center"?l==="left"?g+=d:l==="right"&&(g-=d):l==="left"?g-=Math.max(u,f)+s:l==="right"&&(g+=Math.max(h,m)+s),{x:_n(g,0,r.width-e.width),y:_n(p,0,r.height-e.height)}}function Tl(t,e,n){const r=yn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-r.right:t.x+r.left}function u2(t){return tr([],br(t))}function WS(t,e,n){return ns(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function h2(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const f2={beforeTitle:gr,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:gr,beforeBody:gr,beforeLabel:gr,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 Ue(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:gr,afterBody:gr,beforeFooter:gr,footer:gr,afterFooter:gr};function jt(t,e,n,r){const s=t[e].call(n,r);return typeof s>"u"?f2[e].call(n,r):s}class e1 extends Rs{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()),s=r.enabled&&n.options.animation&&r.animations,o=new pp(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=WS(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:r}=n,s=jt(r,"beforeTitle",this,e),o=jt(r,"title",this,e),a=jt(r,"afterTitle",this,e);let l=[];return l=tr(l,br(s)),l=tr(l,br(o)),l=tr(l,br(a)),l}getBeforeBody(e,n){return u2(jt(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:r}=n,s=[];return Fe(e,o=>{const a={before:[],lines:[],after:[]},l=h2(r,o);tr(a.before,br(jt(l,"beforeLabel",this,o))),tr(a.lines,jt(l,"label",this,o)),tr(a.after,br(jt(l,"afterLabel",this,o))),s.push(a)}),s}getAfterBody(e,n){return u2(jt(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:r}=n,s=jt(r,"beforeFooter",this,e),o=jt(r,"footer",this,e),a=jt(r,"afterFooter",this,e);let l=[];return l=tr(l,br(s)),l=tr(l,br(o)),l=tr(l,br(a)),l}_createItems(e){const n=this._active,r=this.chart.data,s=[],o=[],a=[];let l=[],c,d;for(c=0,d=n.length;c<d;++c)l.push(RS(this.chart,n[c]));return e.filter&&(l=l.filter((u,h,f)=>e.filter(u,h,f,r))),e.itemSort&&(l=l.sort((u,h)=>e.itemSort(u,h,r))),Fe(l,u=>{const h=h2(e.callbacks,u);s.push(jt(h,"labelColor",this,u)),o.push(jt(h,"labelPointStyle",this,u)),a.push(jt(h,"labelTextColor",this,u))}),this.labelColors=s,this.labelPointStyles=o,this.labelTextColors=a,this.dataPoints=l,l}update(e,n){const r=this.options.setContext(this.getContext()),s=this._active;let o,a=[];if(!s.length)this.opacity!==0&&(o={opacity:0});else{const l=jo[r.position].call(this,s,this._eventPosition);a=this._createItems(r),this.title=this.getTitle(a,r),this.beforeBody=this.getBeforeBody(a,r),this.body=this.getBody(a,r),this.afterBody=this.getAfterBody(a,r),this.footer=this.getFooter(a,r);const c=this._size=l2(this,r),d=Object.assign({},l,c),u=c2(this.chart,r,d),h=d2(r,d,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,o={opacity:1,x:h.x,y:h.y,width:c.width,height:c.height,caretX:l.x,caretY:l.y}}this._tooltipItems=a,this.$context=void 0,o&&this._resolveAnimations().update(this,o),e&&r.external&&r.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,r,s){const o=this.getCaretPosition(e,r,s);n.lineTo(o.x1,o.y1),n.lineTo(o.x2,o.y2),n.lineTo(o.x3,o.y3)}getCaretPosition(e,n,r){const{xAlign:s,yAlign:o}=this,{caretSize:a,cornerRadius:l}=r,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:h}=Lo(l),{x:f,y:m}=e,{width:g,height:p}=n;let _,y,C,k,v,M;return o==="center"?(v=m+p/2,s==="left"?(_=f,y=_-a,k=v+a,M=v-a):(_=f+g,y=_+a,k=v-a,M=v+a),C=_):(s==="left"?y=f+Math.max(c,u)+a:s==="right"?y=f+g-Math.max(d,h)-a:y=this.caretX,o==="top"?(k=m,v=k-a,_=y-a,C=y+a):(k=m+p,v=k+a,_=y+a,C=y-a),M=k),{x1:_,x2:y,x3:C,y1:k,y2:v,y3:M}}drawTitle(e,n,r){const s=this.title,o=s.length;let a,l,c;if(o){const d=Hu(r.rtl,this.x,this.width);for(e.x=Tl(this,r.titleAlign,r),n.textAlign=d.textAlign(r.titleAlign),n.textBaseline="middle",a=an(r.titleFont),l=r.titleSpacing,n.fillStyle=r.titleColor,n.font=a.string,c=0;c<o;++c)n.fillText(s[c],d.x(e.x),e.y+a.lineHeight/2),e.y+=a.lineHeight+l,c+1===o&&(e.y+=r.titleMarginBottom-l)}}_drawColorBox(e,n,r,s,o){const a=this.labelColors[r],l=this.labelPointStyles[r],{boxHeight:c,boxWidth:d}=o,u=an(o.bodyFont),h=Tl(this,"left",o),f=s.x(h),m=c<u.lineHeight?(u.lineHeight-c)/2:0,g=n.y+m;if(o.usePointStyle){const p={radius:Math.min(d,c)/2,pointStyle:l.pointStyle,rotation:l.rotation,borderWidth:1},_=s.leftForLtr(f,d)+d/2,y=g+c/2;e.strokeStyle=o.multiKeyBackground,e.fillStyle=o.multiKeyBackground,Pu(e,p,_,y),e.strokeStyle=a.borderColor,e.fillStyle=a.backgroundColor,Pu(e,p,_,y)}else{e.lineWidth=De(a.borderWidth)?Math.max(...Object.values(a.borderWidth)):a.borderWidth||1,e.strokeStyle=a.borderColor,e.setLineDash(a.borderDash||[]),e.lineDashOffset=a.borderDashOffset||0;const p=s.leftForLtr(f,d),_=s.leftForLtr(s.xPlus(f,1),d-2),y=Lo(a.borderRadius);Object.values(y).some(C=>C!==0)?(e.beginPath(),e.fillStyle=o.multiKeyBackground,Nu(e,{x:p,y:g,w:d,h:c,radius:y}),e.fill(),e.stroke(),e.fillStyle=a.backgroundColor,e.beginPath(),Nu(e,{x:_,y:g+1,w:d-2,h:c-2,radius:y}),e.fill()):(e.fillStyle=o.multiKeyBackground,e.fillRect(p,g,d,c),e.strokeRect(p,g,d,c),e.fillStyle=a.backgroundColor,e.fillRect(_,g+1,d-2,c-2))}e.fillStyle=this.labelTextColors[r]}drawBody(e,n,r){const{body:s}=this,{bodySpacing:o,bodyAlign:a,displayColors:l,boxHeight:c,boxWidth:d,boxPadding:u}=r,h=an(r.bodyFont);let f=h.lineHeight,m=0;const g=Hu(r.rtl,this.x,this.width),p=function(O){n.fillText(O,g.x(e.x+m),e.y+f/2),e.y+=f+o},_=g.textAlign(a);let y,C,k,v,M,T,S;for(n.textAlign=a,n.textBaseline="middle",n.font=h.string,e.x=Tl(this,_,r),n.fillStyle=r.bodyColor,Fe(this.beforeBody,p),m=l&&_!=="right"?a==="center"?d/2+u:d+2+u:0,v=0,T=s.length;v<T;++v){for(y=s[v],C=this.labelTextColors[v],n.fillStyle=C,Fe(y.before,p),k=y.lines,l&&k.length&&(this._drawColorBox(n,e,v,g,r),f=Math.max(h.lineHeight,c)),M=0,S=k.length;M<S;++M)p(k[M]),f=h.lineHeight;Fe(y.after,p)}m=0,f=h.lineHeight,Fe(this.afterBody,p),e.y-=o}drawFooter(e,n,r){const s=this.footer,o=s.length;let a,l;if(o){const c=Hu(r.rtl,this.x,this.width);for(e.x=Tl(this,r.footerAlign,r),e.y+=r.footerMarginTop,n.textAlign=c.textAlign(r.footerAlign),n.textBaseline="middle",a=an(r.footerFont),n.fillStyle=r.footerColor,n.font=a.string,l=0;l<o;++l)n.fillText(s[l],c.x(e.x),e.y+a.lineHeight/2),e.y+=a.lineHeight+r.footerSpacing}}drawBackground(e,n,r,s){const{xAlign:o,yAlign:a}=this,{x:l,y:c}=e,{width:d,height:u}=r,{topLeft:h,topRight:f,bottomLeft:m,bottomRight:g}=Lo(s.cornerRadius);n.fillStyle=s.backgroundColor,n.strokeStyle=s.borderColor,n.lineWidth=s.borderWidth,n.beginPath(),n.moveTo(l+h,c),a==="top"&&this.drawCaret(e,n,r,s),n.lineTo(l+d-f,c),n.quadraticCurveTo(l+d,c,l+d,c+f),a==="center"&&o==="right"&&this.drawCaret(e,n,r,s),n.lineTo(l+d,c+u-g),n.quadraticCurveTo(l+d,c+u,l+d-g,c+u),a==="bottom"&&this.drawCaret(e,n,r,s),n.lineTo(l+m,c+u),n.quadraticCurveTo(l,c+u,l,c+u-m),a==="center"&&o==="left"&&this.drawCaret(e,n,r,s),n.lineTo(l,c+h),n.quadraticCurveTo(l,c,l+h,c),n.closePath(),n.fill(),s.borderWidth>0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,r=this.$animations,s=r&&r.x,o=r&&r.y;if(s||o){const a=jo[e.position].call(this,this._active,this._eventPosition);if(!a)return;const l=this._size=l2(this,e),c=Object.assign({},a,this._size),d=c2(n,e,c),u=d2(e,c,d,n);(s._to!==u.x||o._to!==u.y)&&(this.xAlign=d.xAlign,this.yAlign=d.yAlign,this.width=l.width,this.height=l.height,this.caretX=a.x,this.caretY=a.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 s={width:this.width,height:this.height},o={x:this.x,y:this.y};r=Math.abs(r)<.001?0:r;const a=yn(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(o,e,s,n),Px(e,n.textDirection),o.y+=a.top,this.drawTitle(o,e,n),this.drawBody(o,e,n),this.drawFooter(o,e,n),Lx(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const r=this._active,s=e.map(({datasetIndex:l,index:c})=>{const d=this.chart.getDatasetMeta(l);if(!d)throw new Error("Cannot find a dataset at index "+l);return{datasetIndex:l,element:d.data[c],index:c}}),o=!rl(r,s),a=this._positionChanged(s,n);(o||a)&&(this._active=s,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,r=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,o=this._active||[],a=this._getActiveElements(e,o,n,r),l=this._positionChanged(a,e),c=n||!rl(a,o)||l;return c&&(this._active=a,(s.enabled||s.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),c}_getActiveElements(e,n,r,s){const o=this.options;if(e.type==="mouseout")return[];if(!s)return n.filter(l=>this.chart.data.datasets[l.datasetIndex]&&this.chart.getDatasetMeta(l.datasetIndex).controller.getParsed(l.index)!==void 0);const a=this.chart.getElementsAtEventForMode(e,o.mode,o,r);return o.reverse&&a.reverse(),a}_positionChanged(e,n){const{caretX:r,caretY:s,options:o}=this,a=jo[o.position].call(this,e,n);return a!==!1&&(r!==a.x||s!==a.y)}}W(e1,"positioners",jo);var jS={id:"tooltip",_element:e1,positioners:jo,afterInit(t,e,n){n&&(t.tooltip=new e1({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:f2},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 ZS=(t,e,n,r)=>(typeof e=="string"?(n=t.push(e)-1,r.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function US(t,e,n,r){const s=t.indexOf(e);if(s===-1)return ZS(t,e,n,r);const o=t.lastIndexOf(e);return s!==o?n:s}const qS=(t,e)=>t===null?null:_n(Math.round(t),0,e);function m2(t){const e=this.getLabels();return t>=0&&t<e.length?e[t]:t}class Dl extends Fs{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:s,label:o}of n)r[s]===o&&r.splice(s,1);this._addedLabels=[]}super.init(e)}parse(e,n){if(Ue(e))return null;const r=this.getLabels();return n=isFinite(n)&&r[n]===e?n:US(r,e,Re(n,e),this._addedLabels),qS(n,r.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let{min:r,max:s}=this.getMinMax(!0);this.options.bounds==="ticks"&&(e||(r=0),n||(s=this.getLabels().length-1)),this.min=r,this.max=s}buildTicks(){const e=this.min,n=this.max,r=this.options.offset,s=[];let o=this.getLabels();o=e===0&&n===o.length-1?o:o.slice(e,n+1),this._valueRange=Math.max(o.length-(r?0:1),1),this._startValue=this.min-(r?.5:0);for(let a=e;a<=n;a++)s.push({value:a});return s}getLabelForValue(e){return m2.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}}W(Dl,"id","category"),W(Dl,"defaults",{ticks:{callback:m2}});function GS(t,e){const n=[],{bounds:s,step:o,min:a,max:l,precision:c,count:d,maxTicks:u,maxDigits:h,includeBounds:f}=t,m=o||1,g=u-1,{min:p,max:_}=e,y=!Ue(a),C=!Ue(l),k=!Ue(d),v=(_-p)/(h+1);let M=Bm((_-p)/g/m)*m,T,S,O,E;if(M<1e-14&&!y&&!C)return[{value:p},{value:_}];E=Math.ceil(_/M)-Math.floor(p/M),E>g&&(M=Bm(E*M/g/m)*m),Ue(c)||(T=Math.pow(10,c),M=Math.ceil(M*T)/T),s==="ticks"?(S=Math.floor(p/M)*M,O=Math.ceil(_/M)*M):(S=p,O=_),y&&C&&o&&SC((l-a)/o,M/1e3)?(E=Math.round(Math.min((l-a)/M,u)),M=(l-a)/E,S=a,O=l):k?(S=y?a:S,O=C?l:O,E=d-1,M=(O-S)/E):(E=(O-S)/M,Oo(E,Math.round(E),M/1e3)?E=Math.round(E):E=Math.ceil(E));const I=Math.max(Rm(M),Rm(S));T=Math.pow(10,Ue(c)?I:c),S=Math.round(S*T)/T,O=Math.round(O*T)/T;let j=0;for(y&&(f&&S!==a?(n.push({value:a}),S<a&&j++,Oo(Math.round((S+j*M)*T)/T,a,p2(a,v,t))&&j++):S<a&&j++);j<E;++j){const $=Math.round((S+j*M)*T)/T;if(C&&$>l)break;n.push({value:$})}return C&&f&&O!==l?n.length&&Oo(n[n.length-1].value,l,p2(l,v,t))?n[n.length-1].value=l:n.push({value:l}):(!C||O===l)&&n.push({value:O}),n}function p2(t,e,{horizontal:n,minRotation:r}){const s=ts(r),o=(n?Math.sin(s):Math.cos(s))||.001,a=.75*e*(""+t).length;return Math.min(e/o,a)}class Ol extends Fs{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 Ue(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:s,max:o}=this;const a=c=>s=n?s:c,l=c=>o=r?o:c;if(e){const c=Mi(s),d=Mi(o);c<0&&d<0?l(0):c>0&&d>0&&a(0)}if(s===o){let c=o===0?1:Math.abs(o*.05);l(o+c),e||a(s-c)}this.min=s,this.max=o}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:r}=e,s;return r?(s=Math.ceil(this.max/r)-Math.floor(this.min/r)+1,s>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${r} would result generating up to ${s} ticks. Limiting to 1000.`),s=1e3)):(s=this.computeTickLimit(),n=n||11),n&&(s=Math.min(n,s)),s}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let r=this.getTickLimit();r=Math.max(2,r);const s={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},o=this._range||this,a=GS(s,o);return e.bounds==="ticks"&&Am(a,this,"value"),e.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const e=this.ticks;let n=this.min,r=this.max;if(super.configure(),this.options.offset&&e.length){const s=(r-n)/Math.max(e.length-1,1)/2;n-=s,r+=s}this._startValue=n,this._endValue=r,this._valueRange=r-n}getLabelForValue(e){return Ou(e,this.chart.options.locale,this.options.ticks.format)}}class El extends Ol{determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=lt(e)?e:0,this.max=lt(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,r=ts(this.options.ticks.minRotation),s=(e?Math.sin(r):Math.cos(r))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,o.lineHeight/s))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}W(El,"id","linear"),W(El,"defaults",{ticks:{callback:cl.formatters.numeric}});const Zo=t=>Math.floor(es(t)),Is=(t,e)=>Math.pow(10,Zo(t)+e);function g2(t){return t/Math.pow(10,Zo(t))===1}function _2(t,e,n){const r=Math.pow(10,n),s=Math.floor(t/r);return Math.ceil(e/r)-s}function KS(t,e){const n=e-t;let r=Zo(n);for(;_2(t,e,r)>10;)r++;for(;_2(t,e,r)<10;)r--;return Math.min(r,Zo(t))}function XS(t,{min:e,max:n}){e=nn(t.min,e);const r=[],s=Zo(e);let o=KS(e,n),a=o<0?Math.pow(10,Math.abs(o)):1;const l=Math.pow(10,o),c=s>o?Math.pow(10,s):0,d=Math.round((e-c)*a)/a,u=Math.floor((e-c)/l/10)*l*10;let h=Math.floor((d-u)/Math.pow(10,o)),f=nn(t.min,Math.round((c+u+h*Math.pow(10,o))*a)/a);for(;f<n;)r.push({value:f,major:g2(f),significand:h}),h>=10?h=h<15?15:20:h++,h>=20&&(o++,h=2,a=o>=0?1:a),f=Math.round((c+u+h*Math.pow(10,o))*a)/a;const m=nn(t.max,f);return r.push({value:m,major:g2(m),significand:h}),r}class y2 extends Fs{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(e,n){const r=Ol.prototype.parse.apply(this,[e,n]);if(r===0){this._zero=!0;return}return lt(r)&&r>0?r:null}determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=lt(e)?Math.max(0,e):null,this.max=lt(n)?Math.max(0,n):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!lt(this._userMin)&&(this.min=e===Is(this.min,0)?Is(this.min,-1):Is(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:e,maxDefined:n}=this.getUserBounds();let r=this.min,s=this.max;const o=l=>r=e?r:l,a=l=>s=n?s:l;r===s&&(r<=0?(o(1),a(10)):(o(Is(r,-1)),a(Is(s,1)))),r<=0&&o(Is(s,-1)),s<=0&&a(Is(r,1)),this.min=r,this.max=s}buildTicks(){const e=this.options,n={min:this._userMin,max:this._userMax},r=XS(n,this);return e.bounds==="ticks"&&Am(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":Ou(e,this.chart.options.locale,this.options.ticks.format)}configure(){const e=this.min;super.configure(),this._startValue=es(e),this._valueRange=es(this.max)-es(e)}getPixelForValue(e){return(e===void 0||e===0)&&(e=this.min),e===null||isNaN(e)?NaN:this.getPixelForDecimal(e===this.min?0:(es(e)-this._startValue)/this._valueRange)}getValueForPixel(e){const n=this.getDecimalForPixel(e);return Math.pow(10,this._startValue+n*this._valueRange)}}W(y2,"id","logarithmic"),W(y2,"defaults",{ticks:{callback:cl.formatters.logarithmic,major:{enabled:!0}}});function t1(t){const e=t.ticks;if(e.display&&t.display){const n=yn(e.backdropPadding);return Re(e.font&&e.font.size,gt.font.size)+n.height}return 0}function JS(t,e,n){return n=st(n)?n:[n],{w:ZC(t,e.string,n),h:n.length*e.lineHeight}}function w2(t,e,n,r,s){return t===r||t===s?{start:e-n/2,end:e+n/2}:t<r||t>s?{start:e-n,end:e}:{start:e,end:e+n}}function QS(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=[],s=[],o=t._pointLabels.length,a=t.options.pointLabels,l=a.centerPointLabels?Dt/o:0;for(let c=0;c<o;c++){const d=a.setContext(t.getPointLabelContext(c));s[c]=d.padding;const u=t.getPointPosition(c,t.drawingArea+s[c],l),h=an(d.font),f=JS(t.ctx,h,t._pointLabels[c]);r[c]=f;const m=on(t.getIndexAngle(c)+l),g=Math.round(Mu(m)),p=w2(g,u.x,f.w,0,180),_=w2(g,u.y,f.h,90,270);ev(n,e,m,p,_)}t.setCenterPoint(e.l-n.l,n.r-e.r,e.t-n.t,n.b-e.b),t._pointLabelItems=rv(t,r,s)}function ev(t,e,n,r,s){const o=Math.abs(Math.sin(n)),a=Math.abs(Math.cos(n));let l=0,c=0;r.start<e.l?(l=(e.l-r.start)/o,t.l=Math.min(t.l,e.l-l)):r.end>e.r&&(l=(r.end-e.r)/o,t.r=Math.max(t.r,e.r+l)),s.start<e.t?(c=(e.t-s.start)/a,t.t=Math.min(t.t,e.t-c)):s.end>e.b&&(c=(s.end-e.b)/a,t.b=Math.max(t.b,e.b+c))}function tv(t,e,n){const r=t.drawingArea,{extra:s,additionalAngle:o,padding:a,size:l}=n,c=t.getPointPosition(e,r+s+a,o),d=Math.round(Mu(on(c.angle+sn))),u=ov(c.y,l.h,d),h=sv(d),f=iv(c.x,l.w,h);return{visible:!0,x:c.x,y:u,textAlign:h,left:f,top:u,right:f+l.w,bottom:u+l.h}}function nv(t,e){if(!e)return!0;const{left:n,top:r,right:s,bottom:o}=t;return!(_r({x:n,y:r},e)||_r({x:n,y:o},e)||_r({x:s,y:r},e)||_r({x:s,y:o},e))}function rv(t,e,n){const r=[],s=t._pointLabels.length,o=t.options,{centerPointLabels:a,display:l}=o.pointLabels,c={extra:t1(o)/2,additionalAngle:a?Dt/s:0};let d;for(let u=0;u<s;u++){c.padding=n[u],c.size=e[u];const h=tv(t,u,c);r.push(h),l==="auto"&&(h.visible=nv(h,d),h.visible&&(d=h))}return r}function sv(t){return t===0||t===180?"center":t<180?"left":"right"}function iv(t,e,n){return n==="right"?t-=e:n==="center"&&(t-=e/2),t}function ov(t,e,n){return n===90||n===270?t-=e/2:(n>270||n<90)&&(t-=e),t}function av(t,e,n){const{left:r,top:s,right:o,bottom:a}=n,{backdropColor:l}=e;if(!Ue(l)){const c=Lo(e.borderRadius),d=yn(e.backdropPadding);t.fillStyle=l;const u=r-d.left,h=s-d.top,f=o-r+d.width,m=a-s+d.height;Object.values(c).some(g=>g!==0)?(t.beginPath(),Nu(t,{x:u,y:h,w:f,h:m,radius:c}),t.fill()):t.fillRect(u,h,f,m)}}function lv(t,e){const{ctx:n,options:{pointLabels:r}}=t;for(let s=e-1;s>=0;s--){const o=t._pointLabelItems[s];if(!o.visible)continue;const a=r.setContext(t.getPointLabelContext(s));av(n,a,o);const l=an(a.font),{x:c,y:d,textAlign:u}=o;ul(n,t._pointLabels[s],c,d+l.lineHeight/2,l,{color:a.color,textAlign:u,textBaseline:"middle"})}}function b2(t,e,n,r){const{ctx:s}=t;if(n)s.arc(t.xCenter,t.yCenter,e,0,rn);else{let o=t.getPointPosition(0,e);s.moveTo(o.x,o.y);for(let a=1;a<r;a++)o=t.getPointPosition(a,e),s.lineTo(o.x,o.y)}}function cv(t,e,n,r,s){const o=t.ctx,a=e.circular,{color:l,lineWidth:c}=e;!a&&!r||!l||!c||n<0||(o.save(),o.strokeStyle=l,o.lineWidth=c,o.setLineDash(s.dash),o.lineDashOffset=s.dashOffset,o.beginPath(),b2(t,n,a,r),o.closePath(),o.stroke(),o.restore())}function dv(t,e,n){return ns(t,{label:n,index:e,type:"pointLabel"})}class $l extends Ol{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=yn(t1(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=lt(e)&&!isNaN(e)?e:0,this.max=lt(n)&&!isNaN(n)?n:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/t1(this.options))}generateTickLabels(e){Ol.prototype.generateTickLabels.call(this,e),this._pointLabels=this.getLabels().map((n,r)=>{const s=ct(this.options.pointLabels.callback,[n,r],this);return s||s===0?s:""}).filter((n,r)=>this.chart.getDataVisibility(r))}fit(){const e=this.options;e.display&&e.pointLabels.display?QS(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(e,n,r,s){this.xCenter+=Math.floor((e-n)/2),this.yCenter+=Math.floor((r-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(e,n,r,s))}getIndexAngle(e){const n=rn/(this._pointLabels.length||1),r=this.options.startAngle||0;return on(e*n+ts(r))}getDistanceFromCenterForValue(e){if(Ue(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(Ue(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 dv(this.getContext(),e,r)}}getPointPosition(e,n,r=0){const s=this.getIndexAngle(e)-sn+r;return{x:Math.cos(s)*n+this.xCenter,y:Math.sin(s)*n+this.yCenter,angle:s}}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:s,bottom:o}=this._pointLabelItems[e];return{left:n,top:r,right:s,bottom:o}}drawBackground(){const{backgroundColor:e,grid:{circular:n}}=this.options;if(e){const r=this.ctx;r.save(),r.beginPath(),b2(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:s,border:o}=n,a=this._pointLabels.length;let l,c,d;if(n.pointLabels.display&&lv(this,a),s.display&&this.ticks.forEach((u,h)=>{if(h!==0||h===0&&this.min<0){c=this.getDistanceFromCenterForValue(u.value);const f=this.getContext(h),m=s.setContext(f),g=o.setContext(f);cv(this,m,c,a,g)}}),r.display){for(e.save(),l=a-1;l>=0;l--){const u=r.setContext(this.getPointLabelContext(l)),{color:h,lineWidth:f}=u;!f||!h||(e.lineWidth=f,e.strokeStyle=h,e.setLineDash(u.borderDash),e.lineDashOffset=u.borderDashOffset,c=this.getDistanceFromCenterForValue(n.ticks.reverse?this.min:this.max),d=this.getPointPosition(l,c),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(d.x,d.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){const e=this.ctx,n=this.options,r=n.ticks;if(!r.display)return;const s=this.getIndexAngle(0);let o,a;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(s),e.textAlign="center",e.textBaseline="middle",this.ticks.forEach((l,c)=>{if(c===0&&this.min>=0&&!n.reverse)return;const d=r.setContext(this.getContext(c)),u=an(d.font);if(o=this.getDistanceFromCenterForValue(this.ticks[c].value),d.showLabelBackdrop){e.font=u.string,a=e.measureText(l.label).width,e.fillStyle=d.backdropColor;const h=yn(d.backdropPadding);e.fillRect(-a/2-h.left,-o-u.size/2-h.top,a+h.width,u.size+h.height)}ul(e,l.label,0,-o,u,{color:d.color,strokeColor:d.textStrokeColor,strokeWidth:d.textStrokeWidth})}),e.restore()}drawTitle(){}}W($l,"id","radialLinear"),W($l,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:cl.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(e){return e},padding:5,centerPointLabels:!1}}),W($l,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),W($l,"descriptors",{angleLines:{_fallback:"grid"}});const Pl={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}},Zt=Object.keys(Pl);function k2(t,e){return t-e}function C2(t,e){if(Ue(e))return null;const n=t._adapter,{parser:r,round:s,isoWeekday:o}=t._parseOpts;let a=e;return typeof r=="function"&&(a=r(a)),lt(a)||(a=typeof r=="string"?n.parse(a,r):n.parse(a)),a===null?null:(s&&(a=s==="week"&&(Eo(o)||o===!0)?n.startOf(a,"isoWeek",o):n.startOf(a,s)),+a)}function x2(t,e,n,r){const s=Zt.length;for(let o=Zt.indexOf(t);o<s-1;++o){const a=Pl[Zt[o]],l=a.steps?a.steps:Number.MAX_SAFE_INTEGER;if(a.common&&Math.ceil((n-e)/(l*a.size))<=r)return Zt[o]}return Zt[s-1]}function uv(t,e,n,r,s){for(let o=Zt.length-1;o>=Zt.indexOf(n);o--){const a=Zt[o];if(Pl[a].common&&t._adapter.diff(s,r,a)>=e-1)return a}return Zt[n?Zt.indexOf(n):0]}function hv(t){for(let e=Zt.indexOf(t)+1,n=Zt.length;e<n;++e)if(Pl[Zt[e]].common)return Zt[e]}function M2(t,e,n){if(!n)t[e]=!0;else if(n.length){const{lo:r,hi:s}=vu(n,e),o=n[r]>=e?n[r]:n[s];t[o]=!0}}function fv(t,e,n,r){const s=t._adapter,o=+s.startOf(e[0].value,r),a=e[e.length-1].value;let l,c;for(l=o;l<=a;l=+s.add(l,1,r))c=n[l],c>=0&&(e[c].major=!0);return e}function S2(t,e,n){const r=[],s={},o=e.length;let a,l;for(a=0;a<o;++a)l=e[a],s[l]=a,r.push({value:l,major:!1});return o===0||!n?r:fv(t,r,s,n)}class Ll extends Fs{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={}),s=this._adapter=new eM._date(e.adapters.date);s.init(n),Do(r.displayFormats,s.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:C2(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:s,max:o,minDefined:a,maxDefined:l}=this.getUserBounds();function c(d){!a&&!isNaN(d.min)&&(s=Math.min(s,d.min)),!l&&!isNaN(d.max)&&(o=Math.max(o,d.max))}(!a||!l)&&(c(this._getLabelBounds()),(e.bounds!=="ticks"||e.ticks.source!=="labels")&&c(this.getMinMax(!1))),s=lt(s)&&!isNaN(s)?s:+n.startOf(Date.now(),r),o=lt(o)&&!isNaN(o)?o:+n.endOf(Date.now(),r)+1,this.min=Math.min(s,o-1),this.max=Math.max(s+1,o)}_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,s=r.source==="labels"?this.getLabelTimestamps():this._generate();e.bounds==="ticks"&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const o=this.min,a=this.max,l=EC(s,o,a);return this._unit=n.unit||(r.autoSkip?x2(n.minUnit,this.min,this.max,this._getLabelCapacity(o)):uv(this,l.length,n.minUnit,this.min,this.max)),this._majorUnit=!r.major.enabled||this._unit==="year"?void 0:hv(this._unit),this.initOffsets(s),e.reverse&&l.reverse(),S2(this,l,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(e=>+e.value))}initOffsets(e=[]){let n=0,r=0,s,o;this.options.offset&&e.length&&(s=this.getDecimalForValue(e[0]),e.length===1?n=1-s:n=(this.getDecimalForValue(e[1])-s)/2,o=this.getDecimalForValue(e[e.length-1]),e.length===1?r=o:r=(o-this.getDecimalForValue(e[e.length-2]))/2);const a=e.length<3?.5:.25;n=_n(n,0,a),r=_n(r,0,a),this._offsets={start:n,end:r,factor:1/(n+1+r)}}_generate(){const e=this._adapter,n=this.min,r=this.max,s=this.options,o=s.time,a=o.unit||x2(o.minUnit,n,r,this._getLabelCapacity(n)),l=Re(s.ticks.stepSize,1),c=a==="week"?o.isoWeekday:!1,d=Eo(c)||c===!0,u={};let h=n,f,m;if(d&&(h=+e.startOf(h,"isoWeek",c)),h=+e.startOf(h,d?"day":a),e.diff(r,n,a)>1e5*l)throw new Error(n+" and "+r+" are too far apart with stepSize of "+l+" "+a);const g=s.ticks.source==="data"&&this.getDataTimestamps();for(f=h,m=0;f<r;f=+e.add(f,l,a),m++)M2(u,f,g);return(f===r||s.bounds==="ticks"||m===1)&&M2(u,f,g),Object.keys(u).sort(k2).map(p=>+p)}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 s=this.options.time.displayFormats,o=this._unit,a=n||s[o];return this._adapter.format(e,a)}_tickFormatFunction(e,n,r,s){const o=this.options,a=o.ticks.callback;if(a)return ct(a,[e,n,r],this);const l=o.time.displayFormats,c=this._unit,d=this._majorUnit,u=c&&l[c],h=d&&l[d],f=r[n],m=d&&h&&f&&f.major;return this._adapter.format(e,s||(m?h:u))}generateTickLabels(e){let n,r,s;for(n=0,r=e.length;n<r;++n)s=e[n],s.label=this._tickFormatFunction(s.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,s=ts(this.isHorizontal()?n.maxRotation:n.minRotation),o=Math.cos(s),a=Math.sin(s),l=this._resolveTickFontOptions(0).size;return{w:r*o+l*a,h:r*a+l*o}}_getLabelCapacity(e){const n=this.options.time,r=n.displayFormats,s=r[n.unit]||r.millisecond,o=this._tickFormatFunction(e,0,S2(this,[e],this._majorUnit),s),a=this._getLabelSize(o),l=Math.floor(this.isHorizontal()?this.width/a.w:this.height/a.h)-1;return l>0?l:1}getDataTimestamps(){let e=this._cache.data||[],n,r;if(e.length)return e;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(n=0,r=s.length;n<r;++n)e=e.concat(s[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 s=this.getLabels();for(n=0,r=s.length;n<r;++n)e.push(C2(this,s[n]));return this._cache.labels=this._normalized?e:this.normalize(e)}normalize(e){return PC(e.sort(k2))}}W(Ll,"id","time"),W(Ll,"defaults",{bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}});function Vl(t,e,n){let r=0,s=t.length-1,o,a,l,c;n?(e>=t[r].pos&&e<=t[s].pos&&({lo:r,hi:s}=$s(t,"pos",e)),{pos:o,time:l}=t[r],{pos:a,time:c}=t[s]):(e>=t[r].time&&e<=t[s].time&&({lo:r,hi:s}=$s(t,"time",e)),{time:o,pos:l}=t[r],{time:a,pos:c}=t[s]);const d=a-o;return d?l+(c-l)*(e-o)/d:l}class v2 extends Ll{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,s=[],o=[];let a,l,c,d,u;for(a=0,l=e.length;a<l;++a)d=e[a],d>=n&&d<=r&&s.push(d);if(s.length<2)return[{time:n,pos:0},{time:r,pos:1}];for(a=0,l=s.length;a<l;++a)u=s[a+1],c=s[a-1],d=s[a],Math.round((u+c)/2)!==d&&o.push({time:d,pos:a/(l-1)});return o}_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((s,o)=>s-o)}_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)}}W(v2,"id","timeseries"),W(v2,"defaults",Ll.defaults);const T2={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},mv={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...T2,...{ariaLabel:{type:String},ariaDescribedby:{type:String}}},pv=i.version[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Ti(t){return i.isProxy(t)?i.toRaw(t):t}function gv(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return i.isProxy(e)?new Proxy(t,{}):t}function _v(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function D2(t,e){t.labels=e}function O2(t,e,n){const r=[];t.datasets=e.map(s=>{const o=t.datasets.find(a=>a[n]===s[n]);return!o||!s.data||r.includes(o)?{...s}:(r.push(o),Object.assign(o,s),o)})}function yv(t,e){const n={labels:[],datasets:[]};return D2(n,t.labels),O2(n,t.datasets,e),n}const wv=i.defineComponent({props:mv,setup(t,e){let{expose:n,slots:r}=e;const s=i.ref(null),o=i.shallowRef(null);n({chart:o});const a=()=>{if(!s.value)return;const{type:d,data:u,options:h,plugins:f,datasetIdKey:m}=t,g=yv(u,m),p=gv(g,u);o.value=new Yo(s.value,{type:d,data:p,options:{...h},plugins:f})},l=()=>{const d=i.toRaw(o.value);d&&(t.destroyDelay>0?setTimeout(()=>{d.destroy(),o.value=null},t.destroyDelay):(d.destroy(),o.value=null))},c=d=>{d.update(t.updateMode)};return i.onMounted(a),i.onUnmounted(l),i.watch([()=>t.options,()=>t.data],(d,u)=>{let[h,f]=d,[m,g]=u;const p=i.toRaw(o.value);if(!p)return;let _=!1;if(h){const y=Ti(h),C=Ti(m);y&&y!==C&&(_v(p,y),_=!0)}if(f){const y=Ti(f.labels),C=Ti(g.labels),k=Ti(f.datasets),v=Ti(g.datasets);y!==C&&(D2(p.config.data,y),_=!0),k&&k!==v&&(O2(p.config.data,k,t.datasetIdKey),_=!0)}_&&i.nextTick(()=>{c(p)})},{deep:!0}),()=>i.h("canvas",{role:"img",ariaLabel:t.ariaLabel,ariaDescribedby:t.ariaDescribedby,ref:s},[i.h("p",{},[r.default?r.default():""])])}});function bv(t,e){return Yo.register(e),i.defineComponent({props:T2,setup(n,r){let{expose:s}=r;const o=i.shallowRef(null),a=l=>{o.value=l==null?void 0:l.chart};return s({chart:o}),()=>i.h(wv,pv({ref:a},{type:t,...n}))}})}const E2=bv("line",_l),kv={class:"chart-container"},n1={__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){Yo.register(Dl,El,Wo,wr,jS,a2);const e=t,n=i.ref(0);let r=i.reactive({isEmpty:!0});const s=h=>{const f=new Set,m=[];let g=[];switch(e.dataType){case"balanceChartData":h.length===0?g=[0,0]:g=h.map(_=>(f.add(_.date),Et(_.balance*Sc(),2)));break;case"performanceChartData":h.length===0?g=[0,0]:g=h.reduce((_,y,C)=>{f.add(y.date);const k=C?_[C-1]:0,v=Et(k+y.pnl_to_deposit,2);return _.push(v),_},[]);break}m.push({data:g});const p=Array.from(f);return p.length===1?(p.push(...p),m.forEach(_=>{_.data.push(..._.data)}),r.isEmpty=!1):p.length===0?(r.isEmpty=!0,p.push(0,0)):r.isEmpty=!1,{labels:p,datasets:m}},o=i.computed(()=>s(e.data)),a=h=>{const m=h.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return m.addColorStop(0,e.gradient.startColor),m.addColorStop(1,e.gradient.endColor),m},l=(h,f)=>{let m=document.querySelector(`#${h}-${e.dataType}`);return m||(m=document.createElement("div"),m.classList.add(h),m.setAttribute("id",`${h}-${e.dataType}`),f.canvas.parentNode.appendChild(m)),m},c=h=>{if(!r.isEmpty){const{chart:f,tooltip:m}=h,g=l("chart-tooltip",f);if(m.opacity===0){g.style.opacity="0";return}if(m.body){const M=m.title||[],T=m.body.map(O=>O.lines),S=document.createElement("div");for(S.classList.add("chart-tooltip-middle"),S.innerHTML=`<div class="chart-tooltip-content">
40
40
  ${e.dataType==="balanceChartData"?`${ga()}${Me(e.isMask,uh(T[0]),{repeat:6})}`:`${Me(e.isMask,uh(T[0]),{repeat:3})}%`}
41
- <span> | ${hh(M[0])}, ${g6(M[0])}</span></div>`;g.firstChild;)g.firstChild.remove();g.appendChild(S)}const{offsetLeft:p,offsetTop:_,clientWidth:y}=f.canvas;let C=p+m.caretX;const k=_+m.caretY,v=g.clientWidth;C+v>y&&(C-=v),g.style.opacity="1",g.style.left=C+"px",g.style.top=k+"px"}},d=h=>{const{chart:f}=h,m=l("chart-line",f),g=f.chartArea;f.canvas.addEventListener("mousemove",function(p){const _=f.canvas.getBoundingClientRect(),y=p.clientX-_.left,C=p.clientY-_.top;y>=g.left&&y<=g.right&&C>=g.top&&C<=g.bottom?(m.style.left=y+"px",m.style.top=g.top+"px",m.style.height=g.bottom-g.top+"px",m.style.display="flex"):m.style.display="none"}),f.canvas.addEventListener("mouseout",function(){m.style.display="none"})},u=i.computed(()=>({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},scales:{x:{ticks:{display:!r.isEmpty,callback:function(h){return hh(this.getLabelForValue(h)).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:"#EDEDED"}},y:{ticks:{display:!r.isEmpty,callback:function(h){return e.ticksCallback(h)},color:"#8E8E93",font:{size:14,weight:400,family:"'SF Pro Display', sans-serif"},padding:15},grid:{color:"#EDEDED",drawTicks:!1},border:{display:!1,dash:[4,4],dashOffset:1}}},plugins:{tooltip:{enabled:!1,position:"nearest",external:c},legend:!1},elements:{line:{backgroundColor:h=>a(h),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:d}));return i.watch(()=>e.isMask,()=>{n.value+=1},{immediate:!0}),(h,f)=>(i.openBlock(),i.createElementBlock("div",kv,[(i.openBlock(),i.createBlock(i.unref(E2),{key:n.value,data:o.value,options:u.value},null,8,["data","options"]))]))}},r1={__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){Yo.register(Dl,El,Wo,wr,a2);const e=t,n=a=>{const l=new Set,c=[],d=a.map(h=>(l.add(h.date),h.balance));return c.push({data:d}),{labels:Array.from(l),datasets:c}},r=i.computed(()=>n(e.data)),s=a=>{const c=a.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return c.addColorStop(0,e.gradient.startColor),c.addColorStop(1,e.gradient.endColor),c},o=i.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:a=>s(a),tension:.3,borderWidth:4,borderColor:e.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:!1}}});return(a,l)=>(i.openBlock(),i.createBlock(i.unref(E2),{data:r.value,options:o.value},null,8,["data","options"]))}},Cv=t=>(i.pushScopeId("data-v-aaab5f66"),t=t(),i.popScopeId(),t),xv={class:"import-data"},Mv={class:"import-data__content"},Sv=Cv(()=>i.createElementVNode("div",{class:"import-data__text"},[i.createTextVNode("Importing data from the exchange. "),i.createElementVNode("br"),i.createTextVNode(" The widget will be displayed after the page reloads")],-1)),kr=Se({__name:"ImportData",emits:["refresh"],setup(t,{emit:e}){const n=e;return(r,s)=>(i.openBlock(),i.createElementBlock("div",xv,[i.createElementVNode("div",Mv,[i.createElementVNode("div",{onClick:s[0]||(s[0]=o=>n("refresh")),class:"import-data__refresh-btn"},[i.createVNode(i.unref($e),{icon:"arrow-rotating"})]),Sv])]))}},[["__scopeId","data-v-aaab5f66"]]),vv=t=>(i.pushScopeId("data-v-a3259ef6"),t=t(),i.popScopeId(),t),Tv={class:"account-balance-widget"},Dv={class:"account-balance-widget__top"},Ov={class:"account-balance-widget__title-wrapper"},Ev=vv(()=>i.createElementVNode("div",{class:"account-balance-widget__title"},"Account Balance",-1)),$v=Se({__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.ref("week"),r=i.computed({get(a){const l=a*Sc();return l>=1e3||l<=-1e3?Me(o.isMask,Et(l/1e3,2)+"k",{repeat:3}):Et(l,2)},set(){}}),s=e,o=t;return(a,l)=>(i.openBlock(),i.createElementBlock("div",Tv,[i.createElementVNode("div",Dv,[i.createElementVNode("div",Ov,[Ev,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("This graphic widget displays changes to your deposit over a specific time period. ")]),_:1})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createBlock(i.unref(js),{key:0,modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=c=>n.value=c),onOnChange:l[1]||(l[1]=c=>a.$emit("onChange",n.value))},null,8,["modelValue"]))]),i.createVNode(i.unref(n1),{data:t.balanceChartData,"data-type":"balanceChartData","ticks-callback":r.value,isMask:t.isMask},null,8,["data","ticks-callback","isMask"]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:l[2]||(l[2]=c=>s("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-a3259ef6"]]),$2=t=>(i.pushScopeId("data-v-f6a89d4f"),t=t(),i.popScopeId(),t),Pv={class:"balance-widget"},Lv={class:"balance-part"},Vv={class:"balance-part__top"},Nv={class:"balance-part__title-wrapper"},Bv=$2(()=>i.createElementVNode("div",{class:"balance-part__title"},"Balance",-1)),Av={class:"balance-part__content"},Rv={class:"balance-part__content__wrapper"},Fv={class:"balance-part__content__count"},Iv={class:"balance-part__content__bitcoin"},Hv={key:0,class:"devider"},zv={key:1,class:"personal-target-part"},Yv={class:"personal-target-part__top"},Wv={class:"personal-target-part__title-wrapper"},jv=$2(()=>i.createElementVNode("div",{class:"personal-target-part__title"},"Personal target",-1)),Zv={class:"personal-target-part__content"},Uv={class:"personal-target-part__content__current"},qv={class:"personal-target-part__content__from"},Gv=Se({__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=()=>{n("switchVisibility")};return(s,o)=>(i.openBlock(),i.createElementBlock("div",Pv,[i.createElementVNode("div",Lv,[i.createElementVNode("div",Vv,[i.createElementVNode("div",Nv,[Bv,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Displays the balance of your deposit in USD and BTC equivalent, additionally showing the growth/fall of your balance.")]),_:1})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createElementBlock("div",{key:0,class:"balance-part__visibility-switcher",onClick:r},[i.withDirectives(i.createVNode(i.unref($e),{icon:"eye"},null,512),[[i.vShow,t.isHidden]]),i.withDirectives(i.createVNode(i.unref($e),{icon:"eye-slash"},null,512),[[i.vShow,!t.isHidden]])]))]),i.createElementVNode("div",Av,[i.createElementVNode("div",Rv,[i.createElementVNode("div",Fv,i.toDisplayString(i.unref(Me)(t.isMaskBalance,i.unref(Ke)(t.USDT),{prefix:"$"})),1),t.delta?(i.openBlock(),i.createBlock(i.unref(ic),{key:0,"is-hidden":t.isMaskBalance,percentage:"",delta:t.delta},null,8,["is-hidden","delta"])):i.createCommentVNode("",!0)]),i.createElementVNode("div",Iv,"= "+i.toDisplayString(i.unref(Me)(t.isMaskBalance,t.BTC))+" BTC",1)]),t.isShare?(i.openBlock(),i.createBlock(i.unref(r1),{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","gradient"])):(i.openBlock(),i.createBlock(i.unref(r1),{key:1,class:"balance-part__chart",data:t.balanceChartData},null,8,["data"]))]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createElementBlock("div",Hv)),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createElementBlock("div",zv,[i.createElementVNode("div",Yv,[i.createElementVNode("div",Wv,[jv,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.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})]),i.createElementVNode("div",{class:"balance-part__modal-switcher",onClick:o[0]||(o[0]=a=>n("switchModal"))},[i.createVNode(i.unref($e),{icon:"settings"})])]),i.createElementVNode("div",Zv,[i.createElementVNode("div",Uv,i.toDisplayString(i.unref(Me)(t.isMaskPersonalTarget,i.unref(Ke)(t.currentProfit,{isPercentage:t.isPercentage,isFixed:!0}),{prefix:"$",repeat:5})),1),i.createElementVNode("div",qv,"/ "+i.toDisplayString(i.unref(Me)(t.isMaskPersonalTarget,i.unref(Ke)(t.profit,{isPercentage:t.isPercentage,isFixed:!0}))),1)]),i.createVNode(i.unref(I3),{"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?(i.openBlock(),i.createBlock(kr,{key:2,onRefresh:o[1]||(o[1]=a=>n("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-f6a89d4f"]]),Nl=t=>(i.pushScopeId("data-v-68d67f57"),t=t(),i.popScopeId(),t),Kv={class:"calendar-widget"},Xv={class:"calendar-widget__calendar"},Jv={class:"calendar-widget__top"},Qv={class:"calendar-widget__title-wrapper"},eT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__title"},"Calendar",-1)),tT={class:"stat-calendar"},nT={class:"stat-calendar__week-days"},rT={key:0,class:"stat-calendar__row-wrapper"},sT={class:"stat-calendar__row"},iT=["onClick"],oT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__divider"},null,-1)),aT={key:0,class:"calendar-widget__day"},lT={class:"calendar-widget__day__title"},cT={class:"calendar-widget__day__content"},dT={class:"calendar-widget__point"},uT={class:"calendar-widget__point__title"},hT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),fT={class:"calendar-widget__day__trades"},mT={class:"calendar-widget__point"},pT={class:"calendar-widget__point__title"},gT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),_T=Se({__name:"CalendarWidget",props:{rows:Array,dailyStatData:Object,currentDate:Date,isCurrentDate:Function,isCurrentDay:Function,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["setNewDate","chooseMonth","refresh"],setup(t,{emit:e}){const n=["Su","Mo","Tu","We","Th","Fr","Sa"],r=i.ref(null),s=i.ref(null),o=e,a=t,l=u=>{r.value=u.year,s.value=u.month,o("chooseMonth",u)};i.nextTick(()=>{const u=new Date;r.value=u.getFullYear(),s.value=u.getMonth()});const c=i.computed(()=>[{title:"Total trades",value:a.dailyStatData&&a.dailyStatData.trades_total_count||0},{title:"Winrate",value:Ke(a.dailyStatData&&a.dailyStatData.win_rate||0,{isPercentage:!0,isFixed:!0}),class:a.dailyStatData&&a.dailyStatData.win_rate>=50?"-win":"-loss"},{title:"Return",value:Ke(a.dailyStatData&&a.dailyStatData.return_total||0),class:a.dailyStatData&&a.dailyStatData.return_total>=0?"-win":"-loss"},{title:"Return on winners",value:Ke(a.dailyStatData&&a.dailyStatData.return_win||0)},{title:"Return on losers",value:Ke(a.dailyStatData&&a.dailyStatData.return_lose||0)},{title:"Commission",value:Ke(a.dailyStatData&&a.dailyStatData.commission||0)}]),d=i.computed(()=>[{title:"Win trades",value:a.dailyStatData&&a.dailyStatData.trades_win_count||0,isPositive:!0},{title:"Loss trades",value:-(a.dailyStatData&&a.dailyStatData.trades_lose_count)||0,isNegative:!1}]);return(u,h)=>{var f,m;return i.openBlock(),i.createElementBlock("div",Kv,[i.createElementVNode("div",Xv,[i.createElementVNode("div",Jv,[i.createElementVNode("div",Qv,[eT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.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?(i.openBlock(),i.createBlock(i.unref(F3),{key:0,"current-date":t.currentDate,onOnChange:l,year:r.value,"onUpdate:year":h[0]||(h[0]=g=>r.value=g),month:s.value,"onUpdate:month":h[1]||(h[1]=g=>s.value=g)},null,8,["current-date","year","month"])):i.createCommentVNode("",!0)]),i.createElementVNode("div",tT,[i.createElementVNode("div",nT,[(i.openBlock(),i.createElementBlock(i.Fragment,null,i.renderList(n,(g,p)=>i.createElementVNode("div",{class:i.normalizeClass(["stat-calendar__week-day",{"-current":t.isCurrentDay(p)}])},i.toDisplayString(g),3)),64))]),t.rows?(i.openBlock(),i.createElementBlock("div",rT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(t.rows,g=>(i.openBlock(),i.createElementBlock("div",sT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(g,p=>(i.openBlock(),i.createElementBlock("div",{class:i.normalizeClass(["stat-calendar__day",{"-empty":!p.date,"-current":t.isCurrentDate(p.date),"-positive":p.win,"-negative":p.win===!1}]),onClick:_=>o("setNewDate",p.date)},i.toDisplayString(p.date?p.date:""),11,iT))),256))]))),256))])):i.createCommentVNode("",!0)])]),oT,t.dailyStatData&&!t.dailyStatData.isNull?(i.openBlock(),i.createElementBlock("div",aT,[i.createElementVNode("div",lT,i.toDisplayString(t.currentDate.getDate()+" "+t.currentDate.toLocaleString("en-us",{month:"long"})),1),i.createElementVNode("div",cT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(c.value,g=>(i.openBlock(),i.createElementBlock("div",dT,[i.createElementVNode("div",uT,i.toDisplayString(g.title),1),hT,i.createElementVNode("div",{class:i.normalizeClass(["calendar-widget__point__value",g.class?g.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,g.value,{repeat:5})),3)]))),256)),i.createVNode(i.unref(Mm),{isHidden:t.isMask,long:(f=t.dailyStatData)==null?void 0:f.long_count,short:(m=t.dailyStatData)==null?void 0:m.short_count},null,8,["isHidden","long","short"]),i.createElementVNode("div",fT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(d.value,g=>(i.openBlock(),i.createElementBlock("div",mT,[i.createElementVNode("div",pT,i.toDisplayString(g.title),1),gT,i.createVNode(i.unref(ic),{isHidden:t.isMask,"is-positive":g.isPositive,"is-negative":g.isNegative,delta:g.value},null,8,["isHidden","is-positive","is-negative","delta"])]))),256))])])])):(i.openBlock(),i.createBlock(i.unref(_u),{key:1,class:"-empty"})),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:2,onRefresh:h[2]||(h[2]=g=>o("refresh"))})):i.createCommentVNode("",!0)])}}},[["__scopeId","data-v-68d67f57"]]),s1=t=>(i.pushScopeId("data-v-ca542a79"),t=t(),i.popScopeId(),t),yT={class:"commission-widget"},wT={class:"commission-widget__content"},bT={class:"commission-widget__top"},kT={class:"commission-widget__title-wrapper"},CT=s1(()=>i.createElementVNode("div",{class:"commission-widget__title"},"Commissions and Fees",-1)),xT={class:"commission-widget__info"},MT={class:"commission-widget__total-wrapper"},ST=s1(()=>i.createElementVNode("div",{class:"commission-widget__total-wrapper__title"},"Total",-1)),vT={class:"commission-widget__total-wrapper__total"},TT={class:"commission-widget__total-wrapper__value"},DT={class:"commission-widget__points"},OT={class:"commission-widget__point"},ET={class:"commission-widget__point__title"},$T=s1(()=>i.createElementVNode("div",{class:"commission-widget__point__line"},null,-1)),PT=Se({__name:"CommissionsFeesWidget",props:{commission:Number,commissionData:Object,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e,s=t,o=i.computed(()=>s.commissionData&&s.commissionData.commission||0),a=i.computed(()=>s.commissionData&&s.commissionData.pnl||0),l=i.computed(()=>[{title:"AVG fees per trade",value:`${Ke(s.commissionData&&s.commissionData.fees_per_trade||0)}`},{title:"PNL / Commission",value:a.value&&o.value?`${Ke(a.value)}/${Ke(o.value)}`:`${Ke(0)}`},{title:"AVG fees per day",value:`${Ke(s.commissionData&&s.commissionData.fees_per_day||0)}`},{title:"Funding",value:`${Ke(s.commissionData&&s.commissionData.funding||0)}`}]);return(c,d)=>(i.openBlock(),i.createElementBlock("div",yT,[i.createElementVNode("div",wT,[i.createElementVNode("div",bT,[i.createElementVNode("div",kT,[CT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("This widget helps traders finally understand how much money they spent on commissions and funding. ")]),_:1})]),i.createVNode(i.unref(js),{modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=u=>n.value=u),onOnChange:d[1]||(d[1]=u=>r("onChange",n.value))},null,8,["modelValue"])]),i.createElementVNode("div",xT,[i.createElementVNode("div",MT,[ST,i.createElementVNode("div",vT,[i.createElementVNode("div",TT,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(o.value),{repeat:5})),1)])]),i.createElementVNode("div",DT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(l.value,(u,h)=>(i.openBlock(),i.createElementBlock("div",OT,[i.createElementVNode("div",ET,i.toDisplayString(u.title),1),$T,i.createElementVNode("div",{class:i.normalizeClass(["commission-widget__point__value",u.class?u.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,u.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:d[2]||(d[2]=u=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-ca542a79"]]),LT=t=>(i.pushScopeId("data-v-67318e72"),t=t(),i.popScopeId(),t),VT={class:"performance-widget"},NT={class:"performance-widget__top"},BT={class:"performance-widget__title-wrapper"},AT=LT(()=>i.createElementVNode("div",{class:"performance-widget__title"},"Performance (cumulative)",-1)),RT=Se({__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}){const n=i.ref("week"),r=t,s=e,o=a=>Me(r.isMask,Et(a,2)+"%",{repeat:3});return(a,l)=>(i.openBlock(),i.createElementBlock("div",VT,[i.createElementVNode("div",NT,[i.createElementVNode("div",BT,[AT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("The linear graphics widget displays the profit as a percentage of the deposit. ")]),_:1})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createBlock(i.unref(js),{key:0,modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=c=>n.value=c),onOnChange:l[1]||(l[1]=c=>a.$emit("onChange",n.value))},null,8,["modelValue"]))]),i.createVNode(i.unref(n1),{data:t.performanceChartData,"data-type":"performanceChartData","ticks-callback":o,isMask:t.isMask},null,8,["data","isMask"]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:l[2]||(l[2]=c=>s("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-67318e72"]]),i1=t=>(i.pushScopeId("data-v-d2c3ecc3"),t=t(),i.popScopeId(),t),FT={class:"return-widget"},IT={class:"return-widget__content"},HT={class:"return-widget__top"},zT={class:"return-widget__title-wrapper"},YT=i1(()=>i.createElementVNode("div",{class:"return-widget__title"},"Return",-1)),WT={class:"return-widget__info"},jT={class:"return-widget__total-wrapper"},ZT=i1(()=>i.createElementVNode("div",{class:"return-widget__total-wrapper__title"},"Total",-1)),UT={class:"return-widget__total-wrapper__total"},qT={class:"return-widget__points"},GT={class:"return-widget__point"},KT={class:"return-widget__point__title"},XT=i1(()=>i.createElementVNode("div",{class:"return-widget__point__line"},null,-1)),JT=["innerHTML"],QT=Se({__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:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e,s=t,o=i.computed(()=>[{title:"Average return per trade",value:s.totalReturn,options:{isPlus:!0,isFixed:!0},class:s.totalReturn===0?"":s.totalReturn>0?"-win":"-loss"},{title:"Daily return",value:s.daily,options:{isPlus:!0,isFixed:!0},class:s.daily===0?"":s.daily>0?"-win":"-loss"},{title:"Return on winners",value:s.win,class:"-win"},{title:"Return on losers",value:s.lose,class:"-loss"}]),a=i.computed(()=>s.returnPeriod>0),l=i.computed(()=>s.returnPeriod<0),c=i.computed(()=>s.profitFactor>1?"-positive":"-negative"),d=i.computed(()=>s.profitFactor>0?`Your profit factor is ${Me(s.isMask,Et(s.profitFactor),{repeat:5})}. <br /> You earn ${Me(s.isMask,Ke(s.profitFactor),{repeat:5,prefix:"$"})} on every ${Me(s.isMask,"$1",{repeat:5,prefix:"$"})} loss.`:`Your profit factor is ${Me(s.isMask,Et(s.profitFactor),{repeat:5})}. <br/> You loss ${Me(s.isMask,Ke(Math.abs(s.profitFactor)),{repeat:5,prefix:"$"})} on every ${Me(s.isMask,"$1",{repeat:5,prefix:"$"})} earn. `);return(u,h)=>(i.openBlock(),i.createElementBlock("div",FT,[i.createElementVNode("div",IT,[i.createElementVNode("div",HT,[i.createElementVNode("div",zT,[YT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.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})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createBlock(i.unref(js),{key:0,modelValue:n.value,"onUpdate:modelValue":h[0]||(h[0]=f=>n.value=f),onOnChange:h[1]||(h[1]=f=>r("onChange",n.value))},null,8,["modelValue"]))]),i.createElementVNode("div",WT,[i.createElementVNode("div",jT,[ZT,i.createElementVNode("div",UT,[i.createElementVNode("div",{class:i.normalizeClass(["return-widget__total-wrapper__value",{"-positive":a.value,"-negative":l.value}])},i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(t.returnPeriod,{isPlus:!0,isFixed:!0}),{repeat:5})),3),s.changeRate?(i.openBlock(),i.createBlock(i.unref(ic),{key:0,percentage:"",isHidden:t.isMask,delta:s.changeRate},null,8,["isHidden","delta"])):i.createCommentVNode("",!0)])]),i.createElementVNode("div",qT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(o.value,f=>(i.openBlock(),i.createElementBlock("div",GT,[i.createElementVNode("div",KT,i.toDisplayString(f.title),1),XT,i.createElementVNode("div",{class:i.normalizeClass(["return-widget__point__value",f.class?f.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(f.value,f.options),{repeat:5,prefix:"$"})),3)]))),256))])])]),t.profitFactor?(i.openBlock(),i.createElementBlock("div",{key:0,class:i.normalizeClass(["return-widget__profit",c.value])},[i.createVNode(i.unref($e),{icon:"tip",class:"return-widget__profit__icon"}),i.createElementVNode("div",{class:"return-widget__profit__text",innerHTML:d.value},null,8,JT)],2)):i.createCommentVNode("",!0),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:1,onRefresh:h[2]||(h[2]=f=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-d2c3ecc3"]]),P2=t=>(i.pushScopeId("data-v-6f5fe6d5"),t=t(),i.popScopeId(),t),eD={class:"top-positions-widget"},tD={class:"top-positions-widget__top"},nD={class:"top-positions-widget__title-wrapper"},rD=P2(()=>i.createElementVNode("div",{class:"top-positions-widget__title"},"Top Positions",-1)),sD={key:0,class:"top-positions-widget__returns"},iD={class:"top-positions-widget__return"},oD={class:"top-positions-widget__return__left"},aD=P2(()=>i.createElementVNode("div",{class:"top-positions-widget__return__line"},null,-1)),lD={class:"top-positions-widget__return__pair"},cD={class:"top-positions-widget__return__right"},dD={class:"top-positions-widget__return__pnl"},uD=Se({__name:"TopPositionsWidget",props:{topPositions:{type:Array,default:[]},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e;return(s,o)=>(i.openBlock(),i.createElementBlock("div",eD,[i.createElementVNode("div",tD,[i.createElementVNode("div",nD,[rD,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Helps you find the top profitable positions. We calculate only net PNL, taking into account commission and funding. ")]),_:1})]),i.createVNode(i.unref(js),{modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=a=>n.value=a),onOnChange:o[1]||(o[1]=a=>r("onChange",n.value))},null,8,["modelValue"])]),t.topPositions&&t.topPositions.length?(i.openBlock(),i.createElementBlock("div",sD,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(t.topPositions,a=>(i.openBlock(),i.createElementBlock("div",iD,[i.createElementVNode("div",oD,[aD,i.createElementVNode("div",lD,i.toDisplayString(i.unref(_6)(a.pair)),1)]),i.createElementVNode("div",cD,[i.createElementVNode("div",dD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(a.pnl,{isFixed:!0,isPlus:!0},{repeat:5}))),1),i.createElementVNode("div",{class:i.normalizeClass(["top-positions-widget__return__roi",a.roi<0?"-negative":"-positive"])},[i.createVNode(i.unref($e),{icon:"bxs_up-arrow"}),i.createElementVNode("span",null,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(a.roi,{isPercentage:!0,isFixed:!0},{repeat:2}))),1)],2)])]))),256))])):(i.openBlock(),i.createBlock(i.unref(_u),{key:1,title:"No more pair",subtitle:"No data available for the specified period",icon:"coins-add"})),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:2,onRefresh:o[2]||(o[2]=a=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-6f5fe6d5"]]),o1=t=>(i.pushScopeId("data-v-1e15ea5d"),t=t(),i.popScopeId(),t),hD={class:"trade-widget"},fD={class:"trade-widget__content"},mD={class:"trade-widget__top"},pD={class:"trade-widget__title-wrapper"},gD=o1(()=>i.createElementVNode("div",{class:"trade-widget__title"},"Trades Performance",-1)),_D={class:"trade-widget__info"},yD={class:"trade-widget__total-wrapper"},wD=o1(()=>i.createElementVNode("div",{class:"trade-widget__total-wrapper__title"},"Total",-1)),bD={class:"trade-widget__total-wrapper__total"},kD={class:"trade-widget__total-wrapper__value"},CD={class:"trade-widget__points"},xD={class:"trade-widget__point"},MD={class:"trade-widget__point__title"},SD=o1(()=>i.createElementVNode("div",{class:"trade-widget__point__line"},null,-1)),vD=Se({__name:"TradePerformanceWidget",props:{totalTrades:Number,tradePoints:Array,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e;return(s,o)=>(i.openBlock(),i.createElementBlock("div",hD,[i.createElementVNode("div",fD,[i.createElementVNode("div",mD,[i.createElementVNode("div",pD,[gD,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("It displays the number of profitable and unprofitable positions. This widget is very useful for understanding your trading opportunities. ")]),_:1})]),i.createVNode(i.unref(js),{modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=a=>n.value=a),onOnChange:o[1]||(o[1]=a=>r("onChange",n.value))},null,8,["modelValue"])]),i.createElementVNode("div",_D,[i.createElementVNode("div",yD,[wD,i.createElementVNode("div",bD,[i.createElementVNode("div",kD,i.toDisplayString(i.unref(Me)(t.isMask,t.totalTrades,{repeat:5})),1)])]),i.createElementVNode("div",CD,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(t.tradePoints,a=>(i.openBlock(),i.createElementBlock("div",xD,[i.createElementVNode("div",MD,i.toDisplayString(a.title),1),SD,i.createElementVNode("div",{class:i.normalizeClass(["trade-widget__point__value",a.class?a.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,a.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:o[2]||(o[2]=a=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-1e15ea5d"]]),a1=t=>(i.pushScopeId("data-v-8d086f32"),t=t(),i.popScopeId(),t),TD={class:"winrate-widget"},DD={class:"winrate-widget__winrate"},OD={class:"winrate-widget__title-wrapper"},ED=a1(()=>i.createElementVNode("div",{class:"winrate-widget__title"},"Daily Winrate",-1)),$D={class:"winrate-widget__chart"},PD={class:"winrate-widget__data"},LD={class:"winrate-widget__data_value"},VD=a1(()=>i.createElementVNode("div",{class:"winrate-widget__data_title"},"Winrate",-1)),ND={class:"winrate-widget__average-rr"},BD={class:"winrate-widget__title-wrapper"},AD=a1(()=>i.createElementVNode("div",{class:"winrate-widget__title"},"Average RR",-1)),RD=Se({__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,s)=>(i.openBlock(),i.createElementBlock("div",TD,[i.createElementVNode("div",DD,[i.createElementVNode("div",OD,[ED,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Displays the percentage of your successful positions. ")]),_:1})]),i.createElementVNode("div",$D,[i.renderSlot(r.$slots,"roundSlider",{},void 0,!0),i.createElementVNode("div",PD,[i.createElementVNode("div",LD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Et)(t.winrate,2)))+"%",1),VD])])]),i.createElementVNode("div",ND,[i.createElementVNode("div",BD,[AD,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Risk Reward, defines the ratio of potential profit to loss you can get. ")]),_:1})]),i.createVNode(i.unref(L2),{avg:t.averageRR,min:t.minRR,max:t.maxRR,isMask:t.isMask},null,8,["avg","min","max","isMask"])]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:s[0]||(s[0]=o=>n("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-8d086f32"]]),FD=t=>(i.pushScopeId("data-v-e6d713b2"),t=t(),i.popScopeId(),t),ID={class:"average-rr-line-container"},HD={class:"average-rr-line"},zD={key:0,class:"average-rr-line__progress"},YD=[FD(()=>i.createElementVNode("div",{class:"average-rr-line__dot"},null,-1))],WD={class:"coefficients"},jD={class:"coefficients__value -min"},ZD={class:"coefficients__value -avg"},UD={class:"coefficients__value -max"},L2=Se({__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)=>(i.openBlock(),i.createElementBlock("div",ID,[i.createElementVNode("div",HD,[t.avg&&t.max?(i.openBlock(),i.createElementBlock("div",zD,YD)):i.createCommentVNode("",!0)]),i.createElementVNode("div",WD,[i.createElementVNode("div",jD,i.toDisplayString(i.unref(Me)(t.isMask,t.min,{repeat:3})),1),i.createElementVNode("div",ZD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Et)(t.avg))),1),i.createElementVNode("div",UD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Et)(t.max),{repeat:3})),1)])]))}},[["__scopeId","data-v-e6d713b2"]]);function V2(t){return i.getCurrentScope()?(i.onScopeDispose(t),!0):!1}function Uo(t){return typeof t=="function"?t():i.unref(t)}const N2=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const qD=Object.prototype.toString,GD=t=>qD.call(t)==="[object Object]",qo=()=>{},l1=KD();function KD(){var t,e;return N2&&((t=window==null?void 0:window.navigator)==null?void 0:t.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((e=window==null?void 0:window.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}const B2={mounted:"mounted",updated:"updated",unmounted:"unmounted"};function XD(...t){if(t.length!==1)return i.toRef(...t);const e=t[0];return typeof e=="function"?i.readonly(i.customRef(()=>({get:e,set:qo}))):i.ref(e)}function Go(t){var e;const n=Uo(t);return(e=n==null?void 0:n.$el)!=null?e:n}const A2=N2?window:void 0;function Bl(...t){let e,n,r,s;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,s]=t,e=A2):[e,n,r,s]=t,!e)return qo;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],a=()=>{o.forEach(u=>u()),o.length=0},l=(u,h,f,m)=>(u.addEventListener(h,f,m),()=>u.removeEventListener(h,f,m)),c=i.watch(()=>[Go(e),Uo(s)],([u,h])=>{if(a(),!u)return;const f=GD(h)?{...h}:h;o.push(...n.flatMap(m=>r.map(g=>l(u,m,g,f))))},{immediate:!0,flush:"post"}),d=()=>{c(),a()};return V2(d),d}let R2=!1;function F2(t,e,n={}){const{window:r=A2,ignore:s=[],capture:o=!0,detectIframe:a=!1}=n;if(!r)return qo;l1&&!R2&&(R2=!0,Array.from(r.document.body.children).forEach(f=>f.addEventListener("click",qo)),r.document.documentElement.addEventListener("click",qo));let l=!0;const c=f=>s.some(m=>{if(typeof m=="string")return Array.from(r.document.querySelectorAll(m)).some(g=>g===f.target||f.composedPath().includes(g));{const g=Go(m);return g&&(f.target===g||f.composedPath().includes(g))}}),u=[Bl(r,"click",f=>{const m=Go(t);if(!(!m||m===f.target||f.composedPath().includes(m))){if(f.detail===0&&(l=!c(f)),!l){l=!0;return}e(f)}},{passive:!0,capture:o}),Bl(r,"pointerdown",f=>{const m=Go(t);l=!c(f)&&!!(m&&!f.composedPath().includes(m))},{passive:!0}),a&&Bl(r,"blur",f=>{setTimeout(()=>{var m;const g=Go(t);((m=r.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!(g!=null&&g.contains(r.document.activeElement))&&e(f)},0)})].filter(Boolean);return()=>u.forEach(f=>f())}const I2={[B2.mounted](t,e){const n=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=F2(t,e.value,{capture:n});else{const[r,s]=e.value;t.__onClickOutside_stop=F2(t,r,Object.assign({capture:n},s))}},[B2.unmounted](t){t.__onClickOutside_stop()}};function c1(t){return typeof Window<"u"&&t instanceof Window?t.document.documentElement:typeof Document<"u"&&t instanceof Document?t.documentElement:t}function H2(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:H2(n)}}function JD(t){const e=t||window.event,n=e.target;return H2(n)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}const Al=new WeakMap;function QD(t,e=!1){const n=i.ref(e);let r=null;i.watch(XD(t),a=>{const l=c1(Uo(a));if(l){const c=l;Al.get(c)||Al.set(c,c.style.overflow),n.value&&(c.style.overflow="hidden")}},{immediate:!0});const s=()=>{const a=c1(Uo(t));!a||n.value||(l1&&(r=Bl(a,"touchmove",l=>{JD(l)},{passive:!1})),a.style.overflow="hidden",n.value=!0)},o=()=>{var a;const l=c1(Uo(t));!l||!n.value||(l1&&(r==null||r()),l.style.overflow=(a=Al.get(l))!=null?a:"",Al.delete(l),n.value=!1)};return V2(o),i.computed({get(){return n.value},set(a){a?s():o()}})}function eO(){let t=!1;const e=i.ref(!1);return(n,r)=>{if(e.value=r.value,t)return;t=!0;const s=QD(n,r.value);i.watch(e,o=>s.value=o)}}eO();//! moment.js
41
+ <span> | ${hh(M[0])}, ${g6(M[0])}</span></div>`;g.firstChild;)g.firstChild.remove();g.appendChild(S)}const{offsetLeft:p,offsetTop:_,clientWidth:y}=f.canvas;let C=p+m.caretX;const k=_+m.caretY,v=g.clientWidth;C+v>y&&(C-=v),g.style.opacity="1",g.style.left=C+"px",g.style.top=k+"px"}},d=h=>{const{chart:f}=h,m=l("chart-line",f),g=f.chartArea;f.canvas.addEventListener("mousemove",function(p){const _=f.canvas.getBoundingClientRect(),y=p.clientX-_.left,C=p.clientY-_.top;y>=g.left&&y<=g.right&&C>=g.top&&C<=g.bottom?(m.style.left=y+"px",m.style.top=g.top+"px",m.style.height=g.bottom-g.top+"px",m.style.display="flex"):m.style.display="none"}),f.canvas.addEventListener("mouseout",function(){m.style.display="none"})},u=i.computed(()=>({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},scales:{x:{ticks:{display:!r.isEmpty,callback:function(h){return hh(this.getLabelForValue(h)).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:"#EDEDED"}},y:{ticks:{display:!r.isEmpty,callback:function(h){return e.ticksCallback(h)},color:"#8E8E93",font:{size:14,weight:400,family:"'SF Pro Display', sans-serif"},padding:15},grid:{color:"#EDEDED",drawTicks:!1},border:{display:!1,dash:[4,4],dashOffset:1}}},plugins:{tooltip:{enabled:!1,position:"nearest",external:c},legend:!1},elements:{line:{backgroundColor:h=>a(h),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:d}));return i.watch(()=>e.isMask,()=>{n.value+=1},{immediate:!0}),(h,f)=>(i.openBlock(),i.createElementBlock("div",kv,[(i.openBlock(),i.createBlock(i.unref(E2),{key:n.value,data:o.value,options:u.value},null,8,["data","options"]))]))}},r1={__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){Yo.register(Dl,El,Wo,wr,a2);const e=t,n=a=>{const l=new Set,c=[],d=a.map(h=>(l.add(h.date),h.balance));return c.push({data:d}),{labels:Array.from(l),datasets:c}},r=i.computed(()=>n(e.data)),s=a=>{const c=a.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return c.addColorStop(0,e.gradient.startColor),c.addColorStop(1,e.gradient.endColor),c},o=i.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:a=>s(a),tension:.3,borderWidth:4,borderColor:e.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:!1}}});return(a,l)=>(i.openBlock(),i.createBlock(i.unref(E2),{data:r.value,options:o.value},null,8,["data","options"]))}},Cv=t=>(i.pushScopeId("data-v-aaab5f66"),t=t(),i.popScopeId(),t),xv={class:"import-data"},Mv={class:"import-data__content"},Sv=Cv(()=>i.createElementVNode("div",{class:"import-data__text"},[i.createTextVNode("Importing data from the exchange. "),i.createElementVNode("br"),i.createTextVNode(" The widget will be displayed after the page reloads")],-1)),kr=Se({__name:"ImportData",emits:["refresh"],setup(t,{emit:e}){const n=e;return(r,s)=>(i.openBlock(),i.createElementBlock("div",xv,[i.createElementVNode("div",Mv,[i.createElementVNode("div",{onClick:s[0]||(s[0]=o=>n("refresh")),class:"import-data__refresh-btn"},[i.createVNode(i.unref($e),{icon:"arrow-rotating"})]),Sv])]))}},[["__scopeId","data-v-aaab5f66"]]),vv=t=>(i.pushScopeId("data-v-23c196ae"),t=t(),i.popScopeId(),t),Tv={class:"account-balance-widget"},Dv={class:"account-balance-widget__top"},Ov={class:"account-balance-widget__title-wrapper"},Ev=vv(()=>i.createElementVNode("div",{class:"account-balance-widget__title"},"Account Balance",-1)),$v=Se({__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.ref("week"),r=i.ref(0),s=l=>{const c=l*Sc();return c>=1e3||c<=-1e3?Me(a.isMask,Et(c/1e3,2)+"k",{repeat:3}):Et(c,2)},o=e,a=t;return i.watch(()=>a.isMask,()=>{r.value+=1},{immediate:!0}),(l,c)=>(i.openBlock(),i.createElementBlock("div",Tv,[i.createElementVNode("div",Dv,[i.createElementVNode("div",Ov,[Ev,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("This graphic widget displays changes to your deposit over a specific time period. ")]),_:1})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createBlock(i.unref(js),{key:0,modelValue:n.value,"onUpdate:modelValue":c[0]||(c[0]=d=>n.value=d),onOnChange:c[1]||(c[1]=d=>l.$emit("onChange",n.value))},null,8,["modelValue"]))]),(i.openBlock(),i.createBlock(i.unref(n1),{key:r.value,data:t.balanceChartData,"data-type":"balanceChartData","ticks-callback":s,isMask:t.isMask},null,8,["data","isMask"])),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:c[2]||(c[2]=d=>o("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-23c196ae"]]),$2=t=>(i.pushScopeId("data-v-f6a89d4f"),t=t(),i.popScopeId(),t),Pv={class:"balance-widget"},Lv={class:"balance-part"},Vv={class:"balance-part__top"},Nv={class:"balance-part__title-wrapper"},Bv=$2(()=>i.createElementVNode("div",{class:"balance-part__title"},"Balance",-1)),Av={class:"balance-part__content"},Rv={class:"balance-part__content__wrapper"},Fv={class:"balance-part__content__count"},Iv={class:"balance-part__content__bitcoin"},Hv={key:0,class:"devider"},zv={key:1,class:"personal-target-part"},Yv={class:"personal-target-part__top"},Wv={class:"personal-target-part__title-wrapper"},jv=$2(()=>i.createElementVNode("div",{class:"personal-target-part__title"},"Personal target",-1)),Zv={class:"personal-target-part__content"},Uv={class:"personal-target-part__content__current"},qv={class:"personal-target-part__content__from"},Gv=Se({__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=()=>{n("switchVisibility")};return(s,o)=>(i.openBlock(),i.createElementBlock("div",Pv,[i.createElementVNode("div",Lv,[i.createElementVNode("div",Vv,[i.createElementVNode("div",Nv,[Bv,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Displays the balance of your deposit in USD and BTC equivalent, additionally showing the growth/fall of your balance.")]),_:1})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createElementBlock("div",{key:0,class:"balance-part__visibility-switcher",onClick:r},[i.withDirectives(i.createVNode(i.unref($e),{icon:"eye"},null,512),[[i.vShow,t.isHidden]]),i.withDirectives(i.createVNode(i.unref($e),{icon:"eye-slash"},null,512),[[i.vShow,!t.isHidden]])]))]),i.createElementVNode("div",Av,[i.createElementVNode("div",Rv,[i.createElementVNode("div",Fv,i.toDisplayString(i.unref(Me)(t.isMaskBalance,i.unref(Ke)(t.USDT),{prefix:"$"})),1),t.delta?(i.openBlock(),i.createBlock(i.unref(ic),{key:0,"is-hidden":t.isMaskBalance,percentage:"",delta:t.delta},null,8,["is-hidden","delta"])):i.createCommentVNode("",!0)]),i.createElementVNode("div",Iv,"= "+i.toDisplayString(i.unref(Me)(t.isMaskBalance,t.BTC))+" BTC",1)]),t.isShare?(i.openBlock(),i.createBlock(i.unref(r1),{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","gradient"])):(i.openBlock(),i.createBlock(i.unref(r1),{key:1,class:"balance-part__chart",data:t.balanceChartData},null,8,["data"]))]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createElementBlock("div",Hv)),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createElementBlock("div",zv,[i.createElementVNode("div",Yv,[i.createElementVNode("div",Wv,[jv,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.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})]),i.createElementVNode("div",{class:"balance-part__modal-switcher",onClick:o[0]||(o[0]=a=>n("switchModal"))},[i.createVNode(i.unref($e),{icon:"settings"})])]),i.createElementVNode("div",Zv,[i.createElementVNode("div",Uv,i.toDisplayString(i.unref(Me)(t.isMaskPersonalTarget,i.unref(Ke)(t.currentProfit,{isPercentage:t.isPercentage,isFixed:!0}),{prefix:"$",repeat:5})),1),i.createElementVNode("div",qv,"/ "+i.toDisplayString(i.unref(Me)(t.isMaskPersonalTarget,i.unref(Ke)(t.profit,{isPercentage:t.isPercentage,isFixed:!0}))),1)]),i.createVNode(i.unref(I3),{"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?(i.openBlock(),i.createBlock(kr,{key:2,onRefresh:o[1]||(o[1]=a=>n("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-f6a89d4f"]]),Nl=t=>(i.pushScopeId("data-v-68d67f57"),t=t(),i.popScopeId(),t),Kv={class:"calendar-widget"},Xv={class:"calendar-widget__calendar"},Jv={class:"calendar-widget__top"},Qv={class:"calendar-widget__title-wrapper"},eT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__title"},"Calendar",-1)),tT={class:"stat-calendar"},nT={class:"stat-calendar__week-days"},rT={key:0,class:"stat-calendar__row-wrapper"},sT={class:"stat-calendar__row"},iT=["onClick"],oT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__divider"},null,-1)),aT={key:0,class:"calendar-widget__day"},lT={class:"calendar-widget__day__title"},cT={class:"calendar-widget__day__content"},dT={class:"calendar-widget__point"},uT={class:"calendar-widget__point__title"},hT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),fT={class:"calendar-widget__day__trades"},mT={class:"calendar-widget__point"},pT={class:"calendar-widget__point__title"},gT=Nl(()=>i.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),_T=Se({__name:"CalendarWidget",props:{rows:Array,dailyStatData:Object,currentDate:Date,isCurrentDate:Function,isCurrentDay:Function,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["setNewDate","chooseMonth","refresh"],setup(t,{emit:e}){const n=["Su","Mo","Tu","We","Th","Fr","Sa"],r=i.ref(null),s=i.ref(null),o=e,a=t,l=u=>{r.value=u.year,s.value=u.month,o("chooseMonth",u)};i.nextTick(()=>{const u=new Date;r.value=u.getFullYear(),s.value=u.getMonth()});const c=i.computed(()=>[{title:"Total trades",value:a.dailyStatData&&a.dailyStatData.trades_total_count||0},{title:"Winrate",value:Ke(a.dailyStatData&&a.dailyStatData.win_rate||0,{isPercentage:!0,isFixed:!0}),class:a.dailyStatData&&a.dailyStatData.win_rate>=50?"-win":"-loss"},{title:"Return",value:Ke(a.dailyStatData&&a.dailyStatData.return_total||0),class:a.dailyStatData&&a.dailyStatData.return_total>=0?"-win":"-loss"},{title:"Return on winners",value:Ke(a.dailyStatData&&a.dailyStatData.return_win||0)},{title:"Return on losers",value:Ke(a.dailyStatData&&a.dailyStatData.return_lose||0)},{title:"Commission",value:Ke(a.dailyStatData&&a.dailyStatData.commission||0)}]),d=i.computed(()=>[{title:"Win trades",value:a.dailyStatData&&a.dailyStatData.trades_win_count||0,isPositive:!0},{title:"Loss trades",value:-(a.dailyStatData&&a.dailyStatData.trades_lose_count)||0,isNegative:!1}]);return(u,h)=>{var f,m;return i.openBlock(),i.createElementBlock("div",Kv,[i.createElementVNode("div",Xv,[i.createElementVNode("div",Jv,[i.createElementVNode("div",Qv,[eT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.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?(i.openBlock(),i.createBlock(i.unref(F3),{key:0,"current-date":t.currentDate,onOnChange:l,year:r.value,"onUpdate:year":h[0]||(h[0]=g=>r.value=g),month:s.value,"onUpdate:month":h[1]||(h[1]=g=>s.value=g)},null,8,["current-date","year","month"])):i.createCommentVNode("",!0)]),i.createElementVNode("div",tT,[i.createElementVNode("div",nT,[(i.openBlock(),i.createElementBlock(i.Fragment,null,i.renderList(n,(g,p)=>i.createElementVNode("div",{class:i.normalizeClass(["stat-calendar__week-day",{"-current":t.isCurrentDay(p)}])},i.toDisplayString(g),3)),64))]),t.rows?(i.openBlock(),i.createElementBlock("div",rT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(t.rows,g=>(i.openBlock(),i.createElementBlock("div",sT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(g,p=>(i.openBlock(),i.createElementBlock("div",{class:i.normalizeClass(["stat-calendar__day",{"-empty":!p.date,"-current":t.isCurrentDate(p.date),"-positive":p.win,"-negative":p.win===!1}]),onClick:_=>o("setNewDate",p.date)},i.toDisplayString(p.date?p.date:""),11,iT))),256))]))),256))])):i.createCommentVNode("",!0)])]),oT,t.dailyStatData&&!t.dailyStatData.isNull?(i.openBlock(),i.createElementBlock("div",aT,[i.createElementVNode("div",lT,i.toDisplayString(t.currentDate.getDate()+" "+t.currentDate.toLocaleString("en-us",{month:"long"})),1),i.createElementVNode("div",cT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(c.value,g=>(i.openBlock(),i.createElementBlock("div",dT,[i.createElementVNode("div",uT,i.toDisplayString(g.title),1),hT,i.createElementVNode("div",{class:i.normalizeClass(["calendar-widget__point__value",g.class?g.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,g.value,{repeat:5})),3)]))),256)),i.createVNode(i.unref(Mm),{isHidden:t.isMask,long:(f=t.dailyStatData)==null?void 0:f.long_count,short:(m=t.dailyStatData)==null?void 0:m.short_count},null,8,["isHidden","long","short"]),i.createElementVNode("div",fT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(d.value,g=>(i.openBlock(),i.createElementBlock("div",mT,[i.createElementVNode("div",pT,i.toDisplayString(g.title),1),gT,i.createVNode(i.unref(ic),{isHidden:t.isMask,"is-positive":g.isPositive,"is-negative":g.isNegative,delta:g.value},null,8,["isHidden","is-positive","is-negative","delta"])]))),256))])])])):(i.openBlock(),i.createBlock(i.unref(_u),{key:1,class:"-empty"})),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:2,onRefresh:h[2]||(h[2]=g=>o("refresh"))})):i.createCommentVNode("",!0)])}}},[["__scopeId","data-v-68d67f57"]]),s1=t=>(i.pushScopeId("data-v-ca542a79"),t=t(),i.popScopeId(),t),yT={class:"commission-widget"},wT={class:"commission-widget__content"},bT={class:"commission-widget__top"},kT={class:"commission-widget__title-wrapper"},CT=s1(()=>i.createElementVNode("div",{class:"commission-widget__title"},"Commissions and Fees",-1)),xT={class:"commission-widget__info"},MT={class:"commission-widget__total-wrapper"},ST=s1(()=>i.createElementVNode("div",{class:"commission-widget__total-wrapper__title"},"Total",-1)),vT={class:"commission-widget__total-wrapper__total"},TT={class:"commission-widget__total-wrapper__value"},DT={class:"commission-widget__points"},OT={class:"commission-widget__point"},ET={class:"commission-widget__point__title"},$T=s1(()=>i.createElementVNode("div",{class:"commission-widget__point__line"},null,-1)),PT=Se({__name:"CommissionsFeesWidget",props:{commission:Number,commissionData:Object,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e,s=t,o=i.computed(()=>s.commissionData&&s.commissionData.commission||0),a=i.computed(()=>s.commissionData&&s.commissionData.pnl||0),l=i.computed(()=>[{title:"AVG fees per trade",value:`${Ke(s.commissionData&&s.commissionData.fees_per_trade||0)}`},{title:"PNL / Commission",value:a.value&&o.value?`${Ke(a.value)}/${Ke(o.value)}`:`${Ke(0)}`},{title:"AVG fees per day",value:`${Ke(s.commissionData&&s.commissionData.fees_per_day||0)}`},{title:"Funding",value:`${Ke(s.commissionData&&s.commissionData.funding||0)}`}]);return(c,d)=>(i.openBlock(),i.createElementBlock("div",yT,[i.createElementVNode("div",wT,[i.createElementVNode("div",bT,[i.createElementVNode("div",kT,[CT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("This widget helps traders finally understand how much money they spent on commissions and funding. ")]),_:1})]),i.createVNode(i.unref(js),{modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=u=>n.value=u),onOnChange:d[1]||(d[1]=u=>r("onChange",n.value))},null,8,["modelValue"])]),i.createElementVNode("div",xT,[i.createElementVNode("div",MT,[ST,i.createElementVNode("div",vT,[i.createElementVNode("div",TT,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(o.value),{repeat:5})),1)])]),i.createElementVNode("div",DT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(l.value,(u,h)=>(i.openBlock(),i.createElementBlock("div",OT,[i.createElementVNode("div",ET,i.toDisplayString(u.title),1),$T,i.createElementVNode("div",{class:i.normalizeClass(["commission-widget__point__value",u.class?u.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,u.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:d[2]||(d[2]=u=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-ca542a79"]]),LT=t=>(i.pushScopeId("data-v-67318e72"),t=t(),i.popScopeId(),t),VT={class:"performance-widget"},NT={class:"performance-widget__top"},BT={class:"performance-widget__title-wrapper"},AT=LT(()=>i.createElementVNode("div",{class:"performance-widget__title"},"Performance (cumulative)",-1)),RT=Se({__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}){const n=i.ref("week"),r=t,s=e,o=a=>Me(r.isMask,Et(a,2)+"%",{repeat:3});return(a,l)=>(i.openBlock(),i.createElementBlock("div",VT,[i.createElementVNode("div",NT,[i.createElementVNode("div",BT,[AT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("The linear graphics widget displays the profit as a percentage of the deposit. ")]),_:1})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createBlock(i.unref(js),{key:0,modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=c=>n.value=c),onOnChange:l[1]||(l[1]=c=>a.$emit("onChange",n.value))},null,8,["modelValue"]))]),i.createVNode(i.unref(n1),{data:t.performanceChartData,"data-type":"performanceChartData","ticks-callback":o,isMask:t.isMask},null,8,["data","isMask"]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:l[2]||(l[2]=c=>s("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-67318e72"]]),i1=t=>(i.pushScopeId("data-v-d2c3ecc3"),t=t(),i.popScopeId(),t),FT={class:"return-widget"},IT={class:"return-widget__content"},HT={class:"return-widget__top"},zT={class:"return-widget__title-wrapper"},YT=i1(()=>i.createElementVNode("div",{class:"return-widget__title"},"Return",-1)),WT={class:"return-widget__info"},jT={class:"return-widget__total-wrapper"},ZT=i1(()=>i.createElementVNode("div",{class:"return-widget__total-wrapper__title"},"Total",-1)),UT={class:"return-widget__total-wrapper__total"},qT={class:"return-widget__points"},GT={class:"return-widget__point"},KT={class:"return-widget__point__title"},XT=i1(()=>i.createElementVNode("div",{class:"return-widget__point__line"},null,-1)),JT=["innerHTML"],QT=Se({__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:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e,s=t,o=i.computed(()=>[{title:"Average return per trade",value:s.totalReturn,options:{isPlus:!0,isFixed:!0},class:s.totalReturn===0?"":s.totalReturn>0?"-win":"-loss"},{title:"Daily return",value:s.daily,options:{isPlus:!0,isFixed:!0},class:s.daily===0?"":s.daily>0?"-win":"-loss"},{title:"Return on winners",value:s.win,class:"-win"},{title:"Return on losers",value:s.lose,class:"-loss"}]),a=i.computed(()=>s.returnPeriod>0),l=i.computed(()=>s.returnPeriod<0),c=i.computed(()=>s.profitFactor>1?"-positive":"-negative"),d=i.computed(()=>s.profitFactor>0?`Your profit factor is ${Me(s.isMask,Et(s.profitFactor),{repeat:5})}. <br /> You earn ${Me(s.isMask,Ke(s.profitFactor),{repeat:5,prefix:"$"})} on every ${Me(s.isMask,"$1",{repeat:5,prefix:"$"})} loss.`:`Your profit factor is ${Me(s.isMask,Et(s.profitFactor),{repeat:5})}. <br/> You loss ${Me(s.isMask,Ke(Math.abs(s.profitFactor)),{repeat:5,prefix:"$"})} on every ${Me(s.isMask,"$1",{repeat:5,prefix:"$"})} earn. `);return(u,h)=>(i.openBlock(),i.createElementBlock("div",FT,[i.createElementVNode("div",IT,[i.createElementVNode("div",HT,[i.createElementVNode("div",zT,[YT,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.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})]),t.isShare?i.createCommentVNode("",!0):(i.openBlock(),i.createBlock(i.unref(js),{key:0,modelValue:n.value,"onUpdate:modelValue":h[0]||(h[0]=f=>n.value=f),onOnChange:h[1]||(h[1]=f=>r("onChange",n.value))},null,8,["modelValue"]))]),i.createElementVNode("div",WT,[i.createElementVNode("div",jT,[ZT,i.createElementVNode("div",UT,[i.createElementVNode("div",{class:i.normalizeClass(["return-widget__total-wrapper__value",{"-positive":a.value,"-negative":l.value}])},i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(t.returnPeriod,{isPlus:!0,isFixed:!0}),{repeat:5})),3),s.changeRate?(i.openBlock(),i.createBlock(i.unref(ic),{key:0,percentage:"",isHidden:t.isMask,delta:s.changeRate},null,8,["isHidden","delta"])):i.createCommentVNode("",!0)])]),i.createElementVNode("div",qT,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(o.value,f=>(i.openBlock(),i.createElementBlock("div",GT,[i.createElementVNode("div",KT,i.toDisplayString(f.title),1),XT,i.createElementVNode("div",{class:i.normalizeClass(["return-widget__point__value",f.class?f.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(f.value,f.options),{repeat:5,prefix:"$"})),3)]))),256))])])]),t.profitFactor?(i.openBlock(),i.createElementBlock("div",{key:0,class:i.normalizeClass(["return-widget__profit",c.value])},[i.createVNode(i.unref($e),{icon:"tip",class:"return-widget__profit__icon"}),i.createElementVNode("div",{class:"return-widget__profit__text",innerHTML:d.value},null,8,JT)],2)):i.createCommentVNode("",!0),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:1,onRefresh:h[2]||(h[2]=f=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-d2c3ecc3"]]),P2=t=>(i.pushScopeId("data-v-6f5fe6d5"),t=t(),i.popScopeId(),t),eD={class:"top-positions-widget"},tD={class:"top-positions-widget__top"},nD={class:"top-positions-widget__title-wrapper"},rD=P2(()=>i.createElementVNode("div",{class:"top-positions-widget__title"},"Top Positions",-1)),sD={key:0,class:"top-positions-widget__returns"},iD={class:"top-positions-widget__return"},oD={class:"top-positions-widget__return__left"},aD=P2(()=>i.createElementVNode("div",{class:"top-positions-widget__return__line"},null,-1)),lD={class:"top-positions-widget__return__pair"},cD={class:"top-positions-widget__return__right"},dD={class:"top-positions-widget__return__pnl"},uD=Se({__name:"TopPositionsWidget",props:{topPositions:{type:Array,default:[]},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e;return(s,o)=>(i.openBlock(),i.createElementBlock("div",eD,[i.createElementVNode("div",tD,[i.createElementVNode("div",nD,[rD,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Helps you find the top profitable positions. We calculate only net PNL, taking into account commission and funding. ")]),_:1})]),i.createVNode(i.unref(js),{modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=a=>n.value=a),onOnChange:o[1]||(o[1]=a=>r("onChange",n.value))},null,8,["modelValue"])]),t.topPositions&&t.topPositions.length?(i.openBlock(),i.createElementBlock("div",sD,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(t.topPositions,a=>(i.openBlock(),i.createElementBlock("div",iD,[i.createElementVNode("div",oD,[aD,i.createElementVNode("div",lD,i.toDisplayString(i.unref(_6)(a.pair)),1)]),i.createElementVNode("div",cD,[i.createElementVNode("div",dD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(a.pnl,{isFixed:!0,isPlus:!0},{repeat:5}))),1),i.createElementVNode("div",{class:i.normalizeClass(["top-positions-widget__return__roi",a.roi<0?"-negative":"-positive"])},[i.createVNode(i.unref($e),{icon:"bxs_up-arrow"}),i.createElementVNode("span",null,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Ke)(a.roi,{isPercentage:!0,isFixed:!0},{repeat:2}))),1)],2)])]))),256))])):(i.openBlock(),i.createBlock(i.unref(_u),{key:1,title:"No more pair",subtitle:"No data available for the specified period",icon:"coins-add"})),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:2,onRefresh:o[2]||(o[2]=a=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-6f5fe6d5"]]),o1=t=>(i.pushScopeId("data-v-1e15ea5d"),t=t(),i.popScopeId(),t),hD={class:"trade-widget"},fD={class:"trade-widget__content"},mD={class:"trade-widget__top"},pD={class:"trade-widget__title-wrapper"},gD=o1(()=>i.createElementVNode("div",{class:"trade-widget__title"},"Trades Performance",-1)),_D={class:"trade-widget__info"},yD={class:"trade-widget__total-wrapper"},wD=o1(()=>i.createElementVNode("div",{class:"trade-widget__total-wrapper__title"},"Total",-1)),bD={class:"trade-widget__total-wrapper__total"},kD={class:"trade-widget__total-wrapper__value"},CD={class:"trade-widget__points"},xD={class:"trade-widget__point"},MD={class:"trade-widget__point__title"},SD=o1(()=>i.createElementVNode("div",{class:"trade-widget__point__line"},null,-1)),vD=Se({__name:"TradePerformanceWidget",props:{totalTrades:Number,tradePoints:Array,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["onChange","refresh"],setup(t,{emit:e}){const n=i.ref("week"),r=e;return(s,o)=>(i.openBlock(),i.createElementBlock("div",hD,[i.createElementVNode("div",fD,[i.createElementVNode("div",mD,[i.createElementVNode("div",pD,[gD,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("It displays the number of profitable and unprofitable positions. This widget is very useful for understanding your trading opportunities. ")]),_:1})]),i.createVNode(i.unref(js),{modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=a=>n.value=a),onOnChange:o[1]||(o[1]=a=>r("onChange",n.value))},null,8,["modelValue"])]),i.createElementVNode("div",_D,[i.createElementVNode("div",yD,[wD,i.createElementVNode("div",bD,[i.createElementVNode("div",kD,i.toDisplayString(i.unref(Me)(t.isMask,t.totalTrades,{repeat:5})),1)])]),i.createElementVNode("div",CD,[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(t.tradePoints,a=>(i.openBlock(),i.createElementBlock("div",xD,[i.createElementVNode("div",MD,i.toDisplayString(a.title),1),SD,i.createElementVNode("div",{class:i.normalizeClass(["trade-widget__point__value",a.class?a.class:""])},i.toDisplayString(i.unref(Me)(t.isMask,a.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:o[2]||(o[2]=a=>r("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-1e15ea5d"]]),a1=t=>(i.pushScopeId("data-v-8d086f32"),t=t(),i.popScopeId(),t),TD={class:"winrate-widget"},DD={class:"winrate-widget__winrate"},OD={class:"winrate-widget__title-wrapper"},ED=a1(()=>i.createElementVNode("div",{class:"winrate-widget__title"},"Daily Winrate",-1)),$D={class:"winrate-widget__chart"},PD={class:"winrate-widget__data"},LD={class:"winrate-widget__data_value"},VD=a1(()=>i.createElementVNode("div",{class:"winrate-widget__data_title"},"Winrate",-1)),ND={class:"winrate-widget__average-rr"},BD={class:"winrate-widget__title-wrapper"},AD=a1(()=>i.createElementVNode("div",{class:"winrate-widget__title"},"Average RR",-1)),RD=Se({__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,s)=>(i.openBlock(),i.createElementBlock("div",TD,[i.createElementVNode("div",DD,[i.createElementVNode("div",OD,[ED,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Displays the percentage of your successful positions. ")]),_:1})]),i.createElementVNode("div",$D,[i.renderSlot(r.$slots,"roundSlider",{},void 0,!0),i.createElementVNode("div",PD,[i.createElementVNode("div",LD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Et)(t.winrate,2)))+"%",1),VD])])]),i.createElementVNode("div",ND,[i.createElementVNode("div",BD,[AD,i.createVNode(i.unref(pn),{alternative:""},{default:i.withCtx(()=>[i.createTextVNode("Risk Reward, defines the ratio of potential profit to loss you can get. ")]),_:1})]),i.createVNode(i.unref(L2),{avg:t.averageRR,min:t.minRR,max:t.maxRR,isMask:t.isMask},null,8,["avg","min","max","isMask"])]),t.requiredUpdate?(i.openBlock(),i.createBlock(kr,{key:0,onRefresh:s[0]||(s[0]=o=>n("refresh"))})):i.createCommentVNode("",!0)]))}},[["__scopeId","data-v-8d086f32"]]),FD=t=>(i.pushScopeId("data-v-e6d713b2"),t=t(),i.popScopeId(),t),ID={class:"average-rr-line-container"},HD={class:"average-rr-line"},zD={key:0,class:"average-rr-line__progress"},YD=[FD(()=>i.createElementVNode("div",{class:"average-rr-line__dot"},null,-1))],WD={class:"coefficients"},jD={class:"coefficients__value -min"},ZD={class:"coefficients__value -avg"},UD={class:"coefficients__value -max"},L2=Se({__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)=>(i.openBlock(),i.createElementBlock("div",ID,[i.createElementVNode("div",HD,[t.avg&&t.max?(i.openBlock(),i.createElementBlock("div",zD,YD)):i.createCommentVNode("",!0)]),i.createElementVNode("div",WD,[i.createElementVNode("div",jD,i.toDisplayString(i.unref(Me)(t.isMask,t.min,{repeat:3})),1),i.createElementVNode("div",ZD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Et)(t.avg))),1),i.createElementVNode("div",UD,i.toDisplayString(i.unref(Me)(t.isMask,i.unref(Et)(t.max),{repeat:3})),1)])]))}},[["__scopeId","data-v-e6d713b2"]]);function V2(t){return i.getCurrentScope()?(i.onScopeDispose(t),!0):!1}function Uo(t){return typeof t=="function"?t():i.unref(t)}const N2=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const qD=Object.prototype.toString,GD=t=>qD.call(t)==="[object Object]",qo=()=>{},l1=KD();function KD(){var t,e;return N2&&((t=window==null?void 0:window.navigator)==null?void 0:t.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((e=window==null?void 0:window.navigator)==null?void 0:e.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}const B2={mounted:"mounted",updated:"updated",unmounted:"unmounted"};function XD(...t){if(t.length!==1)return i.toRef(...t);const e=t[0];return typeof e=="function"?i.readonly(i.customRef(()=>({get:e,set:qo}))):i.ref(e)}function Go(t){var e;const n=Uo(t);return(e=n==null?void 0:n.$el)!=null?e:n}const A2=N2?window:void 0;function Bl(...t){let e,n,r,s;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,r,s]=t,e=A2):[e,n,r,s]=t,!e)return qo;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],a=()=>{o.forEach(u=>u()),o.length=0},l=(u,h,f,m)=>(u.addEventListener(h,f,m),()=>u.removeEventListener(h,f,m)),c=i.watch(()=>[Go(e),Uo(s)],([u,h])=>{if(a(),!u)return;const f=GD(h)?{...h}:h;o.push(...n.flatMap(m=>r.map(g=>l(u,m,g,f))))},{immediate:!0,flush:"post"}),d=()=>{c(),a()};return V2(d),d}let R2=!1;function F2(t,e,n={}){const{window:r=A2,ignore:s=[],capture:o=!0,detectIframe:a=!1}=n;if(!r)return qo;l1&&!R2&&(R2=!0,Array.from(r.document.body.children).forEach(f=>f.addEventListener("click",qo)),r.document.documentElement.addEventListener("click",qo));let l=!0;const c=f=>s.some(m=>{if(typeof m=="string")return Array.from(r.document.querySelectorAll(m)).some(g=>g===f.target||f.composedPath().includes(g));{const g=Go(m);return g&&(f.target===g||f.composedPath().includes(g))}}),u=[Bl(r,"click",f=>{const m=Go(t);if(!(!m||m===f.target||f.composedPath().includes(m))){if(f.detail===0&&(l=!c(f)),!l){l=!0;return}e(f)}},{passive:!0,capture:o}),Bl(r,"pointerdown",f=>{const m=Go(t);l=!c(f)&&!!(m&&!f.composedPath().includes(m))},{passive:!0}),a&&Bl(r,"blur",f=>{setTimeout(()=>{var m;const g=Go(t);((m=r.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!(g!=null&&g.contains(r.document.activeElement))&&e(f)},0)})].filter(Boolean);return()=>u.forEach(f=>f())}const I2={[B2.mounted](t,e){const n=!e.modifiers.bubble;if(typeof e.value=="function")t.__onClickOutside_stop=F2(t,e.value,{capture:n});else{const[r,s]=e.value;t.__onClickOutside_stop=F2(t,r,Object.assign({capture:n},s))}},[B2.unmounted](t){t.__onClickOutside_stop()}};function c1(t){return typeof Window<"u"&&t instanceof Window?t.document.documentElement:typeof Document<"u"&&t instanceof Document?t.documentElement:t}function H2(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:H2(n)}}function JD(t){const e=t||window.event,n=e.target;return H2(n)?!1:e.touches.length>1?!0:(e.preventDefault&&e.preventDefault(),!1)}const Al=new WeakMap;function QD(t,e=!1){const n=i.ref(e);let r=null;i.watch(XD(t),a=>{const l=c1(Uo(a));if(l){const c=l;Al.get(c)||Al.set(c,c.style.overflow),n.value&&(c.style.overflow="hidden")}},{immediate:!0});const s=()=>{const a=c1(Uo(t));!a||n.value||(l1&&(r=Bl(a,"touchmove",l=>{JD(l)},{passive:!1})),a.style.overflow="hidden",n.value=!0)},o=()=>{var a;const l=c1(Uo(t));!l||!n.value||(l1&&(r==null||r()),l.style.overflow=(a=Al.get(l))!=null?a:"",Al.delete(l),n.value=!1)};return V2(o),i.computed({get(){return n.value},set(a){a?s():o()}})}function eO(){let t=!1;const e=i.ref(!1);return(n,r)=>{if(e.value=r.value,t)return;t=!0;const s=QD(n,r.value);i.watch(e,o=>s.value=o)}}eO();//! moment.js
42
42
  //! version : 2.30.1
43
43
  //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
44
44
  //! license : MIT