scope360-core 0.0.590 → 0.0.591

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.
@@ -45,7 +45,7 @@
45
45
  */const XN={datetime:"MMM d, yyyy, h:mm:ss aaaa",millisecond:"h:mm:ss.SSS aaaa",second:"h:mm:ss aaaa",minute:"h:mm aaaa",hour:"ha",day:"MMM d",week:"PP",month:"MMM yyyy",quarter:"qqq - yyyy",year:"yyyy"};j2._date.override({_id:"date-fns",formats:function(){return XN},parse:function(t,e){if(t===null||typeof t>"u")return null;const f=typeof t;return f==="number"||t instanceof Date?t=oe(t):f==="string"&&(typeof e=="string"?t=_a(t,e,new Date,this.options):t=_H(t,this.options)),d9(t)?t.getTime():null},format:function(t,e){return Bf(t,e,this.options)},add:function(t,e,f){switch(f){case"millisecond":return Qa(t,e);case"second":return Qz(t,e);case"minute":return Iz(t,e);case"hour":return iP(t,e);case"day":return lf(t,e);case"week":return Uz(t,e);case"month":return wf(t,e);case"quarter":return dP(t,e);case"year":return Ja(t,e);default:return t}},diff:function(t,e,f){switch(f){case"millisecond":return Ka(t,e);case"second":return tx(t,e);case"minute":return _z(t,e);case"hour":return Sz(t,e);case"day":return uP(t,e);case"week":return fx(t,e);case"month":return HP(t,e);case"quarter":return ex(t,e);case"year":return pP(t,e);default:return 0}},startOf:function(t,e,f){switch(e){case"second":return KH(t);case"minute":return nx(t);case"hour":return JH(t);case"day":return nv(t);case"week":return cf(t);case"isoWeek":return cf(t,{weekStartsOn:+f});case"month":return hP(t);case"quarter":return In(t);case"year":return l9(t);default:return t}},endOf:function(t,e){switch(e){case"second":return ox(t);case"minute":return sx(t);case"hour":return ax(t);case"day":return zP(t);case"week":return sv(t);case"month":return xP(t);case"quarter":return ov(t);case"year":return av(t);default:return t}}});const Zc={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},hN={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...Zc,...{ariaLabel:{type:String},ariaDescribedby:{type:String}}},yN=a.version[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function C9(t){return a.isProxy(t)?a.toRaw(t):t}function mN(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return a.isProxy(e)?new Proxy(t,{}):t}function jN(t,e){const f=t.options;f&&e&&Object.assign(f,e)}function Oc(t,e){t.labels=e}function Ac(t,e,f){const n=[];t.datasets=e.map(r=>{const s=t.datasets.find(o=>o[f]===r[f]);return!s||!r.data||n.includes(s)?{...r}:(n.push(s),Object.assign(s,r),s)})}function wN(t,e){const f={labels:[],datasets:[]};return Oc(f,t.labels),Ac(f,t.datasets,e),f}const gN=a.defineComponent({props:hN,setup(t,e){let{expose:f,slots:n}=e;const r=a.ref(null),s=a.shallowRef(null);f({chart:s});const o=()=>{if(!r.value)return;const{type:P,data:d,options:l,plugins:c,datasetIdKey:u}=t,z=wN(d,u),b=mN(z,d);s.value=new _r(r.value,{type:P,data:b,options:{...l},plugins:c})},v=()=>{const P=a.toRaw(s.value);P&&(t.destroyDelay>0?setTimeout(()=>{P.destroy(),s.value=null},t.destroyDelay):(P.destroy(),s.value=null))},i=P=>{P.update(t.updateMode)};return a.onMounted(o),a.onUnmounted(v),a.watch([()=>t.options,()=>t.data],(P,d)=>{let[l,c]=P,[u,z]=d;const b=a.toRaw(s.value);if(!b)return;let x=!1;if(l){const H=C9(l),p=C9(u);H&&H!==p&&(jN(b,H),x=!0)}if(c){const H=C9(c.labels),p=C9(z.labels),X=C9(c.datasets),m=C9(z.datasets);H!==p&&(Oc(b.config.data,H),x=!0),X&&X!==m&&(Ac(b.config.data,X,t.datasetIdKey),x=!0)}x&&a.nextTick(()=>{i(b)})},{deep:!0}),()=>a.h("canvas",{role:"img",ariaLabel:t.ariaLabel,ariaDescribedby:t.ariaDescribedby,ref:r},[a.h("p",{},[n.default?n.default():""])])}});function W1(t,e){return _r.register(e),a.defineComponent({props:Zc,setup(f,n){let{expose:r}=n;const s=a.shallowRef(null),o=v=>{s.value=v?.chart};return r({chart:s}),()=>a.h(gN,yN({ref:o},{type:t,...f}))}})}const DN=W1("bar",$D),LN=W1("doughnut",tL),Vc=W1("line",fL),q1={__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:"#489ffa"},gradient:{type:Object,default:{height:450,startColor:"rgba(0, 122, 255, 0.1)",endColor:"rgba(0, 122, 255, 0)"}}},setup(t){_r.register(A1,V1,fc,ba,M1,O1,dc);const e=t,f=a.ref(0),n=a.inject("darkMode");let r=a.reactive({isEmpty:!0});const s=c=>{const u=new Set,z=[];let b=[];switch(e.dataType){case"balanceChartData":c.length===0?b=[0,0]:b=c.map(H=>(u.add(H.date),Ye(H.balance*n9(),2)));break;case"performanceChartData":c.length===0?b=[0,0]:b=c.reduce((H,p,X)=>{u.add(p.date);const m=X?H[X-1]:0,h=Ye(m+p.pnl_to_deposit,2);return H.push(h),H},[]);break;case"shareData":c.length===0?b=[0,0]:b=c.map(H=>(u.add(H.date),Ye(H.total_net_pnl,2)));break}z.push({data:b});const x=Array.from(u);return x.length===1?(x.push(...x),z.forEach(H=>{H.data.push(...H.data)}),r.isEmpty=!1):x.length===0?(r.isEmpty=!0,x.push(0,0)):r.isEmpty=!1,{labels:x,datasets:z}},o=a.computed(()=>s(e.data)),v=c=>{const z=c.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return z.addColorStop(0,e.gradient.startColor),z.addColorStop(1,e.gradient.endColor),z},i=(c,u)=>{let z=document.querySelector(`#${c}-${e.dataType}`);return z||(z=document.createElement("div"),z.classList.add(c),z.setAttribute("id",`${c}-${e.dataType}`),u.canvas.parentNode.appendChild(z)),z},P=c=>{if(!r.isEmpty){const{chart:u,tooltip:z}=c,b=i("chart-tooltip",u);if(z.opacity===0){b.style.opacity="0";return}if(z.body){const w=z.title||[],j=z.body.map(g=>g.lines),L=document.createElement("div");for(L.classList.add("chart-tooltip-middle"),L.innerHTML=`<div class="chart-tooltip-content">
46
46
  ${e.dataType==="shareData"?`${ga(j[0])}$`:e.dataType==="balanceChartData"?`${a8()}${ze(e.isMask,ga(j[0]),{repeat:6})}`:`${ze(e.isMask,ga(j[0]),{repeat:3})}%`}
47
47
  <span> | ${e.dataType==="shareData"?r8(w[0],"HH:mm"):r8(w[0],"EEE, dd LLL, yyyy")}</span></div>`;b.firstChild;)b.firstChild.remove();b.appendChild(L)}const{offsetLeft:x,offsetTop:H,clientWidth:p}=u.canvas;let X=x+z.caretX;const m=H+z.caretY,h=b.clientWidth;X+h>p&&(X-=h),b.style.opacity="1",b.style.left=X+"px",b.style.top=m+"px"}},d=c=>{const{chart:u}=c,z=i("chart-line",u),b=u.chartArea;u.canvas.addEventListener("mousemove",function(x){const H=u.canvas.getBoundingClientRect(),p=x.clientX-H.left,X=x.clientY-H.top;p>=b.left&&p<=b.right&&X>=b.top&&X<=b.bottom?(z.style.left=p+"px",z.style.top=b.top+"px",z.style.height=b.bottom-b.top+"px",z.style.display="flex"):z.style.display="none"}),u.canvas.addEventListener("mouseout",function(){z.style.display="none"})},l=a.computed(()=>({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},scales:{x:{ticks:{display:!r.isEmpty,callback:function(c){return e.dataType==="shareData"?r8(this.getLabelForValue(c),"HH:mm"):l5(this.getLabelForValue(c)).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:n.value?"#2D2D2D":"#EDEDED"}},y:{ticks:{display:!r.isEmpty,callback:function(c){return e.ticksCallback(c,e.isMask)},color:"#8E8E93",font:{size:14,weight:400,family:"'SF Pro Display', sans-serif"},padding:15},grid:{color:n.value?"#2D2D2D":"#EDEDED",drawTicks:!1},border:{display:!1,dash:[4,4],dashOffset:1}}},plugins:{tooltip:{enabled:!1,position:"nearest",external:P},legend:!1},elements:{line:{backgroundColor:c=>v(c),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 a.watch(()=>e.isMask,()=>{f.value+=1},{immediate:!0}),(c,u)=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["chart-container",`-${t.dataType}`])},[(a.openBlock(),a.createBlock(a.unref(Vc),{key:f.value,data:o.value,options:l.value},null,8,["data","options"]))],2))}},k1={__name:"SimpleLineChart",props:{data:{type:Array,required:!0},borderColor:{type:String,default:"#439f7f"},gradient:{type:Object,default:{height:200,startColor:"rgba(86, 182, 131, 0.1)",endColor:"rgba(86, 182, 131, 0)"}}},setup(t){_r.register(A1,V1,fc,ba,dc);const e=t,f=o=>{const v=new Set,i=[],P=o.map(l=>(v.add(l.date),l.balance));return i.push({data:P}),{labels:Array.from(v),datasets:i}},n=a.computed(()=>f(e.data)),r=o=>{const i=o.chart.ctx.createLinearGradient(0,0,0,e.gradient.height);return i.addColorStop(0,e.gradient.startColor),i.addColorStop(1,e.gradient.endColor),i},s=a.ref({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{display:!1}},plugins:{tooltip:!1,legend:!1},elements:{line:{backgroundColor:o=>r(o),tension:.05,borderWidth:3,borderColor:e.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:!1}}});return(o,v)=>(a.openBlock(),a.createBlock(a.unref(Vc),{data:n.value,options:s.value},null,8,["data","options"]))}},TN={class:"import-data"},NN={class:"import-data__content"},Pf=Xe({__name:"ImportData",emits:["refresh"],setup(t,{emit:e}){const f=e;return(n,r)=>(a.openBlock(),a.createElementBlock("div",TN,[a.createElementVNode("div",NN,[a.createElementVNode("div",{onClick:r[0]||(r[0]=s=>f("refresh")),class:"import-data__refresh-btn"},[a.createVNode(a.unref(ye),{icon:"arrow-rotating"})]),r[1]||(r[1]=a.createElementVNode("div",{class:"import-data__text"},[a.createTextVNode(" Importing data from the exchange. "),a.createElementVNode("br"),a.createTextVNode(" The widget will be displayed after the page reloads ")],-1))])]))}},[["__scopeId","data-v-a1d419ad"]]),ZN={class:"account-balance-widget"},ON={class:"account-balance-widget__top"},AN={class:"account-balance-widget__title-wrapper"},VN=Xe({__name:"AccountBalanceWidget",props:{tooltip:{type:String,default:"This graphic widget displays changes to your deposit over a specific time period."},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},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 f=e;return(n,r)=>(a.openBlock(),a.createElementBlock("div",ZN,[a.createElementVNode("div",ON,[a.createElementVNode("div",AN,[r[1]||(r[1]=a.createElementVNode("div",{class:"account-balance-widget__title"},"Account Balance",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(t.tooltip),1)]),_:1})])]),a.createVNode(a.unref(q1),{data:t.balanceChartData,"data-type":"balanceChartData","ticks-callback":a.unref(s8),isMask:t.isMask},null,8,["data","ticks-callback","isMask"]),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:0,absolute:"","api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:1,onRefresh:r[0]||(r[0]=s=>f("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-a28029be"]]),MN={class:"balance-widget"},WN={class:"balance-part"},qN={class:"balance-part__top"},kN={class:"balance-part__title-wrapper"},GN={key:0,class:"balance-widget__tooltip"},RN={class:"balance-part__content"},BN={class:"balance-part__content__wrapper"},YN={key:0,class:"balance-part__content__bitcoin"},FN={key:0,class:"divider"},CN={key:1,class:"personal-target-part"},EN={class:"personal-target-part__top"},IN={class:"personal-target-part__title-wrapper"},QN={key:0,class:"balance-widget__tooltip"},UN={class:"personal-target-part__content"},JN={class:"personal-target-part__content__current"},KN={class:"personal-target-part__content__from"},SN=Xe({__name:"BalanceWidget",props:{tooltip:{type:String,default:`Displays the balance of your deposit in USD and BTC equivalent,
48
- additionally showing the growth/fall of your balance.`},showBTC:{type:Boolean,default:!0},BTC:{type:Number,default:0},USDT:{type:Number,default:0},delta:{type:Number,default:0},balanceChartData:{type:Array,default:[]},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},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 f=e,n=t,r=a.reactive({USDT:0,BTC:0,delta:0}),s=a.reactive({currentProfit:0}),o=a.ref(0),v=a.ref(!1),i=a.ref(!1),P=()=>{f("switchVisibility")},d=()=>{v.value=!0},l=()=>{v.value=!1},c=()=>{i.value=!0},u=()=>{i.value=!1},z=a.computed(()=>({currentProfit:n.currentProfit,profit:n.profit,drawdown:n.drawdown})),b=a.computed(()=>`${44+(String(Ye(n.USDT,2)).length-1)*16}px`);return a.watch(()=>n.USDT,x=>{Ln.to(r,{duration:1.5,USDT:Number(x)||0,BTC:n.BTC,delta:n.delta})},{immediate:!0}),a.watch(()=>n.delta,x=>{Ln.to(r,{delta:Number(x)||0})},{deep:!0}),a.watch(()=>z,x=>{o.value=Ln.to(s,{duration:1.5,currentProfit:n.currentProfit})},{immediate:!0,deep:!0}),(x,H)=>(a.openBlock(),a.createElementBlock("div",MN,[a.createElementVNode("div",WN,[a.createElementVNode("div",qN,[a.createElementVNode("div",kN,[H[2]||(H[2]=a.createElementVNode("div",{class:"balance-part__title"},"Balance",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(t.tooltip),1)]),_:1})]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",{key:0,class:"balance-part__visibility-switcher",onClick:P,onMouseover:d,onMouseleave:l},[a.withDirectives(a.createVNode(a.unref(ye),{icon:"eye"},null,512),[[a.vShow,t.isHidden]]),a.withDirectives(a.createVNode(a.unref(ye),{icon:"eye-slash"},null,512),[[a.vShow,!t.isHidden]]),v.value?(a.openBlock(),a.createElementBlock("div",GN," Enable or disable Private Mode for a more secure experience. ")):a.createCommentVNode("",!0)],32))]),a.createElementVNode("div",RN,[a.createElementVNode("div",BN,[a.createElementVNode("div",{class:"balance-part__content__count",style:a.normalizeStyle({minWidth:b.value})},a.toDisplayString(a.unref(ze)(t.isMaskBalance,a.unref(Ve)(r.USDT),{prefix:"$"})),5),t.delta?(a.openBlock(),a.createBlock(a.unref(_o),{key:0,class:"balance-part__content__chips","is-hidden":t.isMaskBalance,percentage:"",delta:r.delta},null,8,["is-hidden","delta"])):a.createCommentVNode("",!0)]),t.showBTC?(a.openBlock(),a.createElementBlock("div",YN," = "+a.toDisplayString(a.unref(ze)(t.isMaskBalance,r.BTC))+" BTC ",1)):a.createCommentVNode("",!0)]),t.isShare?(a.openBlock(),a.createBlock(a.unref(k1),{key:0,class:"balance-part__chart balance-part__chart--share",data:t.balanceChartData,gradient:{height:500,startColor:"rgba(86, 182, 131, 0.1)",endColor:"rgba(86, 182, 131, 0)"}},null,8,["data"])):(a.openBlock(),a.createBlock(a.unref(k1),{key:1,class:"balance-part__chart",data:t.balanceChartData},null,8,["data"]))]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",FN)),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",CN,[a.createElementVNode("div",EN,[a.createElementVNode("div",IN,[H[4]||(H[4]=a.createElementVNode("div",{class:"personal-target-part__title"}," Personal target ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>H[3]||(H[3]=[a.createTextVNode(" In this widget, set your desired balance growth target in $ or % for a specific period. It will display your PNL relative to the goal, helping you know when to stop or pay closer attention. ")])),_:1})]),a.createElementVNode("div",{class:"balance-part__modal-switcher",onClick:H[0]||(H[0]=p=>f("switchModal")),onMouseover:c,onMouseleave:u},[a.createVNode(a.unref(ye),{icon:"settings"}),i.value?(a.openBlock(),a.createElementBlock("div",QN," Click to configure goals in the Personal Target widget. ")):a.createCommentVNode("",!0)],32)]),a.createElementVNode("div",UN,[a.createElementVNode("div",JN,a.toDisplayString(a.unref(ze)(t.isMaskPersonalTarget,a.unref(Ve)(s.currentProfit,{isPercentage:t.isPercentage,isFixed:!0}),{prefix:"$",repeat:5})),1),a.createElementVNode("div",KN," / "+a.toDisplayString(a.unref(ze)(t.isMaskPersonalTarget,a.unref(Ve)(t.profit,{isPercentage:t.isPercentage,isFixed:!0}))),1)]),(a.openBlock(),a.createBlock(a.unref(m0),{key:o.value,"current-profit":t.currentProfit,"is-hidden":t.isMaskPersonalTarget,drawdown:t.drawdown,profit:t.profit,"is-percentage":t.isPercentage},null,8,["current-profit","is-hidden","drawdown","profit","is-percentage"]))])),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:2,absolute:"","api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:3,onRefresh:H[1]||(H[1]=p=>f("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-fd99a9e2"]]),_N={class:"calendar-widget"},$N={class:"calendar-widget__calendar"},eZ={class:"calendar-widget__top"},tZ={class:"calendar-widget__title-wrapper"},fZ={class:"stat-calendar"},nZ={class:"stat-calendar__week-days"},rZ={key:0,class:"stat-calendar__row-wrapper"},aZ={class:"stat-calendar__row"},sZ=["onClick"],oZ={class:"calendar-widget__day__title-wrapper"},vZ={class:"calendar-widget__day__title"},iZ={class:"calendar-widget__day__actions"},PZ={class:"calendar-widget__day__content"},dZ={class:"calendar-widget__point"},lZ={class:"calendar-widget__point__title"},cZ={class:"calendar-widget__day__trades"},uZ={class:"calendar-widget__point"},bZ={class:"calendar-widget__point__title"},zZ={__name:"CalendarWidget",props:{rows:Array,dailyStatData:Object,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isPendingDaily:{type:Boolean,default:!1},minDate:Date,currentDate:{type:Date,default:new Date},maxDate:{type:Date,default:Date()},isCurrentDate:Function,isCurrentDay:Function,hasShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["setNewDate","chooseMonth","refresh","getDetails","share"],setup(t,{emit:e}){const f=["Mo","Tu","We","Th","Fr","Sa","Su"],n=a.ref(null),r=a.ref(null),s=e,o=t,v=d=>{n.value=d.year,r.value=d.month,s("chooseMonth",d)};a.nextTick(()=>{const d=new Date;n.value=d.getFullYear(),r.value=d.getMonth()});const i=a.computed(()=>[{title:"Total trades",value:o.dailyStatData&&o.dailyStatData.trades_total_count||0},{title:"Winrate",value:Ve(o.dailyStatData&&o.dailyStatData.win_rate||0,{isPercentage:!0,isFixed:!0}),class:o.dailyStatData&&o.dailyStatData.win_rate>=50?"-win":"-loss"},{title:"Return",value:Ve(o.dailyStatData&&o.dailyStatData.return_total||0),class:o.dailyStatData&&o.dailyStatData.return_total>=0?"-win":"-loss"},{title:"Return on winners",value:Ve(o.dailyStatData&&o.dailyStatData.return_win||0)},{title:"Return on losers",value:Ve(o.dailyStatData&&o.dailyStatData.return_lose||0)},{title:"Commission",value:Ve(o.dailyStatData&&o.dailyStatData.commission||0)}]),P=a.computed(()=>[{title:"Win trades",value:o.dailyStatData&&o.dailyStatData.trades_win_count||0,isPositive:!0},{title:"Loss trades",value:-(o.dailyStatData&&o.dailyStatData.trades_lose_count)||0,isNegative:!1}]);return(d,l)=>(a.openBlock(),a.createElementBlock("div",_N,[a.createElementVNode("div",$N,[a.createElementVNode("div",eZ,[a.createElementVNode("div",tZ,[l[6]||(l[6]=a.createElementVNode("div",{class:"calendar-widget__title"},"Calendar",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>l[5]||(l[5]=[a.createTextVNode("A widget that displays the performance of your trades in a calendar format. Here you can see profitable and unprofitable days with detailed statistics for each day. ")])),_:1})]),t.currentDate&&t.minDate?(a.openBlock(),a.createBlock(a.unref(y0),{key:0,"current-date":t.currentDate||new Date,"min-date":t.minDate,"max-date":t.maxDate,onOnChange:v,year:n.value,"onUpdate:year":l[0]||(l[0]=c=>n.value=c),month:r.value,"onUpdate:month":l[1]||(l[1]=c=>r.value=c)},null,8,["current-date","min-date","max-date","year","month"])):a.createCommentVNode("",!0)]),a.createElementVNode("div",fZ,[a.createElementVNode("div",nZ,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(f,(c,u)=>a.createElementVNode("div",{class:a.normalizeClass(["stat-calendar__week-day",{"-current":t.isCurrentDay(u)}])},a.toDisplayString(c),3)),64))]),t.rows?(a.openBlock(),a.createElementBlock("div",rZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.rows,c=>(a.openBlock(),a.createElementBlock("div",aZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(c,u=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["stat-calendar__day",{"-unavailable":u.unavailable,"-empty":!u.date,"-current":t.isCurrentDate(u.date),"-positive":u.win,"-negative":u.win===!1}]),onClick:z=>s("setNewDate",u.date)},a.toDisplayString(u.date?u.date:""),11,sZ))),256))]))),256))])):a.createCommentVNode("",!0)])]),l[9]||(l[9]=a.createElementVNode("div",{class:"calendar-widget__divider"},null,-1)),t.dailyStatData&&!t.dailyStatData.isNull?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["calendar-widget__day",{"-pending":t.isPendingDaily}])},[t.isPendingDaily?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[],64)):(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createElementVNode("div",oZ,[a.createElementVNode("div",vZ,a.toDisplayString(t.currentDate.getDate()+" "+t.currentDate.toLocaleString("en-us",{month:"long"})),1),a.createElementVNode("div",iZ,[a.createVNode(ye,{icon:"preview",onClick:l[2]||(l[2]=c=>s("getDetails"))}),t.hasShare?(a.openBlock(),a.createBlock(ye,{key:0,icon:"share",onClick:l[3]||(l[3]=c=>s("share"))})):a.createCommentVNode("",!0)])]),a.createElementVNode("div",PZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(i.value,c=>(a.openBlock(),a.createElementBlock("div",dZ,[a.createElementVNode("div",lZ,a.toDisplayString(c.title),1),l[7]||(l[7]=a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["calendar-widget__point__value",c.class?c.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,c.value,{repeat:5})),3)]))),256)),a.createVNode(a.unref(zl),{isHidden:t.isMask,long:t.dailyStatData?.long_count,short:t.dailyStatData?.short_count},null,8,["isHidden","long","short"]),a.createElementVNode("div",cZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(P.value,c=>(a.openBlock(),a.createElementBlock("div",uZ,[a.createElementVNode("div",bZ,a.toDisplayString(c.title),1),l[8]||(l[8]=a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),a.createVNode(a.unref(_o),{isHidden:t.isMask,"is-positive":c.isPositive,"is-negative":c.isNegative,delta:c.value},null,8,["isHidden","is-positive","is-negative","delta"])]))),256))])])],64))],2)):(a.openBlock(),a.createBlock(a.unref(Wt),{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,class:"-empty"},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:l[4]||(l[4]=c=>s("refresh"))})):a.createCommentVNode("",!0)]))}},xZ=Xe(zZ,[["__scopeId","data-v-2963ae8e"]]),HZ={class:"commission-widget"},pZ={class:"commission-widget__content"},XZ={class:"commission-widget__top"},hZ={class:"commission-widget__title-wrapper"},yZ={class:"commission-widget__info"},mZ={class:"commission-widget__total-wrapper"},jZ={class:"commission-widget__total-wrapper__total"},wZ={class:"commission-widget__total-wrapper__value"},gZ={class:"commission-widget__points"},DZ={class:"commission-widget__point"},LZ={class:"commission-widget__point__title"},TZ=Xe({__name:"CommissionsFeesWidget",props:{commissionData:Object,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=e,n=t,r=a.reactive({commission:0}),s=a.computed(()=>n.commissionData&&n.commissionData.commission||0),o=a.computed(()=>n.commissionData&&n.commissionData.pnl||0),v=a.computed(()=>[{title:"AVG fees per trade",value:`${Ve(n.commissionData&&n.commissionData.fees_per_trade||0)}`},{title:"PNL / Commission",value:o.value&&s.value?`${Ve(o.value)}/${Ve(s.value)}`:`${Ve(0)}`},{title:"AVG fees per day",value:`${Ve(n.commissionData&&n.commissionData.fees_per_day||0)}`},{title:"Funding",value:`${Ve(n.commissionData&&n.commissionData.funding||0)}`}]);return a.watch(s,i=>{Ln.to(r,{duration:1.5,commission:i})},{immediate:!0}),(i,P)=>(a.openBlock(),a.createElementBlock("div",HZ,[a.createElementVNode("div",pZ,[a.createElementVNode("div",XZ,[a.createElementVNode("div",hZ,[P[2]||(P[2]=a.createElementVNode("div",{class:"commission-widget__title"}," Commissions and Fees ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>P[1]||(P[1]=[a.createTextVNode("This widget helps traders finally understand how much money they spent on commissions and funding. ")])),_:1})])]),a.createElementVNode("div",yZ,[a.createElementVNode("div",mZ,[P[3]||(P[3]=a.createElementVNode("div",{class:"commission-widget__total-wrapper__title"}," Total ",-1)),a.createElementVNode("div",jZ,[a.createElementVNode("div",wZ,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(r.commission),{repeat:5})),1)])]),a.createElementVNode("div",gZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(v.value,(d,l)=>(a.openBlock(),a.createElementBlock("div",DZ,[a.createElementVNode("div",LZ,a.toDisplayString(d.title),1),P[4]||(P[4]=a.createElementVNode("div",{class:"commission-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["commission-widget__point__value",d.class?d.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,d.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:P[0]||(P[0]=d=>f("refresh"))})):a.createCommentVNode("",!0),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:1,absolute:"","api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-45b0db6b"]]),NZ={class:"chart-wrapper"},ZZ=["id","onMouseover","onMouseleave"],vo={__name:"BarChart",props:{data:{type:Object,required:!0},dataType:{type:String,required:!1},borderColor:{type:String,default:"#439f7f"},ticksCallback:{type:Function,default:t=>t},yTicksCallback:{type:Function,default:t=>t},altLabels:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1}},setup(t){_r.register(A1,V1,OT,rN,O1,bc);const e=a.inject("darkMode"),f=a.ref(0);a.ref(!1);const n=a.ref(null),r=t,s=a.ref(null),o=a.ref([]),v=u=>{n.value=u},i=u=>{n.value=null},P=a.ref({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},interaction:{mode:"index",intersect:!1},elements:{line:{tension:.05,borderWidth:3,borderColor:r.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:!1}},plugins:{tooltip:{enabled:!1,position:"nearest",external:c},legend:!1},scales:{x:{grid:{display:!1},ticks:{callback:function(u){return r.ticksCallback(u,r.data.labels)}}},y:{ticks:{callback:function(u){return r.yTicksCallback(u,r.isMask)}},grid:{color:e?.value?"#2D2D2D":"#EDEDED",drawTicks:!1},border:{display:!1,dash:[4,4],dashOffset:1}}}}),d=()=>{const u=s.value?.chart;if(!u)return;const z=u.scales.x;z&&(o.value=r.data.labels.map((b,x)=>{const H=z.getPixelForTick(x),p=document.getElementById(`label-${x}`),X=p?p.clientWidth:0;return H-X/2}))};function l(u,z){let b=document.querySelector(`#${u}-${r.dataType}`);return b||(b=document.createElement("div"),b.classList.add(u),b.setAttribute("id",`${u}-${r.dataType}`),z.canvas.parentNode.appendChild(b)),b}function c(u){const{chart:z,tooltip:b}=u,x=l("chart-tooltip",z);if(b.opacity===0){x.style.opacity="0";return}if(b.body){b.title,b.body.map(L=>L.lines);const j=document.createElement("div");for(j.classList.add("chart-tooltip-middle"),j.innerHTML=`${ze(r.isMask,ga(`${b.dataPoints[0].raw>0?"":"-"}${a8()}${Math.abs(Ye(b.dataPoints[0].raw))}`),{repeat:3})}`;x.firstChild;)x.firstChild.remove();x.appendChild(j)}const{offsetLeft:H,offsetTop:p,clientWidth:X}=z.canvas;let m=H+b.caretX;const h=p+b.caretY,w=x.clientWidth;m+w>X&&(m-=w),x.style.opacity="1",x.style.left=m+"px",x.style.top=h+"px"}return a.watch(()=>r.isMask,()=>{f.value+=1},{immediate:!0}),a.watch(()=>r.data,()=>{r.altLabels&&setTimeout(()=>{d()},0)},{deep:!0}),a.onMounted(()=>{r.altLabels&&a.nextTick(()=>{d(),window.addEventListener("resize",d)})}),a.onUnmounted(()=>{r.altLabels&&window.removeEventListener("resize",d)}),(u,z)=>(a.openBlock(),a.createElementBlock("div",NZ,[(a.openBlock(),a.createBlock(a.unref(DN),{ref_key:"barChart",ref:s,class:"chart-container",key:f.value,data:t.data,options:P.value},null,8,["data","options"])),t.altLabels?(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:0},a.renderList(t.data.labels,(b,x)=>(a.openBlock(),a.createElementBlock("div",{class:"chart-wrapper__labels",id:`label-${x}`,style:a.normalizeStyle({left:`${o.value[x]}px`}),onMouseover:H=>v(x),onMouseleave:H=>i()},[a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,0)}`)},null,2),a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,1)}`)},null,2)],44,ZZ))),256)):a.createCommentVNode("",!0),n.value!==null?(a.openBlock(),a.createElementBlock("div",{key:1,class:"chart-wrapper__label-tooltip",style:a.normalizeStyle(t.data.labels.length===n.value+1?{right:"0px"}:{left:`${o.value[n.value]-25}px`})},a.toDisplayString(a.unref(r9)(r.data.labels[n.value])),5)):a.createCommentVNode("",!0)]))}},OZ={class:"instrument-widget"},AZ={class:"instrument-widget__top"},VZ={class:"instrument-widget__title-wrapper"},MZ={key:0,class:""},WZ={key:1,class:"instrument-widget__grid-wrapper"},qZ={class:"instrument-widget__grid"},kZ={class:"instrument-widget__card"},GZ={class:"instrument-widget__card__top"},RZ={class:"instrument-widget__card__pair"},BZ={class:"instrument-widget__card__pair__icons"},YZ={class:"instrument-widget__card__pair__title"},FZ={class:"instrument-widget__card__trades"},CZ=Xe({__name:"InstrumentWidget",props:{results:Object,isMask:Boolean,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=[{id:0,name:"Overall"},{id:1,name:"Long"},{id:2,name:"Short"}],n=t,r=e,s=a.ref(!1),o=a.ref({id:0,name:"Overall"}),v=a.computed(()=>n.results&&Object.values(n.results).length?P(n.results[o.value.name.toLowerCase()]):[]),i=a.computed(()=>{const c=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total*n9()),u=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total>0?"#56B683":"#F18169");return{labels:Object.keys(v.value).slice(0,10),datasets:[{data:c,backgroundColor:u,borderRadius:4}]}}),P=c=>Object.fromEntries(Object.entries(c).sort(([,u],[,z])=>z.net_pnl_total-u.net_pnl_total)),d=(c,u)=>"",l=()=>{s.value=!s.value};return(c,u)=>(a.openBlock(),a.createElementBlock("div",OZ,[a.createElementVNode("div",AZ,[a.createElementVNode("div",VZ,[u[3]||(u[3]=a.createElementVNode("div",{class:"instrument-widget__title"}," Results by Instrument ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>u[2]||(u[2]=[a.createTextVNode("Check your performance across different trading instruments. Use the Overall, Long, or Short filters to view detailed results. ")])),_:1})]),s.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"instrument-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:l})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"instrument-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:l}))]),a.createElementVNode("div",{class:a.normalizeClass(["instrument-widget__content",{"-chart-active":s.value}])},[a.createVNode(a.unref(Ev),{class:"instrument-widget__switcher",modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=z=>o.value=z),options:f},null,8,["modelValue"]),v.value&&Object.values(v.value).length?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[s.value?(a.openBlock(),a.createElementBlock("div",MZ,[a.createVNode(vo,{class:"instrument-widget__bar",data:i.value,ticksCallback:d,"y-ticks-callback":a.unref(s8),"is-mask":t.isMask,"data-type":"instrument","alt-labels":""},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("div",WZ,[a.createElementVNode("div",qZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(v.value,(z,b,x)=>(a.openBlock(),a.createElementBlock("div",kZ,[a.createElementVNode("div",GZ,[a.createElementVNode("div",RZ,[a.createElementVNode("div",BZ,[a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,0)}`)},null,2),a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,1)}`)},null,2)]),a.createElementVNode("div",YZ,a.toDisplayString(a.unref(r9)(b)),1)]),a.createElementVNode("div",FZ,a.toDisplayString(a.unref(ze)(t.isMask,z.trades_count,{repeat:3})),1)]),a.createElementVNode("div",{class:a.normalizeClass(["instrument-widget__card__net-pnl",{"-positive":z.net_pnl_total>0,"-negative":z.net_pnl_total<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(z.net_pnl_total,{isFixed:!0,isPlus:!0}),{repeat:3})),3)]))),256))])]))],64)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"]))],2),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:u[1]||(u[1]=z=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-f0fa7466"]]),EZ={class:"size-widget"},IZ={class:"size-widget__top"},QZ={class:"size-widget__title-wrapper"},UZ={key:0},JZ={key:1,class:"size-widget__grid"},KZ={class:"size-widget__card"},SZ={class:"size-widget__card__top"},_Z={class:"size-widget__card__title"},$Z={class:"size-widget__card__trades"},eO={class:"size-widget__card__bottom"},tO=Xe({__name:"SizeWidget",props:{results:Object,isMask:Boolean,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=t,n=e,r=a.ref(!1),s=a.computed(()=>{const i=f.results.slice(0,10).map(l=>l.net_pnl*n9()),P=f.results.slice(0,10).map(l=>l.net_pnl>0?"#56B683":"#F18169");return{labels:f.results.slice(0,10).map(l=>l.amount),datasets:[{data:i,backgroundColor:P,borderRadius:4}]}}),o=(i,P)=>P[i],v=()=>{r.value=!r.value};return(i,P)=>(a.openBlock(),a.createElementBlock("div",EZ,[a.createElementVNode("div",IZ,[a.createElementVNode("div",QZ,[P[2]||(P[2]=a.createElementVNode("div",{class:"size-widget__title"},"Result by position size",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>P[1]||(P[1]=[a.createTextVNode("Compare your profits or losses based on the size of your positions. Understand how position size influences your trading outcomes. ")])),_:1})]),r.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"size-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:v})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"size-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:v}))]),t.results&&t.results.length?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["size-widget__content",{"-chart-active":r.value}])},[r.value?(a.openBlock(),a.createElementBlock("div",UZ,[a.createVNode(vo,{class:"size-widget__bar",data:s.value,"ticks-callback":o,"y-ticks-callback":a.unref(s8),"is-mask":t.isMask,"data-type":"size"},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("div",JZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.results,d=>(a.openBlock(),a.createElementBlock("div",KZ,[a.createElementVNode("div",SZ,[a.createElementVNode("div",_Z,a.toDisplayString(d.amount)+" lots ",1),a.createElementVNode("div",$Z,a.toDisplayString(a.unref(ze)(t.isMask,d.total_count,{repeat:3}))+" trades ",1)]),a.createElementVNode("div",eO,[a.createElementVNode("div",{class:a.normalizeClass(["size-widget__card__net-pnl",{"-positive":d.net_pnl>0,"-negative":d.net_pnl<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(d.net_pnl,{isPlus:!0,isFixed:!0}),{repeat:3})),3)])]))),256))]))],2)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:P[0]||(P[0]=d=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-8568c6bc"]]),fO={class:"performance-widget"},nO={class:"performance-widget__top"},rO={class:"performance-widget__title-wrapper"},aO=Xe({__name:"PerformanceWidget",props:{apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},performanceChartData:{type:Array,default:[]},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){a.ref("week");const f=t,n=e,r=s=>ze(f.isMask,Ye(s,2)+"%",{repeat:3});return(s,o)=>(a.openBlock(),a.createElementBlock("div",fO,[a.createElementVNode("div",nO,[a.createElementVNode("div",rO,[o[2]||(o[2]=a.createElementVNode("div",{class:"performance-widget__title"}," Performance (cumulative) ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>o[1]||(o[1]=[a.createTextVNode("The linear graphics widget displays the profit as a percentage of the deposit. ")])),_:1})])]),a.createVNode(a.unref(q1),{data:t.performanceChartData,"data-type":"performanceChartData","ticks-callback":r,isMask:t.isMask},null,8,["data","isMask"]),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:0,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:1,onRefresh:o[0]||(o[0]=v=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-ce06f1df"]]),sO={class:"return-widget"},oO={class:"return-widget__content"},vO={class:"return-widget__top"},iO={class:"return-widget__title-wrapper"},PO={class:"return-widget__info"},dO={class:"return-widget__total-wrapper"},lO={class:"return-widget__total-wrapper__total"},cO={class:"return-widget__points"},uO={class:"return-widget__point"},bO={class:"return-widget__point__title"},zO=["innerHTML"],xO=Xe({__name:"ReturnWidget",props:{apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},totalReturn:{type:Number,default:0},win:{type:Number,default:0},lose:{type:Number,default:0},returnPeriod:{type:Number,default:0},profitFactor:{type:Number,default:0},daily:{type:Number,default:0},changeRate:{type:Number,default:0},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=e,n=t,r=a.computed(()=>`${44+(String(Ye(n.returnPeriod,2)).length-1)*16}px`),s=a.reactive({returnPeriod:0,changeRate:0}),o=a.computed(()=>[{title:"Average return per trade",value:n.totalReturn,options:{isPlus:!0,isFixed:!0},class:n.totalReturn===0?"":n.totalReturn>0?"-win":"-loss"},{title:"Daily return",value:n.daily,options:{isPlus:!0,isFixed:!0},class:n.daily===0?"":n.daily>0?"-win":"-loss"},{title:"Return on winners",value:n.win,class:"-win"},{title:"Return on losers",value:n.lose,class:"-loss"}]),v=a.computed(()=>n.returnPeriod>0),i=a.computed(()=>n.returnPeriod<0),P=a.computed(()=>n.profitFactor>1?"-positive":"-negative"),d=a.computed(()=>n.profitFactor>0?`Your profit factor is ${ze(n.isMask,Ye(n.profitFactor),{repeat:5})}. <br /> You earn ${ze(n.isMask,Ve(n.profitFactor),{repeat:5,prefix:"$"})} on every ${ze(n.isMask,"$1",{repeat:5,prefix:"$"})} loss.`:`Your profit factor is ${ze(n.isMask,Ye(n.profitFactor),{repeat:5})}. <br/> You loss ${ze(n.isMask,Ve(Math.abs(n.profitFactor)),{repeat:5,prefix:"$"})} on every ${ze(n.isMask,"$1",{repeat:5,prefix:"$"})} earn. `);return a.watch(()=>n.returnPeriod,l=>{Ln.to(s,{duration:1.5,returnPeriod:l,changeRate:n.changeRate})},{immediate:!0}),(l,c)=>(a.openBlock(),a.createElementBlock("div",sO,[a.createElementVNode("div",oO,[a.createElementVNode("div",vO,[a.createElementVNode("div",iO,[c[2]||(c[2]=a.createElementVNode("div",{class:"return-widget__title"},"Return",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>c[1]||(c[1]=[a.createTextVNode("This widget displays an increase in NET profit in dollars and percentage relative to the deposit for the specified period you have chosen. ")])),_:1})])]),a.createElementVNode("div",PO,[a.createElementVNode("div",dO,[c[3]||(c[3]=a.createElementVNode("div",{class:"return-widget__total-wrapper__title"},"Total",-1)),a.createElementVNode("div",lO,[a.createElementVNode("div",{class:a.normalizeClass(["return-widget__total-wrapper__value",{"-positive":v.value,"-negative":i.value}]),style:a.normalizeStyle({minWidth:r.value})},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(s.returnPeriod,{isPlus:!0,isFixed:!0}),{repeat:5})),7),n.changeRate?(a.openBlock(),a.createBlock(a.unref(_o),{key:0,percentage:"",class:"return-widget__total-wrapper__chips",isHidden:t.isMask,delta:s.changeRate},null,8,["isHidden","delta"])):a.createCommentVNode("",!0)])]),a.createElementVNode("div",cO,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(o.value,u=>(a.openBlock(),a.createElementBlock("div",uO,[a.createElementVNode("div",bO,a.toDisplayString(u.title),1),c[4]||(c[4]=a.createElementVNode("div",{class:"return-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["return-widget__point__value",u.class?u.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(u.value,u.options),{repeat:5,prefix:"$"})),3)]))),256))])])]),t.profitFactor?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["return-widget__profit",P.value])},[a.createVNode(a.unref(ye),{icon:"tip",class:"return-widget__profit__icon"}),a.createElementVNode("div",{class:"return-widget__profit__text",innerHTML:d.value},null,8,zO)],2)):a.createCommentVNode("",!0),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:c[0]||(c[0]=u=>f("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-6389200a"]]),HO={class:"top-positions-widget"},pO={class:"top-positions-widget__top"},XO={class:"top-positions-widget__title-wrapper"},hO={key:0,class:"top-positions-widget__returns"},yO=["onClick"],mO={class:"top-positions-widget__return__left"},jO={class:"top-positions-widget__return__pair"},wO={class:"top-positions-widget__return__right"},gO={class:"top-positions-widget__return__pnl"},DO=Xe({__name:"TopPositionsWidget",props:{topPositions:{type:Array,default:[]},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh","onPairClick"],setup(t,{emit:e}){a.ref("week");const f=e;return(n,r)=>(a.openBlock(),a.createElementBlock("div",HO,[a.createElementVNode("div",pO,[a.createElementVNode("div",XO,[r[2]||(r[2]=a.createElementVNode("div",{class:"top-positions-widget__title"},"Top Positions",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>r[1]||(r[1]=[a.createTextVNode("Helps you find the top profitable positions. We calculate only net PNL, taking into account commission and funding. ")])),_:1})])]),t.topPositions&&t.topPositions.length?(a.openBlock(),a.createElementBlock("div",hO,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.topPositions,s=>(a.openBlock(),a.createElementBlock("div",{class:"top-positions-widget__return",onClick:o=>f("onPairClick",s)},[a.createElementVNode("div",mO,[r[3]||(r[3]=a.createElementVNode("div",{class:"top-positions-widget__return__line"},null,-1)),a.createElementVNode("div",jO,[a.createTextVNode(a.toDisplayString(a.unref(r9)(s.pair))+" ",1),a.createVNode(a.unref(ye),{icon:"chevron-right-small"})])]),a.createElementVNode("div",wO,[a.createElementVNode("div",gO,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(s.pnl,{isFixed:!0,isPlus:!0},{repeat:5}))),1),a.createElementVNode("div",{class:a.normalizeClass(["top-positions-widget__return__roi",s.roi<0?"-negative":"-positive"])},[a.createVNode(a.unref(ye),{icon:"bxs_up-arrow"}),a.createElementVNode("span",null,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(s.roi,{isPercentage:!0,isFixed:!0},{repeat:2}))),1)],2)])],8,yO))),256))])):(a.openBlock(),a.createBlock(a.unref(Wt),{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,title:"No more pair",subtitle:"No data available for the specified period",icon:"coins-add"},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:r[0]||(r[0]=s=>f("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-db63a92f"]]),LO={class:"trade-widget"},TO={class:"trade-widget__content"},NO={class:"trade-widget__top"},ZO={class:"trade-widget__title-wrapper"},OO={class:"trade-widget__info"},AO={class:"trade-widget__total-wrapper"},VO={class:"trade-widget__total-wrapper__total"},MO={class:"trade-widget__total-wrapper__value"},WO={class:"trade-widget__points"},qO={class:"trade-widget__point"},kO={class:"trade-widget__point__title"},GO=Xe({__name:"TradePerformanceWidget",props:{totalTrades:Number,minDate:Date,tradePoints:Array,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=a.reactive({totalTrades:0}),n=e,r=t;return a.watch(()=>r.totalTrades,s=>{Ln.to(f,{duration:1.5,totalTrades:s})},{immediate:!0}),(s,o)=>(a.openBlock(),a.createElementBlock("div",LO,[a.createElementVNode("div",TO,[a.createElementVNode("div",NO,[a.createElementVNode("div",ZO,[o[2]||(o[2]=a.createElementVNode("div",{class:"trade-widget__title"},"Trades Performance",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>o[1]||(o[1]=[a.createTextVNode("It displays the number of profitable and unprofitable positions. This widget is very useful for understanding your trading opportunities. ")])),_:1})])]),a.createElementVNode("div",OO,[a.createElementVNode("div",AO,[o[3]||(o[3]=a.createElementVNode("div",{class:"trade-widget__total-wrapper__title"},"Total",-1)),a.createElementVNode("div",VO,[a.createElementVNode("div",MO,a.toDisplayString(a.unref(ze)(t.isMask,Math.floor(f.totalTrades),{repeat:5})),1)])]),a.createElementVNode("div",WO,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.tradePoints,v=>(a.openBlock(),a.createElementBlock("div",qO,[a.createElementVNode("div",kO,a.toDisplayString(v.title),1),o[4]||(o[4]=a.createElementVNode("div",{class:"trade-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["trade-widget__point__value",v.class?v.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,v.value,{repeat:5})),3)]))),256))])])]),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:0,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:1,onRefresh:o[0]||(o[0]=v=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-a51215ad"]]),RO={class:"winrate-widget"},BO={class:"winrate-widget__winrate"},YO={class:"winrate-widget__title-wrapper"},FO={class:"winrate-widget__chart"},CO={class:"winrate-widget__data"},EO={class:"winrate-widget__data_value"},IO={class:"winrate-widget__average-rr"},QO={class:"winrate-widget__title-wrapper"},UO=Xe({__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},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=e;return(n,r)=>(a.openBlock(),a.createElementBlock("div",RO,[a.createElementVNode("div",BO,[a.createElementVNode("div",YO,[r[2]||(r[2]=a.createElementVNode("div",{class:"winrate-widget__title"},"Winrate",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>r[1]||(r[1]=[a.createTextVNode("Displays the percentage of your successful positions. ")])),_:1})]),a.createElementVNode("div",FO,[a.renderSlot(n.$slots,"roundSlider",{},void 0,!0),a.createElementVNode("div",CO,[a.createElementVNode("div",EO,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ye)(t.winrate,2)))+"% ",1),r[3]||(r[3]=a.createElementVNode("div",{class:"winrate-widget__data_title"},"Winrate",-1))])])]),a.createElementVNode("div",IO,[a.createElementVNode("div",QO,[r[5]||(r[5]=a.createElementVNode("div",{class:"winrate-widget__title"},"Average RR",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>r[4]||(r[4]=[a.createTextVNode("Risk Reward, defines the ratio of potential profit to loss you can get. ")])),_:1})]),a.createVNode(a.unref(x5),{avg:t.averageRR,min:t.minRR,max:t.maxRR,isMask:t.isMask},null,8,["avg","min","max","isMask"])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:r[0]||(r[0]=s=>f("refresh"))})):a.createCommentVNode("",!0),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-9a6939cb"]]),JO={class:"oh-widget"},KO={class:"oh-widget__top"},SO={class:"oh-widget__title-wrapper"},_O={key:0},$O={key:1,class:"oh-widget__table-wrapper"},eA={class:"oh-widget__list"},tA={class:"oh-widget__list__body"},fA={class:"oh-widget__list__point"},nA={class:"oh-widget__list__subpoint"},rA={class:"oh-widget__list__subpoint"},aA=Xe({__name:"OpenHourWidget",props:{results:Object,isMask:Boolean,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=[{id:0,name:"Asia",key:"asia_session"},{id:1,name:"London",key:"london_session"},{id:2,name:"NY",key:"new_york_session"}],n=t,r=e,s=a.ref(!1),o=a.ref({id:0,name:"Asia",key:"asia_session"}),v=a.computed(()=>n.results?n.results[o.value.key]:{}),i=a.computed(()=>{const c=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total*n9()),u=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total>0?"#56B683":"#F18169");return{labels:Object.keys(v.value).slice(0,10).map(z=>P(z)),datasets:[{data:c,backgroundColor:u,borderRadius:4}]}}),P=c=>{const[u,z]=c.split(":").map(Number),x=`${u}:59`;return`${c} - ${x}`},d=()=>{s.value=!s.value},l=(c,u)=>u[c];return(c,u)=>(a.openBlock(),a.createElementBlock("div",JO,[a.createElementVNode("div",KO,[a.createElementVNode("div",SO,[u[3]||(u[3]=a.createElementVNode("div",{class:"oh-widget__title"},"Result by Open Hour",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>u[2]||(u[2]=[a.createTextVNode("Analyze your trading performance based on the hour of the day and trading session. Switch between different time zones to track results by market. ")])),_:1})]),s.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"oh-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:d})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"oh-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:d}))]),a.createElementVNode("div",{class:a.normalizeClass(["oh-widget__content",{"-chart-active":s.value}])},[a.createVNode(a.unref(Ev),{class:"oh-widget__switcher",modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=z=>o.value=z),options:f},null,8,["modelValue"]),v.value&&Object.values(v.value).length?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[s.value?(a.openBlock(),a.createElementBlock("div",_O,[a.createVNode(vo,{class:"oh-widget__bar",data:i.value,"ticks-callback":l,"y-ticks-callback":a.unref(s8),"is-mask":t.isMask,"data-type":"oh"},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("div",$O,[a.createElementVNode("table",eA,[u[4]||(u[4]=a.createElementVNode("thead",{class:"oh-widget__list__header"},[a.createElementVNode("th",null,"Time"),a.createElementVNode("th",null,"Trades"),a.createElementVNode("th",null,"Result")],-1)),a.createElementVNode("tbody",tA,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(v.value,(z,b,x)=>(a.openBlock(),a.createElementBlock("tr",fA,[a.createElementVNode("td",nA,a.toDisplayString(P(b)),1),a.createElementVNode("td",rA,a.toDisplayString(a.unref(ze)(t.isMask,z.trades_count,{repeat:3})),1),a.createElementVNode("td",{class:a.normalizeClass(["oh-widget__list__subpoint",{"-positive":z.net_pnl_total>0,"-negative":z.net_pnl_total<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(z.net_pnl_total,{isPlus:!0,isFixed:!0}),{repeat:3})),3)]))),256))])])]))],64)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"]))],2),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:u[1]||(u[1]=z=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-0cb70abf"]]),sA={class:"duration-widget"},oA={class:"duration-widget__top"},vA={class:"duration-widget__title-wrapper"},iA={key:0},PA={key:1,class:"duration-widget__list"},dA={class:"duration-widget__list__body"},lA={class:"duration-widget__list__point"},cA={class:"duration-widget__list__subpoint"},uA={class:"duration-widget__list__subpoint"},bA=Xe({__name:"DurationWidget",props:{results:Object,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isMask:Boolean,requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=t,n=e,r=a.ref(!1),s=a.computed(()=>{const P=Object.values(f.results).slice(0,10).map(l=>l.net_pnl_total*n9()),d=Object.values(f.results).slice(0,10).map(l=>l.net_pnl_total>0?"#56B683":"#F18169");return{labels:Object.keys(f.results).slice(0,10).map(l=>o(Number(l))),datasets:[{data:P,backgroundColor:d,borderRadius:4}]}});function o(P){const d=[{min:0,max:30,label:"0-30m"},{min:30,max:60,label:"30m - 1h"},{min:60,max:240,label:"1-4h"},{min:240,max:480,label:"4-12h"},{min:480,max:1440,label:"12-24h"},{min:1440,max:4320,label:"1-3d"},{min:4320,max:10080,label:"3-7d"},{min:10080,max:1/0,label:"7d+"}];for(const l of d)if(P>=l.min&&P<l.max)return l.label;return"Invalid input"}const v=()=>{r.value=!r.value},i=(P,d)=>d[P];return(P,d)=>(a.openBlock(),a.createElementBlock("div",sA,[a.createElementVNode("div",oA,[a.createElementVNode("div",vA,[d[2]||(d[2]=a.createElementVNode("div",{class:"duration-widget__title"}," Result by time duration ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>d[1]||(d[1]=[a.createTextVNode("See how your trades perform based on their duration. Filter by time intervals to identify patterns in short or long-term trades. ")])),_:1})]),r.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"duration-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:v})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"duration-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:v}))]),t.results&&Object.values(t.results).length?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["duration-widget__content",{"-chart-active":r.value}])},[r.value?(a.openBlock(),a.createElementBlock("div",iA,[a.createVNode(vo,{class:"duration-widget__bar",data:s.value,"ticks-callback":i,"y-ticks-callback":a.unref(s8),"data-type":"duration","is-mask":t.isMask},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("table",PA,[d[3]||(d[3]=a.createElementVNode("thead",{class:"duration-widget__list__header"},[a.createElementVNode("th",null,"Time"),a.createElementVNode("th",null,"Trades"),a.createElementVNode("th",null,"Result")],-1)),a.createElementVNode("tbody",dA,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.results,(l,c,u)=>(a.openBlock(),a.createElementBlock("tr",lA,[a.createElementVNode("td",cA,a.toDisplayString(o(Number(c))),1),a.createElementVNode("td",uA,a.toDisplayString(a.unref(ze)(t.isMask,l.trades_count,{repeat:3})),1),a.createElementVNode("td",{class:a.normalizeClass(["duration-widget__list__subpoint",{"-positive":l.net_pnl_total>0,"-negative":l.net_pnl_total<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(l.net_pnl_total,{isPlus:!0,isFixed:!0}),{repeat:3})),3)]))),256))])]))],2)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:d[0]||(d[0]=l=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-edb6cef6"]]);class $r extends Error{}class zA extends $r{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class xA extends $r{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class HA extends $r{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class E9 extends $r{}class Mc extends $r{constructor(e){super(`Invalid unit ${e}`)}}class Ct extends $r{}class cr extends $r{constructor(){super("Zone is an abstract class")}}const ie="numeric",If="short",hf="long",io={year:ie,month:ie,day:ie},Wc={year:ie,month:If,day:ie},pA={year:ie,month:If,day:ie,weekday:If},qc={year:ie,month:hf,day:ie},kc={year:ie,month:hf,day:ie,weekday:hf},Gc={hour:ie,minute:ie},Rc={hour:ie,minute:ie,second:ie},Bc={hour:ie,minute:ie,second:ie,timeZoneName:If},Yc={hour:ie,minute:ie,second:ie,timeZoneName:hf},Fc={hour:ie,minute:ie,hourCycle:"h23"},Cc={hour:ie,minute:ie,second:ie,hourCycle:"h23"},Ec={hour:ie,minute:ie,second:ie,hourCycle:"h23",timeZoneName:If},Ic={hour:ie,minute:ie,second:ie,hourCycle:"h23",timeZoneName:hf},Qc={year:ie,month:ie,day:ie,hour:ie,minute:ie},Uc={year:ie,month:ie,day:ie,hour:ie,minute:ie,second:ie},Jc={year:ie,month:If,day:ie,hour:ie,minute:ie},Kc={year:ie,month:If,day:ie,hour:ie,minute:ie,second:ie},XA={year:ie,month:If,day:ie,weekday:If,hour:ie,minute:ie},Sc={year:ie,month:hf,day:ie,hour:ie,minute:ie,timeZoneName:If},_c={year:ie,month:hf,day:ie,hour:ie,minute:ie,second:ie,timeZoneName:If},$c={year:ie,month:hf,day:ie,weekday:hf,hour:ie,minute:ie,timeZoneName:hf},e6={year:ie,month:hf,day:ie,weekday:hf,hour:ie,minute:ie,second:ie,timeZoneName:hf};class xa{get type(){throw new cr}get name(){throw new cr}get ianaName(){return this.name}get isUniversal(){throw new cr}offsetName(e,f){throw new cr}formatOffset(e,f){throw new cr}offset(e){throw new cr}equals(e){throw new cr}get isValid(){throw new cr}}let G1=null;class Po extends xa{static get instance(){return G1===null&&(G1=new Po),G1}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:f,locale:n}){return w6(e,f,n)}formatOffset(e,f){return ha(this.offset(e),f)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}let lo={};function hA(t){return lo[t]||(lo[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),lo[t]}const yA={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function mA(t,e){const f=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(f),[,r,s,o,v,i,P,d]=n;return[o,r,s,v,i,P,d]}function jA(t,e){const f=t.formatToParts(e),n=[];for(let r=0;r<f.length;r++){const{type:s,value:o}=f[r],v=yA[s];s==="era"?n[v]=o:he(v)||(n[v]=parseInt(o,10))}return n}let co={};class Wn extends xa{static create(e){return co[e]||(co[e]=new Wn(e)),co[e]}static resetCache(){co={},lo={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=Wn.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:f,locale:n}){return w6(e,f,n,this.name)}formatOffset(e,f){return ha(this.offset(e),f)}offset(e){const f=new Date(e);if(isNaN(f))return NaN;const n=hA(this.name);let[r,s,o,v,i,P,d]=n.formatToParts?jA(n,f):mA(n,f);v==="BC"&&(r=-Math.abs(r)+1);const c=Ho({year:r,month:s,day:o,hour:i===24?0:i,minute:P,second:d,millisecond:0});let u=+f;const z=u%1e3;return u-=z>=0?z:1e3+z,(c-u)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let t6={};function wA(t,e={}){const f=JSON.stringify([t,e]);let n=t6[f];return n||(n=new Intl.ListFormat(t,e),t6[f]=n),n}let R1={};function B1(t,e={}){const f=JSON.stringify([t,e]);let n=R1[f];return n||(n=new Intl.DateTimeFormat(t,e),R1[f]=n),n}let Y1={};function gA(t,e={}){const f=JSON.stringify([t,e]);let n=Y1[f];return n||(n=new Intl.NumberFormat(t,e),Y1[f]=n),n}let F1={};function DA(t,e={}){const{base:f,...n}=e,r=JSON.stringify([t,n]);let s=F1[r];return s||(s=new Intl.RelativeTimeFormat(t,e),F1[r]=s),s}let Ha=null;function LA(){return Ha||(Ha=new Intl.DateTimeFormat().resolvedOptions().locale,Ha)}let f6={};function TA(t){let e=f6[t];if(!e){const f=new Intl.Locale(t);e="getWeekInfo"in f?f.getWeekInfo():f.weekInfo,f6[t]=e}return e}function NA(t){const e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));const f=t.indexOf("-u-");if(f===-1)return[t];{let n,r;try{n=B1(t).resolvedOptions(),r=t}catch{const i=t.substring(0,f);n=B1(i).resolvedOptions(),r=i}const{numberingSystem:s,calendar:o}=n;return[r,s,o]}}function ZA(t,e,f){return(f||e)&&(t.includes("-u-")||(t+="-u"),f&&(t+=`-ca-${f}`),e&&(t+=`-nu-${e}`)),t}function OA(t){const e=[];for(let f=1;f<=12;f++){const n=He.utc(2009,f,1);e.push(t(n))}return e}function AA(t){const e=[];for(let f=1;f<=7;f++){const n=He.utc(2016,11,13+f);e.push(t(n))}return e}function uo(t,e,f,n){const r=t.listingMode();return r==="error"?null:r==="en"?f(e):n(e)}function VA(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}class MA{constructor(e,f,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:r,floor:s,...o}=n;if(!f||Object.keys(o).length>0){const v={useGrouping:!1,...n};n.padTo>0&&(v.minimumIntegerDigits=n.padTo),this.inf=gA(e,v)}}format(e){if(this.inf){const f=this.floor?Math.floor(e):e;return this.inf.format(f)}else{const f=this.floor?Math.floor(e):S1(e,3);return jt(f,this.padTo)}}}class WA{constructor(e,f,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const o=-1*(e.offset/60),v=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&Wn.create(v).valid?(r=v,this.dt=e):(r="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,r=e.zone.name):(r="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const s={...this.opts};s.timeZone=s.timeZone||r,this.dtf=B1(f,s)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(f=>{if(f.type==="timeZoneName"){const n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...f,value:n}}else return f}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class qA{constructor(e,f,n){this.opts={style:"long",...n},!f&&h6()&&(this.rtf=DA(e,n))}format(e,f){return this.rtf?this.rtf.format(e,f):sV(f,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,f){return this.rtf?this.rtf.formatToParts(e,f):[]}}const kA={firstDay:1,minimalDays:4,weekend:[6,7]};let Se=class Ia{static fromOpts(e){return Ia.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,f,n,r,s=!1){const o=e||dt.defaultLocale,v=o||(s?"en-US":LA()),i=f||dt.defaultNumberingSystem,P=n||dt.defaultOutputCalendar,d=J1(r)||dt.defaultWeekSettings;return new Ia(v,i,P,d,o)}static resetCache(){Ha=null,R1={},Y1={},F1={}}static fromObject({locale:e,numberingSystem:f,outputCalendar:n,weekSettings:r}={}){return Ia.create(e,f,n,r)}constructor(e,f,n,r,s){const[o,v,i]=NA(e);this.locale=o,this.numberingSystem=f||v||null,this.outputCalendar=n||i||null,this.weekSettings=r,this.intl=ZA(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=VA(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),f=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&f?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:Ia.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,J1(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,f=!1){return uo(this,e,L6,()=>{const n=f?{month:e,day:"numeric"}:{month:e},r=f?"format":"standalone";return this.monthsCache[r][e]||(this.monthsCache[r][e]=OA(s=>this.extract(s,n,"month"))),this.monthsCache[r][e]})}weekdays(e,f=!1){return uo(this,e,Z6,()=>{const n=f?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},r=f?"format":"standalone";return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=AA(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[r][e]})}meridiems(){return uo(this,void 0,()=>O6,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[He.utc(2016,11,13,9),He.utc(2016,11,13,19)].map(f=>this.extract(f,e,"dayperiod"))}return this.meridiemCache})}eras(e){return uo(this,e,A6,()=>{const f={era:e};return this.eraCache[e]||(this.eraCache[e]=[He.utc(-40,1,1),He.utc(2017,1,1)].map(n=>this.extract(n,f,"era"))),this.eraCache[e]})}extract(e,f,n){const r=this.dtFormatter(e,f),s=r.formatToParts(),o=s.find(v=>v.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new MA(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,f={}){return new WA(e,this.intl,f)}relFormatter(e={}){return new qA(this.intl,this.isEnglish(),e)}listFormatter(e={}){return wA(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:y6()?TA(this.locale):kA}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},C1=null;class _t extends xa{static get utcInstance(){return C1===null&&(C1=new _t(0)),C1}static instance(e){return e===0?_t.utcInstance:new _t(e)}static parseSpecifier(e){if(e){const f=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(f)return new _t(po(f[1],f[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ha(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ha(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,f){return ha(this.fixed,f)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class GA extends xa{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function ur(t,e){if(he(t)||t===null)return e;if(t instanceof xa)return t;if(EA(t)){const f=t.toLowerCase();return f==="default"?e:f==="local"||f==="system"?Po.instance:f==="utc"||f==="gmt"?_t.utcInstance:_t.parseSpecifier(f)||Wn.create(t)}else return br(t)?_t.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new GA(t)}const E1={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},n6={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},RA=E1.hanidec.replace(/[\[|\]]/g,"").split("");function BA(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let f=0;f<t.length;f++){const n=t.charCodeAt(f);if(t[f].search(E1.hanidec)!==-1)e+=RA.indexOf(t[f]);else for(const r in n6){const[s,o]=n6[r];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}let I9={};function YA(){I9={}}function Qf({numberingSystem:t},e=""){const f=t||"latn";return I9[f]||(I9[f]={}),I9[f][e]||(I9[f][e]=new RegExp(`${E1[f]}${e}`)),I9[f][e]}let r6=()=>Date.now(),a6="system",s6=null,o6=null,v6=null,i6=60,P6,d6=null;class dt{static get now(){return r6}static set now(e){r6=e}static set defaultZone(e){a6=e}static get defaultZone(){return ur(a6,Po.instance)}static get defaultLocale(){return s6}static set defaultLocale(e){s6=e}static get defaultNumberingSystem(){return o6}static set defaultNumberingSystem(e){o6=e}static get defaultOutputCalendar(){return v6}static set defaultOutputCalendar(e){v6=e}static get defaultWeekSettings(){return d6}static set defaultWeekSettings(e){d6=J1(e)}static get twoDigitCutoffYear(){return i6}static set twoDigitCutoffYear(e){i6=e%100}static get throwOnInvalid(){return P6}static set throwOnInvalid(e){P6=e}static resetCaches(){Se.resetCache(),Wn.resetCache(),He.resetCache(),YA()}}class Uf{constructor(e,f){this.reason=e,this.explanation=f}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const l6=[0,31,59,90,120,151,181,212,243,273,304,334],c6=[0,31,60,91,121,152,182,213,244,274,305,335];function Af(t,e){return new Uf("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function I1(t,e,f){const n=new Date(Date.UTC(t,e-1,f));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);const r=n.getUTCDay();return r===0?7:r}function u6(t,e,f){return f+(pa(t)?c6:l6)[e-1]}function b6(t,e){const f=pa(t)?c6:l6,n=f.findIndex(s=>s<e),r=e-f[n];return{month:n+1,day:r}}function Q1(t,e){return(t-e+7)%7+1}function bo(t,e=4,f=1){const{year:n,month:r,day:s}=t,o=u6(n,r,s),v=Q1(I1(n,r,s),f);let i=Math.floor((o-v+14-e)/7),P;return i<1?(P=n-1,i=Xa(P,e,f)):i>Xa(n,e,f)?(P=n+1,i=1):P=n,{weekYear:P,weekNumber:i,weekday:v,...ho(t)}}function z6(t,e=4,f=1){const{weekYear:n,weekNumber:r,weekday:s}=t,o=Q1(I1(n,1,e),f),v=U9(n);let i=r*7+s-o-7+e,P;i<1?(P=n-1,i+=U9(P)):i>v?(P=n+1,i-=U9(n)):P=n;const{month:d,day:l}=b6(P,i);return{year:P,month:d,day:l,...ho(t)}}function U1(t){const{year:e,month:f,day:n}=t,r=u6(e,f,n);return{year:e,ordinal:r,...ho(t)}}function x6(t){const{year:e,ordinal:f}=t,{month:n,day:r}=b6(e,f);return{year:e,month:n,day:r,...ho(t)}}function H6(t,e){if(!he(t.localWeekday)||!he(t.localWeekNumber)||!he(t.localWeekYear)){if(!he(t.weekday)||!he(t.weekNumber)||!he(t.weekYear))throw new E9("Cannot mix locale-based week fields with ISO-based week fields");return he(t.localWeekday)||(t.weekday=t.localWeekday),he(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),he(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function FA(t,e=4,f=1){const n=zo(t.weekYear),r=Vf(t.weekNumber,1,Xa(t.weekYear,e,f)),s=Vf(t.weekday,1,7);return n?r?s?!1:Af("weekday",t.weekday):Af("week",t.weekNumber):Af("weekYear",t.weekYear)}function CA(t){const e=zo(t.year),f=Vf(t.ordinal,1,U9(t.year));return e?f?!1:Af("ordinal",t.ordinal):Af("year",t.year)}function p6(t){const e=zo(t.year),f=Vf(t.month,1,12),n=Vf(t.day,1,xo(t.year,t.month));return e?f?n?!1:Af("day",t.day):Af("month",t.month):Af("year",t.year)}function X6(t){const{hour:e,minute:f,second:n,millisecond:r}=t,s=Vf(e,0,23)||e===24&&f===0&&n===0&&r===0,o=Vf(f,0,59),v=Vf(n,0,59),i=Vf(r,0,999);return s?o?v?i?!1:Af("millisecond",r):Af("second",n):Af("minute",f):Af("hour",e)}function he(t){return typeof t>"u"}function br(t){return typeof t=="number"}function zo(t){return typeof t=="number"&&t%1===0}function EA(t){return typeof t=="string"}function IA(t){return Object.prototype.toString.call(t)==="[object Date]"}function h6(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function y6(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function QA(t){return Array.isArray(t)?t:[t]}function m6(t,e,f){if(t.length!==0)return t.reduce((n,r)=>{const s=[e(r),r];return n&&f(n[0],s[0])===n[0]?n:s},null)[1]}function UA(t,e){return e.reduce((f,n)=>(f[n]=t[n],f),{})}function Q9(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function J1(t){if(t==null)return null;if(typeof t!="object")throw new Ct("Week settings must be an object");if(!Vf(t.firstDay,1,7)||!Vf(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!Vf(e,1,7)))throw new Ct("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function Vf(t,e,f){return zo(t)&&t>=e&&t<=f}function JA(t,e){return t-e*Math.floor(t/e)}function jt(t,e=2){const f=t<0;let n;return f?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function zr(t){if(!(he(t)||t===null||t===""))return parseInt(t,10)}function e9(t){if(!(he(t)||t===null||t===""))return parseFloat(t)}function K1(t){if(!(he(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function S1(t,e,f=!1){const n=10**e;return(f?Math.trunc:Math.round)(t*n)/n}function pa(t){return t%4===0&&(t%100!==0||t%400===0)}function U9(t){return pa(t)?366:365}function xo(t,e){const f=JA(e-1,12)+1,n=t+(e-f)/12;return f===2?pa(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][f-1]}function Ho(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function j6(t,e,f){return-Q1(I1(t,1,e),f)+e-1}function Xa(t,e=4,f=1){const n=j6(t,e,f),r=j6(t+1,e,f);return(U9(t)-n+r)/7}function _1(t){return t>99?t:t>dt.twoDigitCutoffYear?1900+t:2e3+t}function w6(t,e,f,n=null){const r=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);const o={timeZoneName:e,...s},v=new Intl.DateTimeFormat(f,o).formatToParts(r).find(i=>i.type.toLowerCase()==="timezonename");return v?v.value:null}function po(t,e){let f=parseInt(t,10);Number.isNaN(f)&&(f=0);const n=parseInt(e,10)||0,r=f<0||Object.is(f,-0)?-n:n;return f*60+r}function g6(t){const e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ct(`Invalid unit value ${t}`);return e}function Xo(t,e){const f={};for(const n in t)if(Q9(t,n)){const r=t[n];if(r==null)continue;f[e(n)]=g6(r)}return f}function ha(t,e){const f=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),r=t>=0?"+":"-";switch(e){case"short":return`${r}${jt(f,2)}:${jt(n,2)}`;case"narrow":return`${r}${f}${n>0?`:${n}`:""}`;case"techie":return`${r}${jt(f,2)}${jt(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ho(t){return UA(t,["hour","minute","second","millisecond"])}const KA=["January","February","March","April","May","June","July","August","September","October","November","December"],D6=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],SA=["J","F","M","A","M","J","J","A","S","O","N","D"];function L6(t){switch(t){case"narrow":return[...SA];case"short":return[...D6];case"long":return[...KA];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const T6=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],N6=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],_A=["M","T","W","T","F","S","S"];function Z6(t){switch(t){case"narrow":return[..._A];case"short":return[...N6];case"long":return[...T6];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const O6=["AM","PM"],$A=["Before Christ","Anno Domini"],eV=["BC","AD"],tV=["B","A"];function A6(t){switch(t){case"narrow":return[...tV];case"short":return[...eV];case"long":return[...$A];default:return null}}function fV(t){return O6[t.hour<12?0:1]}function nV(t,e){return Z6(e)[t.weekday-1]}function rV(t,e){return L6(e)[t.month-1]}function aV(t,e){return A6(e)[t.year<0?0:1]}function sV(t,e,f="always",n=!1){const r={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(f==="auto"&&s){const l=t==="days";switch(e){case 1:return l?"tomorrow":`next ${r[t][0]}`;case-1:return l?"yesterday":`last ${r[t][0]}`;case 0:return l?"today":`this ${r[t][0]}`}}const o=Object.is(e,-0)||e<0,v=Math.abs(e),i=v===1,P=r[t],d=n?i?P[1]:P[2]||P[1]:i?r[t][0]:t;return o?`${v} ${d} ago`:`in ${v} ${d}`}function V6(t,e){let f="";for(const n of t)n.literal?f+=n.val:f+=e(n.val);return f}const oV={D:io,DD:Wc,DDD:qc,DDDD:kc,t:Gc,tt:Rc,ttt:Bc,tttt:Yc,T:Fc,TT:Cc,TTT:Ec,TTTT:Ic,f:Qc,ff:Jc,fff:Sc,ffff:$c,F:Uc,FF:Kc,FFF:_c,FFFF:e6};class Et{static create(e,f={}){return new Et(e,f)}static parseFormat(e){let f=null,n="",r=!1;const s=[];for(let o=0;o<e.length;o++){const v=e.charAt(o);v==="'"?(n.length>0&&s.push({literal:r||/^\s+$/.test(n),val:n}),f=null,n="",r=!r):r||v===f?n+=v:(n.length>0&&s.push({literal:/^\s+$/.test(n),val:n}),n=v,f=v)}return n.length>0&&s.push({literal:r||/^\s+$/.test(n),val:n}),s}static macroTokenToFormatOpts(e){return oV[e]}constructor(e,f){this.opts=f,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,f){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...f}).format()}dtFormatter(e,f={}){return this.loc.dtFormatter(e,{...this.opts,...f})}formatDateTime(e,f){return this.dtFormatter(e,f).format()}formatDateTimeParts(e,f){return this.dtFormatter(e,f).formatToParts()}formatInterval(e,f){return this.dtFormatter(e.start,f).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,f){return this.dtFormatter(e,f).resolvedOptions()}num(e,f=0){if(this.opts.forceSimple)return jt(e,f);const n={...this.opts};return f>0&&(n.padTo=f),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,f){const n=this.loc.listingMode()==="en",r=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(u,z)=>this.loc.extract(e,u,z),o=u=>e.isOffsetFixed&&e.offset===0&&u.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,u.format):"",v=()=>n?fV(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),i=(u,z)=>n?rV(e,u):s(z?{month:u}:{month:u,day:"numeric"},"month"),P=(u,z)=>n?nV(e,u):s(z?{weekday:u}:{weekday:u,month:"long",day:"numeric"},"weekday"),d=u=>{const z=Et.macroTokenToFormatOpts(u);return z?this.formatWithSystemDefault(e,z):u},l=u=>n?aV(e,u):s({era:u},"era"),c=u=>{switch(u){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return v();case"d":return r?s({day:"numeric"},"day"):this.num(e.day);case"dd":return r?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return P("short",!0);case"cccc":return P("long",!0);case"ccccc":return P("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return P("short",!1);case"EEEE":return P("long",!1);case"EEEEE":return P("narrow",!1);case"L":return r?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return r?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return i("short",!0);case"LLLL":return i("long",!0);case"LLLLL":return i("narrow",!0);case"M":return r?s({month:"numeric"},"month"):this.num(e.month);case"MM":return r?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return i("short",!1);case"MMMM":return i("long",!1);case"MMMMM":return i("narrow",!1);case"y":return r?s({year:"numeric"},"year"):this.num(e.year);case"yy":return r?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return r?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return r?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return l("short");case"GG":return l("long");case"GGGGG":return l("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(u)}};return V6(Et.parseFormat(f),c)}formatDurationFromString(e,f){const n=i=>{switch(i[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},r=i=>P=>{const d=n(P);return d?this.num(i.get(d),P.length):P},s=Et.parseFormat(f),o=s.reduce((i,{literal:P,val:d})=>P?i:i.concat(d),[]),v=e.shiftTo(...o.map(n).filter(i=>i));return V6(s,r(v))}}const M6=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function J9(...t){const e=t.reduce((f,n)=>f+n.source,"");return RegExp(`^${e}$`)}function K9(...t){return e=>t.reduce(([f,n,r],s)=>{const[o,v,i]=s(e,r);return[{...f,...o},v||n,i]},[{},null,1]).slice(0,2)}function S9(t,...e){if(t==null)return[null,null];for(const[f,n]of e){const r=f.exec(t);if(r)return n(r)}return[null,null]}function W6(...t){return(e,f)=>{const n={};let r;for(r=0;r<t.length;r++)n[t[r]]=zr(e[f+r]);return[n,null,f+r]}}const q6=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,vV=`(?:${q6.source}?(?:\\[(${M6.source})\\])?)?`,$1=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,k6=RegExp(`${$1.source}${vV}`),e3=RegExp(`(?:T${k6.source})?`),iV=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,PV=/(\d{4})-?W(\d\d)(?:-?(\d))?/,dV=/(\d{4})-?(\d{3})/,lV=W6("weekYear","weekNumber","weekDay"),cV=W6("year","ordinal"),uV=/(\d{4})-(\d\d)-(\d\d)/,G6=RegExp(`${$1.source} ?(?:${q6.source}|(${M6.source}))?`),bV=RegExp(`(?: ${G6.source})?`);function _9(t,e,f){const n=t[e];return he(n)?f:zr(n)}function zV(t,e){return[{year:_9(t,e),month:_9(t,e+1,1),day:_9(t,e+2,1)},null,e+3]}function $9(t,e){return[{hours:_9(t,e,0),minutes:_9(t,e+1,0),seconds:_9(t,e+2,0),milliseconds:K1(t[e+3])},null,e+4]}function ya(t,e){const f=!t[e]&&!t[e+1],n=po(t[e+1],t[e+2]),r=f?null:_t.instance(n);return[{},r,e+3]}function ma(t,e){const f=t[e]?Wn.create(t[e]):null;return[{},f,e+1]}const xV=RegExp(`^T?${$1.source}$`),HV=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function pV(t){const[e,f,n,r,s,o,v,i,P]=t,d=e[0]==="-",l=i&&i[0]==="-",c=(u,z=!1)=>u!==void 0&&(z||u&&d)?-u:u;return[{years:c(e9(f)),months:c(e9(n)),weeks:c(e9(r)),days:c(e9(s)),hours:c(e9(o)),minutes:c(e9(v)),seconds:c(e9(i),i==="-0"),milliseconds:c(K1(P),l)}]}const XV={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function t3(t,e,f,n,r,s,o){const v={year:e.length===2?_1(zr(e)):zr(e),month:D6.indexOf(f)+1,day:zr(n),hour:zr(r),minute:zr(s)};return o&&(v.second=zr(o)),t&&(v.weekday=t.length>3?T6.indexOf(t)+1:N6.indexOf(t)+1),v}const hV=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function yV(t){const[,e,f,n,r,s,o,v,i,P,d,l]=t,c=t3(e,r,n,f,s,o,v);let u;return i?u=XV[i]:P?u=0:u=po(d,l),[c,new _t(u)]}function mV(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const jV=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,wV=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,gV=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function R6(t){const[,e,f,n,r,s,o,v]=t;return[t3(e,r,n,f,s,o,v),_t.utcInstance]}function DV(t){const[,e,f,n,r,s,o,v]=t;return[t3(e,v,f,n,r,s,o),_t.utcInstance]}const LV=J9(iV,e3),TV=J9(PV,e3),NV=J9(dV,e3),ZV=J9(k6),B6=K9(zV,$9,ya,ma),OV=K9(lV,$9,ya,ma),AV=K9(cV,$9,ya,ma),VV=K9($9,ya,ma);function MV(t){return S9(t,[LV,B6],[TV,OV],[NV,AV],[ZV,VV])}function WV(t){return S9(mV(t),[hV,yV])}function qV(t){return S9(t,[jV,R6],[wV,R6],[gV,DV])}function kV(t){return S9(t,[HV,pV])}const GV=K9($9);function RV(t){return S9(t,[xV,GV])}const BV=J9(uV,bV),YV=J9(G6),FV=K9($9,ya,ma);function CV(t){return S9(t,[BV,B6],[YV,FV])}const Y6="Invalid Duration",F6={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},EV={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...F6},Mf=146097/400,e8=146097/4800,IV={years:{quarters:4,months:12,weeks:Mf/7,days:Mf,hours:Mf*24,minutes:Mf*24*60,seconds:Mf*24*60*60,milliseconds:Mf*24*60*60*1e3},quarters:{months:3,weeks:Mf/28,days:Mf/4,hours:Mf*24/4,minutes:Mf*24*60/4,seconds:Mf*24*60*60/4,milliseconds:Mf*24*60*60*1e3/4},months:{weeks:e8/7,days:e8,hours:e8*24,minutes:e8*24*60,seconds:e8*24*60*60,milliseconds:e8*24*60*60*1e3},...F6},t9=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],QV=t9.slice(0).reverse();function xr(t,e,f=!1){const n={values:f?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new It(n)}function C6(t,e){let f=e.milliseconds??0;for(const n of QV.slice(1))e[n]&&(f+=e[n]*t[n].milliseconds);return f}function E6(t,e){const f=C6(t,e)<0?-1:1;t9.reduceRight((n,r)=>{if(he(e[r]))return n;if(n){const s=e[n]*f,o=t[r][n],v=Math.floor(s/o);e[r]+=v*f,e[n]-=v*o*f}return r},null),t9.reduce((n,r)=>{if(he(e[r]))return n;if(n){const s=e[n]%1;e[n]-=s,e[r]+=s*t[n][r]}return r},null)}function UV(t){const e={};for(const[f,n]of Object.entries(t))n!==0&&(e[f]=n);return e}let It=class Ot{constructor(e){const f=e.conversionAccuracy==="longterm"||!1;let n=f?IV:EV;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.create(),this.conversionAccuracy=f?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,f){return Ot.fromObject({milliseconds:e},f)}static fromObject(e,f={}){if(e==null||typeof e!="object")throw new Ct(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new Ot({values:Xo(e,Ot.normalizeUnit),loc:Se.fromObject(f),conversionAccuracy:f.conversionAccuracy,matrix:f.matrix})}static fromDurationLike(e){if(br(e))return Ot.fromMillis(e);if(Ot.isDuration(e))return e;if(typeof e=="object")return Ot.fromObject(e);throw new Ct(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,f){const[n]=kV(e);return n?Ot.fromObject(n,f):Ot.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,f){const[n]=RV(e);return n?Ot.fromObject(n,f):Ot.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,f=null){if(!e)throw new Ct("need to specify a reason the Duration is invalid");const n=e instanceof Uf?e:new Uf(e,f);if(dt.throwOnInvalid)throw new HA(n);return new Ot({invalid:n})}static normalizeUnit(e){const f={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!f)throw new Mc(e);return f}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,f={}){const n={...f,floor:f.round!==!1&&f.floor!==!1};return this.isValid?Et.create(this.loc,n).formatDurationFromString(this,e):Y6}toHuman(e={}){if(!this.isValid)return Y6;const f=t9.map(n=>{const r=this.values[n];return he(r)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(r)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(f)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=S1(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const f=this.toMillis();return f<0||f>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},He.fromMillis(f,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?C6(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const f=Ot.fromDurationLike(e),n={};for(const r of t9)(Q9(f.values,r)||Q9(this.values,r))&&(n[r]=f.get(r)+this.get(r));return xr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const f=Ot.fromDurationLike(e);return this.plus(f.negate())}mapUnits(e){if(!this.isValid)return this;const f={};for(const n of Object.keys(this.values))f[n]=g6(e(this.values[n],n));return xr(this,{values:f},!0)}get(e){return this[Ot.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const f={...this.values,...Xo(e,Ot.normalizeUnit)};return xr(this,{values:f})}reconfigure({locale:e,numberingSystem:f,conversionAccuracy:n,matrix:r}={}){const o={loc:this.loc.clone({locale:e,numberingSystem:f}),matrix:r,conversionAccuracy:n};return xr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return E6(this.matrix,e),xr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;const e=UV(this.normalize().shiftToAll().toObject());return xr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>Ot.normalizeUnit(o));const f={},n={},r=this.toObject();let s;for(const o of t9)if(e.indexOf(o)>=0){s=o;let v=0;for(const P in n)v+=this.matrix[P][o]*n[P],n[P]=0;br(r[o])&&(v+=r[o]);const i=Math.trunc(v);f[o]=i,n[o]=(v*1e3-i*1e3)/1e3}else br(r[o])&&(n[o]=r[o]);for(const o in n)n[o]!==0&&(f[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return E6(this.matrix,f),xr(this,{values:f},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const f of Object.keys(this.values))e[f]=this.values[f]===0?0:-this.values[f];return xr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function f(n,r){return n===void 0||n===0?r===void 0||r===0:n===r}for(const n of t9)if(!f(this.values[n],e.values[n]))return!1;return!0}};const t8="Invalid Interval";function JV(t,e){return!t||!t.isValid?lt.invalid("missing or invalid start"):!e||!e.isValid?lt.invalid("missing or invalid end"):e<t?lt.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}class lt{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,f=null){if(!e)throw new Ct("need to specify a reason the Interval is invalid");const n=e instanceof Uf?e:new Uf(e,f);if(dt.throwOnInvalid)throw new xA(n);return new lt({invalid:n})}static fromDateTimes(e,f){const n=wa(e),r=wa(f),s=JV(n,r);return s??new lt({start:n,end:r})}static after(e,f){const n=It.fromDurationLike(f),r=wa(e);return lt.fromDateTimes(r,r.plus(n))}static before(e,f){const n=It.fromDurationLike(f),r=wa(e);return lt.fromDateTimes(r.minus(n),r)}static fromISO(e,f){const[n,r]=(e||"").split("/",2);if(n&&r){let s,o;try{s=He.fromISO(n,f),o=s.isValid}catch{o=!1}let v,i;try{v=He.fromISO(r,f),i=v.isValid}catch{i=!1}if(o&&i)return lt.fromDateTimes(s,v);if(o){const P=It.fromISO(r,f);if(P.isValid)return lt.after(s,P)}else if(i){const P=It.fromISO(n,f);if(P.isValid)return lt.before(v,P)}}return lt.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",f){if(!this.isValid)return NaN;const n=this.start.startOf(e,f);let r;return f?.useLocaleWeeks?r=this.end.reconfigure({locale:n.locale}):r=this.end,r=r.startOf(e,f),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:f}={}){return this.isValid?lt.fromDateTimes(e||this.s,f||this.e):this}splitAt(...e){if(!this.isValid)return[];const f=e.map(wa).filter(o=>this.contains(o)).sort((o,v)=>o.toMillis()-v.toMillis()),n=[];let{s:r}=this,s=0;for(;r<this.e;){const o=f[s]||this.e,v=+o>+this.e?this.e:o;n.push(lt.fromDateTimes(r,v)),r=v,s+=1}return n}splitBy(e){const f=It.fromDurationLike(e);if(!this.isValid||!f.isValid||f.as("milliseconds")===0)return[];let{s:n}=this,r=1,s;const o=[];for(;n<this.e;){const v=this.start.plus(f.mapUnits(i=>i*r));s=+v>+this.e?this.e:v,o.push(lt.fromDateTimes(n,s)),n=s,r+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const f=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return f>=n?null:lt.fromDateTimes(f,n)}union(e){if(!this.isValid)return this;const f=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return lt.fromDateTimes(f,n)}static merge(e){const[f,n]=e.sort((r,s)=>r.s-s.s).reduce(([r,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[r,s.union(o)]:[r.concat([s]),o]:[r,o],[[],null]);return n&&f.push(n),f}static xor(e){let f=null,n=0;const r=[],s=e.map(i=>[{time:i.s,type:"s"},{time:i.e,type:"e"}]),o=Array.prototype.concat(...s),v=o.sort((i,P)=>i.time-P.time);for(const i of v)n+=i.type==="s"?1:-1,n===1?f=i.time:(f&&+f!=+i.time&&r.push(lt.fromDateTimes(f,i.time)),f=null);return lt.merge(r)}difference(...e){return lt.xor([this].concat(e)).map(f=>this.intersection(f)).filter(f=>f&&!f.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:t8}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=io,f={}){return this.isValid?Et.create(this.s.loc.clone(f),e).formatInterval(this):t8}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:t8}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:t8}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:t8}toFormat(e,{separator:f=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${f}${this.e.toFormat(e)}`:t8}toDuration(e,f){return this.isValid?this.e.diff(this.s,e,f):It.invalid(this.invalidReason)}mapEndpoints(e){return lt.fromDateTimes(e(this.s),e(this.e))}}class yo{static hasDST(e=dt.defaultZone){const f=He.now().setZone(e).set({month:12});return!e.isUniversal&&f.offset!==f.set({month:6}).offset}static isValidIANAZone(e){return Wn.isValidZone(e)}static normalizeZone(e){return ur(e,dt.defaultZone)}static getStartOfWeek({locale:e=null,locObj:f=null}={}){return(f||Se.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:f=null}={}){return(f||Se.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:f=null}={}){return(f||Se.create(e)).getWeekendDays().slice()}static months(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null,outputCalendar:s="gregory"}={}){return(r||Se.create(f,n,s)).months(e)}static monthsFormat(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null,outputCalendar:s="gregory"}={}){return(r||Se.create(f,n,s)).months(e,!0)}static weekdays(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null}={}){return(r||Se.create(f,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null}={}){return(r||Se.create(f,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:f=null}={}){return Se.create(f,null,"gregory").eras(e)}static features(){return{relative:h6(),localeWeek:y6()}}}function I6(t,e){const f=r=>r.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=f(e)-f(t);return Math.floor(It.fromMillis(n).as("days"))}function KV(t,e,f){const n=[["years",(i,P)=>P.year-i.year],["quarters",(i,P)=>P.quarter-i.quarter+(P.year-i.year)*4],["months",(i,P)=>P.month-i.month+(P.year-i.year)*12],["weeks",(i,P)=>{const d=I6(i,P);return(d-d%7)/7}],["days",I6]],r={},s=t;let o,v;for(const[i,P]of n)f.indexOf(i)>=0&&(o=i,r[i]=P(t,e),v=s.plus(r),v>e?(r[i]--,t=s.plus(r),t>e&&(v=t,r[i]--,t=s.plus(r))):t=v);return[t,r,v,o]}function SV(t,e,f,n){let[r,s,o,v]=KV(t,e,f);const i=e-r,P=f.filter(l=>["hours","minutes","seconds","milliseconds"].indexOf(l)>=0);P.length===0&&(o<e&&(o=r.plus({[v]:1})),o!==r&&(s[v]=(s[v]||0)+i/(o-r)));const d=It.fromObject(s,n);return P.length>0?It.fromMillis(i,n).shiftTo(...P).plus(d):d}const _V="missing Intl.DateTimeFormat.formatToParts support";function Ge(t,e=f=>f){return{regex:t,deser:([f])=>e(BA(f))}}const Q6="[  ]",U6=new RegExp(Q6,"g");function $V(t){return t.replace(/\./g,"\\.?").replace(U6,Q6)}function J6(t){return t.replace(/\./g,"").replace(U6," ").toLowerCase()}function Jf(t,e){return t===null?null:{regex:RegExp(t.map($V).join("|")),deser:([f])=>t.findIndex(n=>J6(f)===J6(n))+e}}function K6(t,e){return{regex:t,deser:([,f,n])=>po(f,n),groups:e}}function mo(t){return{regex:t,deser:([e])=>e}}function eM(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function tM(t,e){const f=Qf(e),n=Qf(e,"{2}"),r=Qf(e,"{3}"),s=Qf(e,"{4}"),o=Qf(e,"{6}"),v=Qf(e,"{1,2}"),i=Qf(e,"{1,3}"),P=Qf(e,"{1,6}"),d=Qf(e,"{1,9}"),l=Qf(e,"{2,4}"),c=Qf(e,"{4,6}"),u=x=>({regex:RegExp(eM(x.val)),deser:([H])=>H,literal:!0}),b=(x=>{if(t.literal)return u(x);switch(x.val){case"G":return Jf(e.eras("short"),0);case"GG":return Jf(e.eras("long"),0);case"y":return Ge(P);case"yy":return Ge(l,_1);case"yyyy":return Ge(s);case"yyyyy":return Ge(c);case"yyyyyy":return Ge(o);case"M":return Ge(v);case"MM":return Ge(n);case"MMM":return Jf(e.months("short",!0),1);case"MMMM":return Jf(e.months("long",!0),1);case"L":return Ge(v);case"LL":return Ge(n);case"LLL":return Jf(e.months("short",!1),1);case"LLLL":return Jf(e.months("long",!1),1);case"d":return Ge(v);case"dd":return Ge(n);case"o":return Ge(i);case"ooo":return Ge(r);case"HH":return Ge(n);case"H":return Ge(v);case"hh":return Ge(n);case"h":return Ge(v);case"mm":return Ge(n);case"m":return Ge(v);case"q":return Ge(v);case"qq":return Ge(n);case"s":return Ge(v);case"ss":return Ge(n);case"S":return Ge(i);case"SSS":return Ge(r);case"u":return mo(d);case"uu":return mo(v);case"uuu":return Ge(f);case"a":return Jf(e.meridiems(),0);case"kkkk":return Ge(s);case"kk":return Ge(l,_1);case"W":return Ge(v);case"WW":return Ge(n);case"E":case"c":return Ge(f);case"EEE":return Jf(e.weekdays("short",!1),1);case"EEEE":return Jf(e.weekdays("long",!1),1);case"ccc":return Jf(e.weekdays("short",!0),1);case"cccc":return Jf(e.weekdays("long",!0),1);case"Z":case"ZZ":return K6(new RegExp(`([+-]${v.source})(?::(${n.source}))?`),2);case"ZZZ":return K6(new RegExp(`([+-]${v.source})(${n.source})?`),2);case"z":return mo(/[a-z_+-/]{1,256}?/i);case" ":return mo(/[^\S\n\r]/);default:return u(x)}})(t)||{invalidReason:_V};return b.token=t,b}const fM={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function nM(t,e,f){const{type:n,value:r}=t;if(n==="literal"){const i=/^\s+$/.test(r);return{literal:!i,val:i?" ":r}}const s=e[n];let o=n;n==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=f.hour12?"hour12":"hour24");let v=fM[o];if(typeof v=="object"&&(v=v[s]),v)return{literal:!1,val:v}}function rM(t){return[`^${t.map(f=>f.regex).reduce((f,n)=>`${f}(${n.source})`,"")}$`,t]}function aM(t,e,f){const n=t.match(e);if(n){const r={};let s=1;for(const o in f)if(Q9(f,o)){const v=f[o],i=v.groups?v.groups+1:1;!v.literal&&v.token&&(r[v.token.val[0]]=v.deser(n.slice(s,s+i))),s+=i}return[n,r]}else return[n,{}]}function sM(t){const e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let f=null,n;return he(t.z)||(f=Wn.create(t.z)),he(t.Z)||(f||(f=new _t(t.Z)),n=t.Z),he(t.q)||(t.M=(t.q-1)*3+1),he(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),he(t.u)||(t.S=K1(t.u)),[Object.keys(t).reduce((s,o)=>{const v=e(o);return v&&(s[v]=t[o]),s},{}),f,n]}let f3=null;function oM(){return f3||(f3=He.fromMillis(1555555555555)),f3}function vM(t,e){if(t.literal)return t;const f=Et.macroTokenToFormatOpts(t.val),n=e5(f,e);return n==null||n.includes(void 0)?t:n}function S6(t,e){return Array.prototype.concat(...t.map(f=>vM(f,e)))}class _6{constructor(e,f){if(this.locale=e,this.format=f,this.tokens=S6(Et.parseFormat(f),e),this.units=this.tokens.map(n=>tM(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){const[n,r]=rM(this.units);this.regex=RegExp(n,"i"),this.handlers=r}}explainFromTokens(e){if(this.isValid){const[f,n]=aM(e,this.regex,this.handlers),[r,s,o]=n?sM(n):[null,null,void 0];if(Q9(n,"a")&&Q9(n,"H"))throw new E9("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:f,matches:n,result:r,zone:s,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function $6(t,e,f){return new _6(t,f).explainFromTokens(e)}function iM(t,e,f){const{result:n,zone:r,specificOffset:s,invalidReason:o}=$6(t,e,f);return[n,r,s,o]}function e5(t,e){if(!t)return null;const n=Et.create(e,t).dtFormatter(oM()),r=n.formatToParts(),s=n.resolvedOptions();return r.map(o=>nM(o,t,s))}const n3="Invalid DateTime",t5=864e13;function ja(t){return new Uf("unsupported zone",`the zone "${t.name}" is not supported`)}function r3(t){return t.weekData===null&&(t.weekData=bo(t.c)),t.weekData}function a3(t){return t.localWeekData===null&&(t.localWeekData=bo(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function f9(t,e){const f={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new He({...f,...e,old:f})}function f5(t,e,f){let n=t-e*60*1e3;const r=f.offset(n);if(e===r)return[n,e];n-=(r-e)*60*1e3;const s=f.offset(n);return r===s?[n,r]:[t-Math.min(r,s)*60*1e3,Math.max(r,s)]}function jo(t,e){t+=e*60*1e3;const f=new Date(t);return{year:f.getUTCFullYear(),month:f.getUTCMonth()+1,day:f.getUTCDate(),hour:f.getUTCHours(),minute:f.getUTCMinutes(),second:f.getUTCSeconds(),millisecond:f.getUTCMilliseconds()}}function wo(t,e,f){return f5(Ho(t),e,f)}function n5(t,e){const f=t.o,n=t.c.year+Math.trunc(e.years),r=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:r,day:Math.min(t.c.day,xo(n,r))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=It.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),v=Ho(s);let[i,P]=f5(v,f,t.zone);return o!==0&&(i+=o,P=t.zone.offset(i)),{ts:i,o:P}}function f8(t,e,f,n,r,s){const{setZone:o,zone:v}=f;if(t&&Object.keys(t).length!==0||e){const i=e||v,P=He.fromObject(t,{...f,zone:i,specificOffset:s});return o?P:P.setZone(v)}else return He.invalid(new Uf("unparsable",`the input "${r}" can't be parsed as ${n}`))}function go(t,e,f=!0){return t.isValid?Et.create(Se.create("en-US"),{allowZ:f,forceSimple:!0}).formatDateTimeFromString(t,e):null}function s3(t,e){const f=t.c.year>9999||t.c.year<0;let n="";return f&&t.c.year>=0&&(n+="+"),n+=jt(t.c.year,f?6:4),e?(n+="-",n+=jt(t.c.month),n+="-",n+=jt(t.c.day)):(n+=jt(t.c.month),n+=jt(t.c.day)),n}function r5(t,e,f,n,r,s){let o=jt(t.c.hour);return e?(o+=":",o+=jt(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!f)&&(o+=":")):o+=jt(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!f)&&(o+=jt(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=jt(t.c.millisecond,3))),r&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=jt(Math.trunc(-t.o/60)),o+=":",o+=jt(Math.trunc(-t.o%60))):(o+="+",o+=jt(Math.trunc(t.o/60)),o+=":",o+=jt(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}const a5={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},PM={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},dM={ordinal:1,hour:0,minute:0,second:0,millisecond:0},s5=["year","month","day","hour","minute","second","millisecond"],lM=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],cM=["year","ordinal","hour","minute","second","millisecond"];function uM(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Mc(t);return e}function o5(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return uM(t)}}function bM(t){return Lo[t]||(Do===void 0&&(Do=dt.now()),Lo[t]=t.offset(Do)),Lo[t]}function v5(t,e){const f=ur(e.zone,dt.defaultZone);if(!f.isValid)return He.invalid(ja(f));const n=Se.fromObject(e);let r,s;if(he(t.year))r=dt.now();else{for(const i of s5)he(t[i])&&(t[i]=a5[i]);const o=p6(t)||X6(t);if(o)return He.invalid(o);const v=bM(f);[r,s]=wo(t,v,f)}return new He({ts:r,zone:f,loc:n,o:s})}function i5(t,e,f){const n=he(f.round)?!0:f.round,r=(o,v)=>(o=S1(o,n||f.calendary?0:2,!0),e.loc.clone(f).relFormatter(f).format(o,v)),s=o=>f.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(f.unit)return r(s(f.unit),f.unit);for(const o of f.units){const v=s(o);if(Math.abs(v)>=1)return r(v,o)}return r(t>e?-0:0,f.units[f.units.length-1])}function P5(t){let e={},f;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],f=Array.from(t).slice(0,t.length-1)):f=Array.from(t),[e,f]}let Do,Lo={};class He{constructor(e){const f=e.zone||dt.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new Uf("invalid input"):null)||(f.isValid?null:ja(f));this.ts=he(e.ts)?dt.now():e.ts;let r=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(f))[r,s]=[e.old.c,e.old.o];else{const v=br(e.o)&&!e.old?e.o:f.offset(this.ts);r=jo(this.ts,v),n=Number.isNaN(r.year)?new Uf("invalid input"):null,r=n?null:r,s=n?null:v}this._zone=f,this.loc=e.loc||Se.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=s,this.isLuxonDateTime=!0}static now(){return new He({})}static local(){const[e,f]=P5(arguments),[n,r,s,o,v,i,P]=f;return v5({year:n,month:r,day:s,hour:o,minute:v,second:i,millisecond:P},e)}static utc(){const[e,f]=P5(arguments),[n,r,s,o,v,i,P]=f;return e.zone=_t.utcInstance,v5({year:n,month:r,day:s,hour:o,minute:v,second:i,millisecond:P},e)}static fromJSDate(e,f={}){const n=IA(e)?e.valueOf():NaN;if(Number.isNaN(n))return He.invalid("invalid input");const r=ur(f.zone,dt.defaultZone);return r.isValid?new He({ts:n,zone:r,loc:Se.fromObject(f)}):He.invalid(ja(r))}static fromMillis(e,f={}){if(br(e))return e<-t5||e>t5?He.invalid("Timestamp out of range"):new He({ts:e,zone:ur(f.zone,dt.defaultZone),loc:Se.fromObject(f)});throw new Ct(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,f={}){if(br(e))return new He({ts:e*1e3,zone:ur(f.zone,dt.defaultZone),loc:Se.fromObject(f)});throw new Ct("fromSeconds requires a numerical input")}static fromObject(e,f={}){e=e||{};const n=ur(f.zone,dt.defaultZone);if(!n.isValid)return He.invalid(ja(n));const r=Se.fromObject(f),s=Xo(e,o5),{minDaysInFirstWeek:o,startOfWeek:v}=H6(s,r),i=dt.now(),P=he(f.specificOffset)?n.offset(i):f.specificOffset,d=!he(s.ordinal),l=!he(s.year),c=!he(s.month)||!he(s.day),u=l||c,z=s.weekYear||s.weekNumber;if((u||d)&&z)throw new E9("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&d)throw new E9("Can't mix ordinal dates with month/day");const b=z||s.weekday&&!u;let x,H,p=jo(i,P);b?(x=lM,H=PM,p=bo(p,o,v)):d?(x=cM,H=dM,p=U1(p)):(x=s5,H=a5);let X=!1;for(const Z of x){const R=s[Z];he(R)?X?s[Z]=H[Z]:s[Z]=p[Z]:X=!0}const m=b?FA(s,o,v):d?CA(s):p6(s),h=m||X6(s);if(h)return He.invalid(h);const w=b?z6(s,o,v):d?x6(s):s,[j,L]=wo(w,P,n),g=new He({ts:j,zone:n,o:L,loc:r});return s.weekday&&u&&e.weekday!==g.weekday?He.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${g.toISO()}`):g.isValid?g:He.invalid(g.invalid)}static fromISO(e,f={}){const[n,r]=MV(e);return f8(n,r,f,"ISO 8601",e)}static fromRFC2822(e,f={}){const[n,r]=WV(e);return f8(n,r,f,"RFC 2822",e)}static fromHTTP(e,f={}){const[n,r]=qV(e);return f8(n,r,f,"HTTP",f)}static fromFormat(e,f,n={}){if(he(e)||he(f))throw new Ct("fromFormat requires an input string and a format");const{locale:r=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0}),[v,i,P,d]=iM(o,e,f);return d?He.invalid(d):f8(v,i,n,`format ${f}`,e,P)}static fromString(e,f,n={}){return He.fromFormat(e,f,n)}static fromSQL(e,f={}){const[n,r]=CV(e);return f8(n,r,f,"SQL",e)}static invalid(e,f=null){if(!e)throw new Ct("need to specify a reason the DateTime is invalid");const n=e instanceof Uf?e:new Uf(e,f);if(dt.throwOnInvalid)throw new zA(n);return new He({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,f={}){const n=e5(e,Se.fromObject(f));return n?n.map(r=>r?r.val:null).join(""):null}static expandFormat(e,f={}){return S6(Et.parseFormat(e),Se.fromObject(f)).map(r=>r.val).join("")}static resetCache(){Do=void 0,Lo={}}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?r3(this).weekYear:NaN}get weekNumber(){return this.isValid?r3(this).weekNumber:NaN}get weekday(){return this.isValid?r3(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?a3(this).weekday:NaN}get localWeekNumber(){return this.isValid?a3(this).weekNumber:NaN}get localWeekYear(){return this.isValid?a3(this).weekYear:NaN}get ordinal(){return this.isValid?U1(this.c).ordinal:NaN}get monthShort(){return this.isValid?yo.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?yo.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?yo.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?yo.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,f=6e4,n=Ho(this.c),r=this.zone.offset(n-e),s=this.zone.offset(n+e),o=this.zone.offset(n-r*f),v=this.zone.offset(n-s*f);if(o===v)return[this];const i=n-o*f,P=n-v*f,d=jo(i,o),l=jo(P,v);return d.hour===l.hour&&d.minute===l.minute&&d.second===l.second&&d.millisecond===l.millisecond?[f9(this,{ts:i}),f9(this,{ts:P})]:[this]}get isInLeapYear(){return pa(this.year)}get daysInMonth(){return xo(this.year,this.month)}get daysInYear(){return this.isValid?U9(this.year):NaN}get weeksInWeekYear(){return this.isValid?Xa(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Xa(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:f,numberingSystem:n,calendar:r}=Et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:f,numberingSystem:n,outputCalendar:r}}toUTC(e=0,f={}){return this.setZone(_t.instance(e),f)}toLocal(){return this.setZone(dt.defaultZone)}setZone(e,{keepLocalTime:f=!1,keepCalendarTime:n=!1}={}){if(e=ur(e,dt.defaultZone),e.equals(this.zone))return this;if(e.isValid){let r=this.ts;if(f||n){const s=e.offset(this.ts),o=this.toObject();[r]=wo(o,s,e)}return f9(this,{ts:r,zone:e})}else return He.invalid(ja(e))}reconfigure({locale:e,numberingSystem:f,outputCalendar:n}={}){const r=this.loc.clone({locale:e,numberingSystem:f,outputCalendar:n});return f9(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const f=Xo(e,o5),{minDaysInFirstWeek:n,startOfWeek:r}=H6(f,this.loc),s=!he(f.weekYear)||!he(f.weekNumber)||!he(f.weekday),o=!he(f.ordinal),v=!he(f.year),i=!he(f.month)||!he(f.day),P=v||i,d=f.weekYear||f.weekNumber;if((P||o)&&d)throw new E9("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(i&&o)throw new E9("Can't mix ordinal dates with month/day");let l;s?l=z6({...bo(this.c,n,r),...f},n,r):he(f.ordinal)?(l={...this.toObject(),...f},he(f.day)&&(l.day=Math.min(xo(l.year,l.month),l.day))):l=x6({...U1(this.c),...f});const[c,u]=wo(l,this.o,this.zone);return f9(this,{ts:c,o:u})}plus(e){if(!this.isValid)return this;const f=It.fromDurationLike(e);return f9(this,n5(this,f))}minus(e){if(!this.isValid)return this;const f=It.fromDurationLike(e).negate();return f9(this,n5(this,f))}startOf(e,{useLocaleWeeks:f=!1}={}){if(!this.isValid)return this;const n={},r=It.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(r==="weeks")if(f){const s=this.loc.getStartOfWeek(),{weekday:o}=this;o<s&&(n.weekNumber=this.weekNumber-1),n.weekday=s}else n.weekday=1;if(r==="quarters"){const s=Math.ceil(this.month/3);n.month=(s-1)*3+1}return this.set(n)}endOf(e,f){return this.isValid?this.plus({[e]:1}).startOf(e,f).minus(1):this}toFormat(e,f={}){return this.isValid?Et.create(this.loc.redefaultToEN(f)).formatDateTimeFromString(this,e):n3}toLocaleString(e=io,f={}){return this.isValid?Et.create(this.loc.clone(f),e).formatDateTime(this):n3}toLocaleParts(e={}){return this.isValid?Et.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:f=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;const o=e==="extended";let v=s3(this,o);return v+="T",v+=r5(this,o,f,n,r,s),v}toISODate({format:e="extended"}={}){return this.isValid?s3(this,e==="extended"):null}toISOWeekDate(){return go(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:f=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(r?"T":"")+r5(this,o==="extended",f,e,n,s):null}toRFC2822(){return go(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return go(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?s3(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:f=!1,includeOffsetSpace:n=!0}={}){let r="HH:mm:ss.SSS";return(f||e)&&(n&&(r+=" "),f?r+="z":e&&(r+="ZZ")),go(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():n3}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const f={...this.c};return e.includeConfig&&(f.outputCalendar=this.outputCalendar,f.numberingSystem=this.loc.numberingSystem,f.locale=this.loc.locale),f}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,f="milliseconds",n={}){if(!this.isValid||!e.isValid)return It.invalid("created by diffing an invalid DateTime");const r={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=QA(f).map(It.normalizeUnit),o=e.valueOf()>this.valueOf(),v=o?this:e,i=o?e:this,P=SV(v,i,s,r);return o?P.negate():P}diffNow(e="milliseconds",f={}){return this.diff(He.now(),e,f)}until(e){return this.isValid?lt.fromDateTimes(this,e):this}hasSame(e,f,n){if(!this.isValid)return!1;const r=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(f,n)<=r&&r<=s.endOf(f,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const f=e.base||He.fromObject({},{zone:this.zone}),n=e.padding?this<f?-e.padding:e.padding:0;let r=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(r=e.unit,s=void 0),i5(f,this.plus(n),{...e,numeric:"always",units:r,unit:s})}toRelativeCalendar(e={}){return this.isValid?i5(e.base||He.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(He.isDateTime))throw new Ct("min requires all arguments be DateTimes");return m6(e,f=>f.valueOf(),Math.min)}static max(...e){if(!e.every(He.isDateTime))throw new Ct("max requires all arguments be DateTimes");return m6(e,f=>f.valueOf(),Math.max)}static fromFormatExplain(e,f,n={}){const{locale:r=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0});return $6(o,e,f)}static fromStringExplain(e,f,n={}){return He.fromFormatExplain(e,f,n)}static buildFormatParser(e,f={}){const{locale:n=null,numberingSystem:r=null}=f,s=Se.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new _6(s,e)}static fromFormatParser(e,f,n={}){if(he(e)||he(f))throw new Ct("fromFormatParser requires an input string and a format parser");const{locale:r=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0});if(!o.equals(f.locale))throw new Ct(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${f.locale}`);const{result:v,zone:i,specificOffset:P,invalidReason:d}=f.explainFromTokens(e);return d?He.invalid(d):f8(v,i,n,`format ${f.format}`,e,P)}static get DATE_SHORT(){return io}static get DATE_MED(){return Wc}static get DATE_MED_WITH_WEEKDAY(){return pA}static get DATE_FULL(){return qc}static get DATE_HUGE(){return kc}static get TIME_SIMPLE(){return Gc}static get TIME_WITH_SECONDS(){return Rc}static get TIME_WITH_SHORT_OFFSET(){return Bc}static get TIME_WITH_LONG_OFFSET(){return Yc}static get TIME_24_SIMPLE(){return Fc}static get TIME_24_WITH_SECONDS(){return Cc}static get TIME_24_WITH_SHORT_OFFSET(){return Ec}static get TIME_24_WITH_LONG_OFFSET(){return Ic}static get DATETIME_SHORT(){return Qc}static get DATETIME_SHORT_WITH_SECONDS(){return Uc}static get DATETIME_MED(){return Jc}static get DATETIME_MED_WITH_SECONDS(){return Kc}static get DATETIME_MED_WITH_WEEKDAY(){return XA}static get DATETIME_FULL(){return Sc}static get DATETIME_FULL_WITH_SECONDS(){return _c}static get DATETIME_HUGE(){return $c}static get DATETIME_HUGE_WITH_SECONDS(){return e6}}function wa(t){if(He.isDateTime(t))return t;if(t&&t.valueOf&&br(t.valueOf()))return He.fromJSDate(t);if(t&&typeof t=="object")return He.fromObject(t);throw new Ct(`Unknown datetime argument: ${t}, of type ${typeof t}`)}const o3=[{name:"Sydney",open:"22:00",close:"7:00"},{name:"Tokyo",open:"0:00",close:"9:00"},{name:"London",open:"8:00",close:"17:00"},{name:"New-York",open:"13:00",close:"22:00"}];function Ye(t,e=2){return isNaN(+t)?0:Math.round(+t*10**e)/10**e}function To(t){if(t){const e=t.toString();if(/\B(?=(\d{3})+(?!\d))/g.test(e))if(e.includes(".")){let n=e.split(".");return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g," "),n.join(".")}else return e.replace(/\B(?=(\d{3})+(?!\d))/g," ");else return e}else return t}function zM(t,e){const f=parseFloat(t.entry_price),n=t.amount,r=t.pair.toLowerCase(),s=t.side,o=t.leverage,i=(l=>l.endsWith("sek")||l.endsWith("mxn")||l.endsWith("jpy")?1e3:l.startsWith("xau")||l.endsWith("f.t")||l.endsWith(".b")||l.endsWith("xpd")||l.endsWith("xag")||l.endsWith("xbr")||l.endsWith("xng")||l.endsWith("xpt")||l.endsWith("xti")?100:l==="cocoa"||l==="coffee"?1:l==="brent"?100:1e5)(r);let P=0,d=0;return s==="LONG"?(P=(e.bid-f)*n*i,d=P/(n*f*i/o)):s==="SHORT"&&(P=(f-e.ask)*n*i,d=P/(n*f*i/o)),{pnl:P,pnl_roi:d}}function xM(t,e){const f=parseFloat(t.entry_price),n=t.amount,r=t.multiplier,s=t.side;let o=0,v=0;return s==="SHORT"?(o=(f-e)*Math.abs(n),v=(f-e)*n*r/(f*Math.abs(n))*100):s==="LONG"&&(o=(e-f)*Math.abs(n),v=(e-f)*n*r/(f*Math.abs(n))*100),{pnl:o,pnlToBalanceRatio:v}}function v3(t){if(isNaN(+t))return 0;const e=parseFloat(String(t));if(Number.isInteger(e))return e;const f=e.toString(),n=f.indexOf(".");if(n===-1)return e;const s=f.slice(n+1).search(/[^0]/);if(s===-1)return e;const v=10**(s+4);return Math.round(e*v)/v}function ga(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}function ze(t,e,f={}){const{repeat:n=4,mask:r="*",prefix:s="",suffix:o=""}=f;let v,i;return t?(v=s==="$"?a8():s,i=o==="$"?a8():o,v+r.repeat(n)+i):e}function HM(t){return t.reduce((e,f,n)=>n===0?`key=${encodeURIComponent(f.id)}`:e+`&key=${encodeURIComponent(f.id)}`,"")}function n8(){function t(r){return Number(r)===r&&r%1!==0}function e(r){let s=String(r);return s.includes(".75")?s.replace(".75",":45"):s.includes(".25")?s.replace(".25",":15"):s.replace(".5",":30")}const f=Number(rn.getItem("scope360::timezone"))||0,n=t(f)?e(f):f;return`UTC${f>=0?"+":""}${n}`}function pM(t){return new Date(t).getFullYear()}function d5(t,e=!0){const f=e?n8():"UTC+0";return He.fromISO(t,{setZone:!0}).setZone(f).toFormat("dd LLLL, y, TT")}function r8(t,e="dd/LL/y",f=!0){const n=f?n8():"UTC+0";return He.fromISO(t,{setZone:!0}).setZone(n).toFormat(e)}function XM(t){return t.toISOString().split("T")[0]}function hM(t){return["January","February","March","April","May","June","July","August","September","October","November","December"][new Date(t).getMonth()]}function yM(t){return new Date(t).getDate()}function l5(t){return He.fromISO(t,{setZone:!0}).toFormat("cccc")}function mM(t){const e=new Date(t),n=new Date-e;return Math.floor(n/(1e3*3600*24))}function a8(){const t={USD:"$",EUR:"€",JPY:"¥",GBP:"£",CHF:"Fr.",CAD:"$",AUD:"$",NOK:"kr",SEK:"kr",DKK:"kr"},e=c5();return e&&t[e?.split("::")[0]]?t[e?.split("::")[0]]:t.USD}function c5(){let t=!1;return(window.location.hostname.includes("fx")||window.location.host==="localhost:5173")&&(t=!0),t?rn.getItem("scope360::currency_fx"):rn.getItem("scope360::currency")}function n9(){const t=c5();return t&&t?.split("::")[1]?+t?.split("::")[1]:1}const Ve=(t,e={isPercentage:!1,isFixed:!0,isPlus:!1})=>{let f;t>=0?f=e.isPlus&&t!==0?"+":"":f="-";let n=Math.abs(t);return e.isFixed&&(n=Ye(n)),e.isPercentage?To(`${f}${n}%`):To(`${f}${a8()}${Ye(n*n9())}`)};function jM(t,e){const f=+new Date(e)-+new Date(t);return z5(f)}function u5(){function t(o){const[v,i]=o.split(":").map(Number);return v+i/60}function e(o){const v=Math.floor(o),i=o%1*60;return`${String(v).padStart(2,"0")}:${String(i).padStart(2,"0")}`}function f(o){const v=o.match(/([+-]?)(\d+):?(\d+)?/);if(!v)return 0;const i=v[1]==="-"?-1:1,P=parseInt(v[2],10),d=v[3]?parseInt(v[3],10):0;return i*(P+d/60)}const n=n8(),r=f(n);return o3.map(o=>{const v=t(o.open),i=t(o.close),P=(v+r+24)%24,d=(i+r+24)%24;return{name:o.name,open:e(P),close:e(d)}})}function b5(){const t=new Date,e=t.getUTCHours(),f=t.getUTCMinutes(),n=t.getUTCSeconds(),r=e*3600+f*60+n,s=o3.filter(({open:o,close:v})=>{const[i,P]=o.split(":").map(Number),[d,l]=v.split(":").map(Number),c=i*3600+P*60,u=d*3600+l*60;return c<u?r>=c&&r<u:r>=c||r<u});if(s.length>1){const v=Math.min(...s.map(({close:i})=>{const[P,d]=i.split(":").map(Number);return P*3600+d*60}))-r;return{activeMarkets:s.map(({name:i})=>i),overlapTime:v>0?Math.floor(v/60):0}}else{if(s.length===1)return{activeMarkets:s.map(({name:o})=>o),overlapTime:0};{const v=o3.map(({name:i,open:P})=>{const[d,l]=P.split(":").map(Number),c=d*3600+l*60,u=c>=r?c-r:86400-r+c;return{name:i,timeUntilOpenInSeconds:u}}).reduce((i,P)=>i.timeUntilOpenInSeconds<P.timeUntilOpenInSeconds?i:P);return{activeMarkets:[],nextMarket:v.name,timeUntilNextOpen:Math.floor(v.timeUntilOpenInSeconds/60),timeUntilNextOpenInSeconds:v.timeUntilOpenInSeconds}}}}function s8(t,e){return t>=1e3||t<=-1e3?ze(e,Ye(t/1e3,2)+"k",{repeat:3}):ze(e,Ye(t,2),{repeat:3})}function z5(t,e=!1){const f=Math.floor(t/864e5),n=Math.floor(t%(1e3*60*60*24)/(1e3*60*60)),r=Math.floor(t%(1e3*60*60)/(1e3*60)),s=Math.floor(t%(1e3*60)/1e3);if(e)return f>0?`${f} day${f>1?"s":""} ${n} hr${n>1?"s":""}`:n>0?`${n} hr${n>1?"s":""} ${r} min${r>1?"s":""}`:r>0?`${r} min${r>1?"s":""} ${s} sec${s>1?"s":""}`:`${s} sec`;{const o=[];return f>0&&o.push(`${f}d`),n>0&&o.push(`${n}h`),r>0&&o.push(`${r}m`),s>0&&o.push(`${s}s`),o.join(" ")}}function i3(t){const e=/^(.*?)(BTC|ETH|USDT|USD|USDC)$/,f=t.match(e);if(f){const n=f[1],r=f[2];return n===""||r===""?t:`${n}/${r}`}else return t}function r9(t){const e=["BTC","ETH","USDT","USD","EUR","GBP","JPY","CAD","CHF","USDC","CNH"];for(let f=1;f<t.length;f++){const n=t.substring(0,f),r=t.substring(f);if(e.includes(n)||e.includes(r))return`${n}/${r}`}return t}function Da(t,e){const n=r9(t).split("/")[e];if(n)return n.toLowerCase()}function wM(t,e){let f=[],n=new Date(e,t,1),r=new Date(e,t+1,0),s=r.getDate(),o=1,v;for(n.getDay()===1?v=7:n.getDay()===0?(o=new Date(e,t,0).getDate()-6+1,v=1):(o=new Date(e,t,0).getDate()+1-n.getDay()+1,v=7-n.getDay()+1,f.push({start:o,end:v}),o=v+1,v=v+7);o<=s;)if(f.push({start:o,end:v}),o=v+1,v=v+7,v=o===1&&v===8?1:v,v>s&&o<=s){v=v-s,f.push({start:o,end:v});break}return f.map(({start:i,end:P},d)=>{const l=+(i>P&&d===0);return Array.from({length:7},(c,u)=>{const z=new Date(e,t-l,i+u);return{date:z.getDate(),month:z.getMonth(),day:z.toLocaleString("en",{weekday:"long"})}})})}function gM(t,e,f){let n=new Date(t),r=new Date(e);n>r&&([n,r]=[r,n]);let s=[],o=new Date(n.getFullYear(),n.getMonth(),1),v=0;for(;o<=r;){let i=o.toLocaleString("en",{month:"long",year:"numeric"});f?s.push({month:o.getMonth(),year:o.getFullYear(),name:i,id:v}):s.push(i),v=v+1,o.setMonth(o.getMonth()+1)}return s}function DM(t,e,f){let n=new Date(t),r=new Date(e);n>r&&([n,r]=[r,n]);let s=[],o=n.getFullYear(),v=r.getFullYear(),i=0;for(let P=o;P<=v;P++)f?s.push({value:P,name:P.toString(),id:i}):s.push(P.toString()),i=i+1;return s}function LM(t,e){let r=new Date(t).getTime()-e*24*60*60*1e3;return new Date(r).toISOString().split(".")[0]+"Z"}function TM(t){function e(n,r){let s=[],o=new Date(r,n,1),v=new Date(r,n+1,0),i=v.getDate(),P=1,d;for(o.getDay()===1?d=7:o.getDay()===0?(P=new Date(r,n,0).getDate()-6+1,d=1):(P=new Date(r,n,0).getDate()+1-o.getDay()+1,d=7-o.getDay()+1,s.push({start:P,end:d}),P=d+1,d=d+7);P<=i;)if(s.push({start:P,end:d}),P=d+1,d=d+7,d=P===1&&d===8?1:d,d>i&&P<=i){d=d-i,s.push({start:P,end:d});break}return s.map(({start:l,end:c},u)=>{const z=+(l>c&&u===0);return Array.from({length:7},(b,x)=>{const H=new Date(r,n-z,l+x);return{date:H.getMonth()===n?H.getDate():0,day:H.toLocaleString("en",{weekday:"long"})}})})}let f=[];for(let n=0;n<12;n++)f.push(e(n,t));return f}function NM(t){const e=t.map(n=>new Date(n));return new Date(Math.min(...e.map(n=>n.getTime())))}const ZM={class:"doughnut-wrapper"},OM={class:"doughnut-wrapper__total"},AM={class:"doughnut-wrapper__total__value"},VM={__name:"DoughnutChart",props:{total:{type:Number,required:!0},data:{type:Object,required:!0},dataType:{type:String,required:!1},borderColor:{type:String,default:"transparent"},isMask:{type:Boolean,default:!1}},setup(t){_r.register(xT,O1,bc);const e=a.ref(0),f=t,n=a.ref({cutout:75,spacing:2,responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},plugins:{tooltip:{enabled:!1,position:"nearest",external:s},legend:!1}});function r(o,v){let i=document.querySelector(`#${o}-${f.dataType}`);return i||(i=document.createElement("div"),i.classList.add(o),i.setAttribute("id",`${o}-${f.dataType}`),v.canvas.parentNode.appendChild(i)),i}function s(o){const{chart:v,tooltip:i}=o,P=r("chart-tooltip",v);if(i.opacity===0){P.style.opacity="0";return}if(i.body){const x=i.title||[],H=i.body.map(L=>L.lines),p=x[0],X=H[0],m=f.data.labels.findIndex(L=>L===p),h=f.data.datasets[0].backgroundColor[m],w=f.data.totals[m],j=document.createElement("div");for(j.classList.add("chart-tooltip-info"),j.innerHTML=`<div class="chart-tooltip-info__top">
48
+ additionally showing the growth/fall of your balance.`},showBTC:{type:Boolean,default:!0},BTC:{type:Number,default:0},USDT:{type:Number,default:0},delta:{type:Number,default:0},balanceChartData:{type:Array,default:[]},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},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 f=e,n=t,r=a.reactive({USDT:0,BTC:0,delta:0}),s=a.reactive({currentProfit:0}),o=a.ref(0),v=a.ref(!1),i=a.ref(!1),P=()=>{f("switchVisibility")},d=()=>{v.value=!0},l=()=>{v.value=!1},c=()=>{i.value=!0},u=()=>{i.value=!1},z=a.computed(()=>({currentProfit:n.currentProfit,profit:n.profit,drawdown:n.drawdown})),b=a.computed(()=>`${44+(String(Ye(n.USDT,2)).length-1)*16}px`);return a.watch(()=>n.USDT,x=>{Ln.to(r,{duration:1.5,USDT:Number(x)||0,BTC:n.BTC,delta:n.delta})},{immediate:!0}),a.watch(()=>n.delta,x=>{Ln.to(r,{delta:Number(x)||0})},{deep:!0}),a.watch(()=>z,x=>{o.value=Ln.to(s,{duration:1.5,currentProfit:n.currentProfit})},{immediate:!0,deep:!0}),(x,H)=>(a.openBlock(),a.createElementBlock("div",MN,[a.createElementVNode("div",WN,[a.createElementVNode("div",qN,[a.createElementVNode("div",kN,[H[2]||(H[2]=a.createElementVNode("div",{class:"balance-part__title"},"Balance",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(t.tooltip),1)]),_:1})]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",{key:0,class:"balance-part__visibility-switcher",onClick:P,onMouseover:d,onMouseleave:l},[a.withDirectives(a.createVNode(a.unref(ye),{icon:"eye"},null,512),[[a.vShow,t.isHidden]]),a.withDirectives(a.createVNode(a.unref(ye),{icon:"eye-slash"},null,512),[[a.vShow,!t.isHidden]]),v.value?(a.openBlock(),a.createElementBlock("div",GN," Enable or disable Private Mode for a more secure experience. ")):a.createCommentVNode("",!0)],32))]),a.createElementVNode("div",RN,[a.createElementVNode("div",BN,[a.createElementVNode("div",{class:"balance-part__content__count",style:a.normalizeStyle({minWidth:b.value})},a.toDisplayString(a.unref(ze)(t.isMaskBalance,a.unref(Ve)(r.USDT),{prefix:"$"})),5),t.delta?(a.openBlock(),a.createBlock(a.unref(_o),{key:0,class:"balance-part__content__chips","is-hidden":t.isMaskBalance,percentage:"",delta:r.delta},null,8,["is-hidden","delta"])):a.createCommentVNode("",!0)]),t.showBTC?(a.openBlock(),a.createElementBlock("div",YN," = "+a.toDisplayString(a.unref(ze)(t.isMaskBalance,r.BTC))+" BTC ",1)):a.createCommentVNode("",!0)]),t.isShare?(a.openBlock(),a.createBlock(a.unref(k1),{key:0,class:"balance-part__chart balance-part__chart--share",data:t.balanceChartData,gradient:{height:500,startColor:"rgba(86, 182, 131, 0.1)",endColor:"rgba(86, 182, 131, 0)"}},null,8,["data"])):(a.openBlock(),a.createBlock(a.unref(k1),{key:1,class:"balance-part__chart",data:t.balanceChartData},null,8,["data"]))]),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",FN)),t.isShare?a.createCommentVNode("",!0):(a.openBlock(),a.createElementBlock("div",CN,[a.createElementVNode("div",EN,[a.createElementVNode("div",IN,[H[4]||(H[4]=a.createElementVNode("div",{class:"personal-target-part__title"}," Personal target ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>H[3]||(H[3]=[a.createTextVNode(" In this widget, set your desired balance growth target in $ or % for a specific period. It will display your PNL relative to the goal, helping you know when to stop or pay closer attention. ")])),_:1})]),a.createElementVNode("div",{class:"balance-part__modal-switcher",onClick:H[0]||(H[0]=p=>f("switchModal")),onMouseover:c,onMouseleave:u},[a.createVNode(a.unref(ye),{icon:"settings"}),i.value?(a.openBlock(),a.createElementBlock("div",QN," Click to configure goals in the Personal Target widget. ")):a.createCommentVNode("",!0)],32)]),a.createElementVNode("div",UN,[a.createElementVNode("div",JN,a.toDisplayString(a.unref(ze)(t.isMaskPersonalTarget,a.unref(Ve)(s.currentProfit,{isPercentage:t.isPercentage,isFixed:!0}),{prefix:"$",repeat:5})),1),a.createElementVNode("div",KN," / "+a.toDisplayString(a.unref(ze)(t.isMaskPersonalTarget,a.unref(Ve)(t.profit,{isPercentage:t.isPercentage,isFixed:!0}))),1)]),(a.openBlock(),a.createBlock(a.unref(m0),{key:o.value,"current-profit":t.currentProfit,"is-hidden":t.isMaskPersonalTarget,drawdown:t.drawdown,profit:t.profit,"is-percentage":t.isPercentage},null,8,["current-profit","is-hidden","drawdown","profit","is-percentage"]))])),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:2,absolute:"","api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:3,onRefresh:H[1]||(H[1]=p=>f("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-fd99a9e2"]]),_N={class:"calendar-widget"},$N={class:"calendar-widget__calendar"},eZ={class:"calendar-widget__top"},tZ={class:"calendar-widget__title-wrapper"},fZ={class:"stat-calendar"},nZ={class:"stat-calendar__week-days"},rZ={key:0,class:"stat-calendar__row-wrapper"},aZ={class:"stat-calendar__row"},sZ=["onClick"],oZ={class:"calendar-widget__day__title-wrapper"},vZ={class:"calendar-widget__day__title"},iZ={class:"calendar-widget__day__actions"},PZ={class:"calendar-widget__day__content"},dZ={class:"calendar-widget__point"},lZ={class:"calendar-widget__point__title"},cZ={class:"calendar-widget__day__trades"},uZ={class:"calendar-widget__point"},bZ={class:"calendar-widget__point__title"},zZ={__name:"CalendarWidget",props:{rows:Array,dailyStatData:Object,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isPendingDaily:{type:Boolean,default:!1},minDate:Date,currentDate:{type:Date,default:new Date},maxDate:{type:Date,default:Date()},isCurrentDate:Function,isCurrentDay:Function,hasShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["setNewDate","chooseMonth","refresh","getDetails","share"],setup(t,{emit:e}){const f=["Mo","Tu","We","Th","Fr","Sa","Su"],n=a.ref(null),r=a.ref(null),s=e,o=t,v=d=>{n.value=d.year,r.value=d.month,s("chooseMonth",d)};a.nextTick(()=>{const d=new Date;n.value=d.getFullYear(),r.value=d.getMonth()});const i=a.computed(()=>[{title:"Total trades",value:o.dailyStatData&&o.dailyStatData.trades_total_count||0},{title:"Winrate",value:Ve(o.dailyStatData&&o.dailyStatData.win_rate||0,{isPercentage:!0,isFixed:!0}),class:o.dailyStatData&&o.dailyStatData.win_rate>=50?"-win":"-loss"},{title:"Return",value:Ve(o.dailyStatData&&o.dailyStatData.return_total||0),class:o.dailyStatData&&o.dailyStatData.return_total>=0?"-win":"-loss"},{title:"Return on winners",value:Ve(o.dailyStatData&&o.dailyStatData.return_win||0)},{title:"Return on losers",value:Ve(o.dailyStatData&&o.dailyStatData.return_lose||0)},{title:"Commission",value:Ve(o.dailyStatData&&o.dailyStatData.commission||0)}]),P=a.computed(()=>[{title:"Win trades",value:o.dailyStatData&&o.dailyStatData.trades_win_count||0,isPositive:!0},{title:"Loss trades",value:-(o.dailyStatData&&o.dailyStatData.trades_lose_count)||0,isNegative:!1}]);return(d,l)=>(a.openBlock(),a.createElementBlock("div",_N,[a.createElementVNode("div",$N,[a.createElementVNode("div",eZ,[a.createElementVNode("div",tZ,[l[6]||(l[6]=a.createElementVNode("div",{class:"calendar-widget__title"},"Calendar",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>l[5]||(l[5]=[a.createTextVNode("A widget that displays the performance of your trades in a calendar format. Here you can see profitable and unprofitable days with detailed statistics for each day. ")])),_:1})]),t.currentDate&&t.minDate?(a.openBlock(),a.createBlock(a.unref(y0),{key:0,"current-date":t.currentDate||new Date,"min-date":t.minDate,"max-date":t.maxDate,onOnChange:v,year:n.value,"onUpdate:year":l[0]||(l[0]=c=>n.value=c),month:r.value,"onUpdate:month":l[1]||(l[1]=c=>r.value=c)},null,8,["current-date","min-date","max-date","year","month"])):a.createCommentVNode("",!0)]),a.createElementVNode("div",fZ,[a.createElementVNode("div",nZ,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(f,(c,u)=>a.createElementVNode("div",{class:a.normalizeClass(["stat-calendar__week-day",{"-current":t.isCurrentDay(u)}])},a.toDisplayString(c),3)),64))]),t.rows?(a.openBlock(),a.createElementBlock("div",rZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.rows,c=>(a.openBlock(),a.createElementBlock("div",aZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(c,u=>(a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass(["stat-calendar__day",{"-unavailable":u.unavailable,"-empty":!u.date,"-current":t.isCurrentDate(u.date),"-positive":u.win,"-negative":u.win===!1}]),onClick:z=>s("setNewDate",u.date)},a.toDisplayString(u.date?u.date:""),11,sZ))),256))]))),256))])):a.createCommentVNode("",!0)])]),l[9]||(l[9]=a.createElementVNode("div",{class:"calendar-widget__divider"},null,-1)),t.dailyStatData&&!t.dailyStatData.isNull?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["calendar-widget__day",{"-pending":t.isPendingDaily}])},[t.isPendingDaily?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[],64)):(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createElementVNode("div",oZ,[a.createElementVNode("div",vZ,a.toDisplayString(t.currentDate.getDate()+" "+t.currentDate.toLocaleString("en-us",{month:"long"})),1),a.createElementVNode("div",iZ,[a.createVNode(ye,{icon:"preview",onClick:l[2]||(l[2]=c=>s("getDetails"))}),t.hasShare?(a.openBlock(),a.createBlock(ye,{key:0,icon:"share",onClick:l[3]||(l[3]=c=>s("share"))})):a.createCommentVNode("",!0)])]),a.createElementVNode("div",PZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(i.value,c=>(a.openBlock(),a.createElementBlock("div",dZ,[a.createElementVNode("div",lZ,a.toDisplayString(c.title),1),l[7]||(l[7]=a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["calendar-widget__point__value",c.class?c.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,c.value,{repeat:5})),3)]))),256)),a.createVNode(a.unref(zl),{isHidden:t.isMask,long:t.dailyStatData?.long_count,short:t.dailyStatData?.short_count},null,8,["isHidden","long","short"]),a.createElementVNode("div",cZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(P.value,c=>(a.openBlock(),a.createElementBlock("div",uZ,[a.createElementVNode("div",bZ,a.toDisplayString(c.title),1),l[8]||(l[8]=a.createElementVNode("div",{class:"calendar-widget__point__line"},null,-1)),a.createVNode(a.unref(_o),{isHidden:t.isMask,"is-positive":c.isPositive,"is-negative":c.isNegative,delta:c.value},null,8,["isHidden","is-positive","is-negative","delta"])]))),256))])])],64))],2)):(a.openBlock(),a.createBlock(a.unref(Wt),{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,class:"-empty"},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:l[4]||(l[4]=c=>s("refresh"))})):a.createCommentVNode("",!0)]))}},xZ=Xe(zZ,[["__scopeId","data-v-2963ae8e"]]),HZ={class:"commission-widget"},pZ={class:"commission-widget__content"},XZ={class:"commission-widget__top"},hZ={class:"commission-widget__title-wrapper"},yZ={class:"commission-widget__info"},mZ={class:"commission-widget__total-wrapper"},jZ={class:"commission-widget__total-wrapper__total"},wZ={class:"commission-widget__total-wrapper__value"},gZ={class:"commission-widget__points"},DZ={class:"commission-widget__point"},LZ={class:"commission-widget__point__title"},TZ=Xe({__name:"CommissionsFeesWidget",props:{commissionData:Object,isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=e,n=t,r=a.reactive({commission:0}),s=a.computed(()=>n.commissionData&&n.commissionData.commission||0),o=a.computed(()=>n.commissionData&&n.commissionData.pnl||0),v=a.computed(()=>[{title:"AVG fees per trade",value:`${Ve(n.commissionData&&n.commissionData.fees_per_trade||0)}`},{title:"PNL / Commission",value:o.value&&s.value?`${Ve(o.value)}/${Ve(s.value)}`:`${Ve(0)}`},{title:"AVG fees per day",value:`${Ve(n.commissionData&&n.commissionData.fees_per_day||0)}`},{title:"Funding",value:`${Ve(n.commissionData&&n.commissionData.funding||0)}`}]);return a.watch(s,i=>{Ln.to(r,{duration:1.5,commission:i})},{immediate:!0}),(i,P)=>(a.openBlock(),a.createElementBlock("div",HZ,[a.createElementVNode("div",pZ,[a.createElementVNode("div",XZ,[a.createElementVNode("div",hZ,[P[2]||(P[2]=a.createElementVNode("div",{class:"commission-widget__title"}," Commissions and Fees ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>P[1]||(P[1]=[a.createTextVNode("This widget helps traders finally understand how much money they spent on commissions and funding. ")])),_:1})])]),a.createElementVNode("div",yZ,[a.createElementVNode("div",mZ,[P[3]||(P[3]=a.createElementVNode("div",{class:"commission-widget__total-wrapper__title"}," Total ",-1)),a.createElementVNode("div",jZ,[a.createElementVNode("div",wZ,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(r.commission),{repeat:5})),1)])]),a.createElementVNode("div",gZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(v.value,(d,l)=>(a.openBlock(),a.createElementBlock("div",DZ,[a.createElementVNode("div",LZ,a.toDisplayString(d.title),1),P[4]||(P[4]=a.createElementVNode("div",{class:"commission-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["commission-widget__point__value",d.class?d.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,d.value,{repeat:5})),3)]))),256))])])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:P[0]||(P[0]=d=>f("refresh"))})):a.createCommentVNode("",!0),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:1,absolute:"","api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-45b0db6b"]]),NZ={class:"chart-wrapper"},ZZ=["id","onMouseover","onMouseleave"],vo={__name:"BarChart",props:{data:{type:Object,required:!0},dataType:{type:String,required:!1},borderColor:{type:String,default:"#439f7f"},ticksCallback:{type:Function,default:t=>t},yTicksCallback:{type:Function,default:t=>t},altLabels:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1}},setup(t){_r.register(A1,V1,OT,rN,O1,bc);const e=a.inject("darkMode"),f=a.ref(0);a.ref(!1);const n=a.ref(null),r=t,s=a.ref(null),o=a.ref([]),v=u=>{n.value=u},i=u=>{n.value=null},P=a.ref({responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},interaction:{mode:"index",intersect:!1},elements:{line:{tension:.05,borderWidth:3,borderColor:r.borderColor,fill:"start",spanGaps:!0},point:{pointStyle:!1}},plugins:{tooltip:{enabled:!1,position:"nearest",external:c},legend:!1},scales:{x:{grid:{display:!1},ticks:{callback:function(u){return r.ticksCallback(u,r.data.labels)}}},y:{ticks:{callback:function(u){return r.yTicksCallback(u,r.isMask)}},grid:{color:e?.value?"#2D2D2D":"#EDEDED",drawTicks:!1},border:{display:!1,dash:[4,4],dashOffset:1}}}}),d=()=>{const u=s.value?.chart;if(!u)return;const z=u.scales.x;z&&(o.value=r.data.labels.map((b,x)=>{const H=z.getPixelForTick(x),p=document.getElementById(`label-${x}`),X=p?p.clientWidth:0;return H-X/2}))};function l(u,z){let b=document.querySelector(`#${u}-${r.dataType}`);return b||(b=document.createElement("div"),b.classList.add(u),b.setAttribute("id",`${u}-${r.dataType}`),z.canvas.parentNode.appendChild(b)),b}function c(u){const{chart:z,tooltip:b}=u,x=l("chart-tooltip",z);if(b.opacity===0){x.style.opacity="0";return}if(b.body){b.title,b.body.map(L=>L.lines);const j=document.createElement("div");for(j.classList.add("chart-tooltip-middle"),j.innerHTML=`${ze(r.isMask,ga(`${b.dataPoints[0].raw>0?"":"-"}${a8()}${Math.abs(Ye(b.dataPoints[0].raw))}`),{repeat:3})}`;x.firstChild;)x.firstChild.remove();x.appendChild(j)}const{offsetLeft:H,offsetTop:p,clientWidth:X}=z.canvas;let m=H+b.caretX;const h=p+b.caretY,w=x.clientWidth;m+w>X&&(m-=w),x.style.opacity="1",x.style.left=m+"px",x.style.top=h+"px"}return a.watch(()=>r.isMask,()=>{f.value+=1},{immediate:!0}),a.watch(()=>r.data,()=>{r.altLabels&&setTimeout(()=>{d()},0)},{deep:!0}),a.onMounted(()=>{r.altLabels&&a.nextTick(()=>{d(),window.addEventListener("resize",d)})}),a.onUnmounted(()=>{r.altLabels&&window.removeEventListener("resize",d)}),(u,z)=>(a.openBlock(),a.createElementBlock("div",NZ,[(a.openBlock(),a.createBlock(a.unref(DN),{ref_key:"barChart",ref:s,class:"chart-container",key:f.value,data:t.data,options:P.value},null,8,["data","options"])),t.altLabels?(a.openBlock(!0),a.createElementBlock(a.Fragment,{key:0},a.renderList(t.data.labels,(b,x)=>(a.openBlock(),a.createElementBlock("div",{class:"chart-wrapper__labels",id:`label-${x}`,style:a.normalizeStyle({left:`${o.value[x]}px`}),onMouseover:H=>v(x),onMouseleave:H=>i()},[a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,0)}`)},null,2),a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,1)}`)},null,2)],44,ZZ))),256)):a.createCommentVNode("",!0),n.value!==null?(a.openBlock(),a.createElementBlock("div",{key:1,class:"chart-wrapper__label-tooltip",style:a.normalizeStyle(t.data.labels.length===n.value+1?{right:"0px"}:{left:`${o.value[n.value]-25}px`})},a.toDisplayString(a.unref(r9)(r.data.labels[n.value])),5)):a.createCommentVNode("",!0)]))}},OZ={class:"instrument-widget"},AZ={class:"instrument-widget__top"},VZ={class:"instrument-widget__title-wrapper"},MZ={key:0,class:""},WZ={key:1,class:"instrument-widget__grid-wrapper"},qZ={class:"instrument-widget__grid"},kZ={class:"instrument-widget__card"},GZ={class:"instrument-widget__card__top"},RZ={class:"instrument-widget__card__pair"},BZ={class:"instrument-widget__card__pair__icons"},YZ={class:"instrument-widget__card__pair__title"},FZ={class:"instrument-widget__card__trades"},CZ=Xe({__name:"InstrumentWidget",props:{results:Object,isMask:Boolean,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=[{id:0,name:"Overall"},{id:1,name:"Long"},{id:2,name:"Short"}],n=t,r=e,s=a.ref(!1),o=a.ref({id:0,name:"Overall"}),v=a.computed(()=>n.results&&Object.values(n.results).length?P(n.results[o.value.name.toLowerCase()]):[]),i=a.computed(()=>{const c=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total*n9()),u=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total>0?"#56B683":"#F18169");return{labels:Object.keys(v.value).slice(0,10),datasets:[{data:c,backgroundColor:u,borderRadius:4}]}}),P=c=>Object.fromEntries(Object.entries(c).sort(([,u],[,z])=>z.net_pnl_total-u.net_pnl_total)),d=(c,u)=>"",l=()=>{s.value=!s.value};return(c,u)=>(a.openBlock(),a.createElementBlock("div",OZ,[a.createElementVNode("div",AZ,[a.createElementVNode("div",VZ,[u[3]||(u[3]=a.createElementVNode("div",{class:"instrument-widget__title"}," Results by Instrument ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>u[2]||(u[2]=[a.createTextVNode("Check your performance across different trading instruments. Use the Overall, Long, or Short filters to view detailed results. ")])),_:1})]),s.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"instrument-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:l})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"instrument-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:l}))]),a.createElementVNode("div",{class:a.normalizeClass(["instrument-widget__content",{"-chart-active":s.value}])},[a.createVNode(a.unref(Ev),{class:"instrument-widget__switcher",modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=z=>o.value=z),options:f},null,8,["modelValue"]),v.value&&Object.values(v.value).length?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[s.value?(a.openBlock(),a.createElementBlock("div",MZ,[a.createVNode(vo,{class:"instrument-widget__bar",data:i.value,ticksCallback:d,"y-ticks-callback":a.unref(s8),"is-mask":t.isMask,"data-type":"instrument","alt-labels":""},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("div",WZ,[a.createElementVNode("div",qZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(v.value,(z,b,x)=>(a.openBlock(),a.createElementBlock("div",kZ,[a.createElementVNode("div",GZ,[a.createElementVNode("div",RZ,[a.createElementVNode("div",BZ,[a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,0)}`)},null,2),a.createElementVNode("div",{class:a.normalizeClass(`currency-flag currency-flag-${a.unref(Da)(b,1)}`)},null,2)]),a.createElementVNode("div",YZ,a.toDisplayString(a.unref(r9)(b)),1)]),a.createElementVNode("div",FZ,a.toDisplayString(a.unref(ze)(t.isMask,z.trades_count,{repeat:3})),1)]),a.createElementVNode("div",{class:a.normalizeClass(["instrument-widget__card__net-pnl",{"-positive":z.net_pnl_total>0,"-negative":z.net_pnl_total<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(z.net_pnl_total,{isFixed:!0,isPlus:!0}),{repeat:3})),3)]))),256))])]))],64)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"]))],2),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:u[1]||(u[1]=z=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-f0fa7466"]]),EZ={class:"size-widget"},IZ={class:"size-widget__top"},QZ={class:"size-widget__title-wrapper"},UZ={key:0},JZ={key:1,class:"size-widget__grid"},KZ={class:"size-widget__card"},SZ={class:"size-widget__card__top"},_Z={class:"size-widget__card__title"},$Z={class:"size-widget__card__trades"},eO={class:"size-widget__card__bottom"},tO=Xe({__name:"SizeWidget",props:{results:Object,isMask:Boolean,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=t,n=e,r=a.ref(!1),s=a.computed(()=>{const i=f.results.slice(0,10).map(l=>l.net_pnl*n9()),P=f.results.slice(0,10).map(l=>l.net_pnl>0?"#56B683":"#F18169");return{labels:f.results.slice(0,10).map(l=>l.amount),datasets:[{data:i,backgroundColor:P,borderRadius:4}]}}),o=(i,P)=>P[i],v=()=>{r.value=!r.value};return(i,P)=>(a.openBlock(),a.createElementBlock("div",EZ,[a.createElementVNode("div",IZ,[a.createElementVNode("div",QZ,[P[2]||(P[2]=a.createElementVNode("div",{class:"size-widget__title"},"Result by position size",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>P[1]||(P[1]=[a.createTextVNode("Compare your profits or losses based on the size of your positions. Understand how position size influences your trading outcomes. ")])),_:1})]),r.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"size-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:v})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"size-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:v}))]),t.results&&t.results.length?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["size-widget__content",{"-chart-active":r.value}])},[r.value?(a.openBlock(),a.createElementBlock("div",UZ,[a.createVNode(vo,{class:"size-widget__bar",data:s.value,"ticks-callback":o,"y-ticks-callback":a.unref(s8),"is-mask":t.isMask,"data-type":"size"},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("div",JZ,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.results,d=>(a.openBlock(),a.createElementBlock("div",KZ,[a.createElementVNode("div",SZ,[a.createElementVNode("div",_Z,a.toDisplayString(d.amount)+" lots ",1),a.createElementVNode("div",$Z,a.toDisplayString(a.unref(ze)(t.isMask,d.total_count,{repeat:3}))+" trades ",1)]),a.createElementVNode("div",eO,[a.createElementVNode("div",{class:a.normalizeClass(["size-widget__card__net-pnl",{"-positive":d.net_pnl>0,"-negative":d.net_pnl<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(d.net_pnl,{isPlus:!0,isFixed:!0}),{repeat:3})),3)])]))),256))]))],2)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:P[0]||(P[0]=d=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-8568c6bc"]]),fO={class:"performance-widget"},nO={class:"performance-widget__top"},rO={class:"performance-widget__title-wrapper"},aO=Xe({__name:"PerformanceWidget",props:{apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},performanceChartData:{type:Array,default:[]},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){a.ref("week");const f=t,n=e,r=s=>ze(f.isMask,Ye(s,2)+"%",{repeat:3});return(s,o)=>(a.openBlock(),a.createElementBlock("div",fO,[a.createElementVNode("div",nO,[a.createElementVNode("div",rO,[o[2]||(o[2]=a.createElementVNode("div",{class:"performance-widget__title"}," Performance (cumulative) ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>o[1]||(o[1]=[a.createTextVNode("The linear graphics widget displays the profit as a percentage of the deposit. ")])),_:1})])]),a.createVNode(a.unref(q1),{data:t.performanceChartData,"data-type":"performanceChartData","ticks-callback":r,isMask:t.isMask},null,8,["data","isMask"]),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:0,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:1,onRefresh:o[0]||(o[0]=v=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-ce06f1df"]]),sO={class:"return-widget"},oO={class:"return-widget__content"},vO={class:"return-widget__top"},iO={class:"return-widget__title-wrapper"},PO={class:"return-widget__info"},dO={class:"return-widget__total-wrapper"},lO={class:"return-widget__total-wrapper__total"},cO={class:"return-widget__points"},uO={class:"return-widget__point"},bO={class:"return-widget__point__title"},zO=["innerHTML"],xO=Xe({__name:"ReturnWidget",props:{apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},totalReturn:{type:Number,default:0},win:{type:Number,default:0},lose:{type:Number,default:0},returnPeriod:{type:Number,default:0},profitFactor:{type:Number,default:0},daily:{type:Number,default:0},changeRate:{type:Number,default:0},isShare:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=e,n=t,r=a.computed(()=>`${44+(String(Ye(n.returnPeriod,2)).length-1)*16}px`),s=a.reactive({returnPeriod:0,changeRate:0}),o=a.computed(()=>[{title:"Average return per trade",value:n.totalReturn,options:{isPlus:!0,isFixed:!0},class:n.totalReturn===0?"":n.totalReturn>0?"-win":"-loss"},{title:"Daily return",value:n.daily,options:{isPlus:!0,isFixed:!0},class:n.daily===0?"":n.daily>0?"-win":"-loss"},{title:"Return on winners",value:n.win,class:"-win"},{title:"Return on losers",value:n.lose,class:"-loss"}]),v=a.computed(()=>n.returnPeriod>0),i=a.computed(()=>n.returnPeriod<0),P=a.computed(()=>n.profitFactor>1?"-positive":"-negative"),d=a.computed(()=>n.profitFactor>0?`Your profit factor is ${ze(n.isMask,Ye(n.profitFactor),{repeat:5})}. <br /> You earn ${ze(n.isMask,Ve(n.profitFactor),{repeat:5,prefix:"$"})} on every ${ze(n.isMask,"$1",{repeat:5,prefix:"$"})} loss.`:`Your profit factor is ${ze(n.isMask,Ye(n.profitFactor),{repeat:5})}. <br/> You loss ${ze(n.isMask,Ve(Math.abs(n.profitFactor)),{repeat:5,prefix:"$"})} on every ${ze(n.isMask,"$1",{repeat:5,prefix:"$"})} earn. `);return a.watch(()=>n.returnPeriod,l=>{Ln.to(s,{duration:1.5,returnPeriod:l,changeRate:n.changeRate})},{immediate:!0}),(l,c)=>(a.openBlock(),a.createElementBlock("div",sO,[a.createElementVNode("div",oO,[a.createElementVNode("div",vO,[a.createElementVNode("div",iO,[c[2]||(c[2]=a.createElementVNode("div",{class:"return-widget__title"},"Return",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>c[1]||(c[1]=[a.createTextVNode("This widget displays an increase in NET profit in dollars and percentage relative to the deposit for the specified period you have chosen. ")])),_:1})])]),a.createElementVNode("div",PO,[a.createElementVNode("div",dO,[c[3]||(c[3]=a.createElementVNode("div",{class:"return-widget__total-wrapper__title"},"Total",-1)),a.createElementVNode("div",lO,[a.createElementVNode("div",{class:a.normalizeClass(["return-widget__total-wrapper__value",{"-positive":v.value,"-negative":i.value}]),style:a.normalizeStyle({minWidth:r.value})},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(s.returnPeriod,{isPlus:!0,isFixed:!0}),{repeat:5})),7),n.changeRate?(a.openBlock(),a.createBlock(a.unref(_o),{key:0,percentage:"",class:"return-widget__total-wrapper__chips",isHidden:t.isMask,delta:s.changeRate},null,8,["isHidden","delta"])):a.createCommentVNode("",!0)])]),a.createElementVNode("div",cO,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(o.value,u=>(a.openBlock(),a.createElementBlock("div",uO,[a.createElementVNode("div",bO,a.toDisplayString(u.title),1),c[4]||(c[4]=a.createElementVNode("div",{class:"return-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["return-widget__point__value",u.class?u.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(u.value,u.options),{repeat:5,prefix:"$"})),3)]))),256))])])]),t.profitFactor?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["return-widget__profit",P.value])},[a.createVNode(a.unref(ye),{icon:"tip",class:"return-widget__profit__icon"}),a.createElementVNode("div",{class:"return-widget__profit__text",innerHTML:d.value},null,8,zO)],2)):a.createCommentVNode("",!0),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:c[0]||(c[0]=u=>f("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-6389200a"]]),HO={class:"top-positions-widget"},pO={class:"top-positions-widget__top"},XO={class:"top-positions-widget__title-wrapper"},hO={key:0,class:"top-positions-widget__returns"},yO=["onClick"],mO={class:"top-positions-widget__return__left"},jO={class:"top-positions-widget__return__pair"},wO={class:"top-positions-widget__return__right"},gO={class:"top-positions-widget__return__pnl"},DO=Xe({__name:"TopPositionsWidget",props:{topPositions:{type:Array,default:[]},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh","onPairClick"],setup(t,{emit:e}){a.ref("week");const f=e;return(n,r)=>(a.openBlock(),a.createElementBlock("div",HO,[a.createElementVNode("div",pO,[a.createElementVNode("div",XO,[r[2]||(r[2]=a.createElementVNode("div",{class:"top-positions-widget__title"},"Top Positions",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>r[1]||(r[1]=[a.createTextVNode("Helps you find the top profitable positions. We calculate only net PNL, taking into account commission and funding. ")])),_:1})])]),t.topPositions&&t.topPositions.length?(a.openBlock(),a.createElementBlock("div",hO,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.topPositions,s=>(a.openBlock(),a.createElementBlock("div",{class:"top-positions-widget__return",onClick:o=>f("onPairClick",s)},[a.createElementVNode("div",mO,[r[3]||(r[3]=a.createElementVNode("div",{class:"top-positions-widget__return__line"},null,-1)),a.createElementVNode("div",jO,[a.createTextVNode(a.toDisplayString(a.unref(r9)(s.pair))+" ",1),a.createVNode(a.unref(ye),{icon:"chevron-right-small"})])]),a.createElementVNode("div",wO,[a.createElementVNode("div",gO,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(s.pnl,{isFixed:!0,isPlus:!0},{repeat:5}))),1),a.createElementVNode("div",{class:a.normalizeClass(["top-positions-widget__return__roi",s.roi<0?"-negative":"-positive"])},[a.createVNode(a.unref(ye),{icon:"bxs_up-arrow"}),a.createElementVNode("span",null,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(s.roi,{isPercentage:!0,isFixed:!0},{repeat:2}))),1)],2)])],8,yO))),256))])):(a.openBlock(),a.createBlock(a.unref(Wt),{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,title:"No more pair",subtitle:"No data available for the specified period",icon:"coins-add"},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:r[0]||(r[0]=s=>f("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-db63a92f"]]),LO={class:"trade-widget"},TO={class:"trade-widget__content"},NO={class:"trade-widget__top"},ZO={class:"trade-widget__title-wrapper"},OO={class:"trade-widget__info"},AO={class:"trade-widget__total-wrapper"},VO={class:"trade-widget__total-wrapper__total"},MO={class:"trade-widget__total-wrapper__value"},WO={class:"trade-widget__points"},qO={class:"trade-widget__point"},kO={class:"trade-widget__point__title"},GO=Xe({__name:"TradePerformanceWidget",props:{totalTrades:Number,minDate:Date,tradePoints:Array,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isMask:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=a.reactive({totalTrades:0}),n=e,r=t;return a.watch(()=>r.totalTrades,s=>{Ln.to(f,{duration:1.5,totalTrades:s})},{immediate:!0}),(s,o)=>(a.openBlock(),a.createElementBlock("div",LO,[a.createElementVNode("div",TO,[a.createElementVNode("div",NO,[a.createElementVNode("div",ZO,[o[2]||(o[2]=a.createElementVNode("div",{class:"trade-widget__title"},"Trades Performance",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>o[1]||(o[1]=[a.createTextVNode("It displays the number of profitable and unprofitable positions. This widget is very useful for understanding your trading opportunities. ")])),_:1})])]),a.createElementVNode("div",OO,[a.createElementVNode("div",AO,[o[3]||(o[3]=a.createElementVNode("div",{class:"trade-widget__total-wrapper__title"},"Total",-1)),a.createElementVNode("div",VO,[a.createElementVNode("div",MO,a.toDisplayString(a.unref(ze)(t.isMask,Math.floor(f.totalTrades),{repeat:5})),1)])]),a.createElementVNode("div",WO,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.tradePoints,v=>(a.openBlock(),a.createElementBlock("div",qO,[a.createElementVNode("div",kO,a.toDisplayString(v.title),1),o[4]||(o[4]=a.createElementVNode("div",{class:"trade-widget__point__line"},null,-1)),a.createElementVNode("div",{class:a.normalizeClass(["trade-widget__point__value",v.class?v.class:""])},a.toDisplayString(a.unref(ze)(t.isMask,v.value,{repeat:5})),3)]))),256))])])]),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:0,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:1,onRefresh:o[0]||(o[0]=v=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-a51215ad"]]),RO={class:"winrate-widget"},BO={class:"winrate-widget__winrate"},YO={class:"winrate-widget__title-wrapper"},FO={class:"winrate-widget__chart"},CO={class:"winrate-widget__data"},EO={class:"winrate-widget__data_value"},IO={class:"winrate-widget__average-rr"},QO={class:"winrate-widget__title-wrapper"},UO=Xe({__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},apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=e;return(n,r)=>(a.openBlock(),a.createElementBlock("div",RO,[a.createElementVNode("div",BO,[a.createElementVNode("div",YO,[r[2]||(r[2]=a.createElementVNode("div",{class:"winrate-widget__title"},"Winrate",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>r[1]||(r[1]=[a.createTextVNode("Displays the percentage of your successful positions. ")])),_:1})]),a.createElementVNode("div",FO,[a.renderSlot(n.$slots,"roundSlider",{},void 0,!0),a.createElementVNode("div",CO,[a.createElementVNode("div",EO,a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ye)(t.winrate,2)))+"% ",1),r[3]||(r[3]=a.createElementVNode("div",{class:"winrate-widget__data_title"},"Winrate",-1))])])]),a.createElementVNode("div",IO,[a.createElementVNode("div",QO,[r[5]||(r[5]=a.createElementVNode("div",{class:"winrate-widget__title"},"Average RR",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>r[4]||(r[4]=[a.createTextVNode("Risk Reward, defines the ratio of potential profit to loss you can get. ")])),_:1})]),a.createVNode(a.unref(x5),{avg:t.averageRR,min:t.minRR,max:t.maxRR,isMask:t.isMask},null,8,["avg","min","max","isMask"])]),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:r[0]||(r[0]=s=>f("refresh"))})):a.createCommentVNode("",!0),t.apiNoConnected||t.apiInitialization?(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-9a6939cb"]]),JO={class:"oh-widget"},KO={class:"oh-widget__top"},SO={class:"oh-widget__title-wrapper"},_O={key:0},$O={key:1,class:"oh-widget__table-wrapper"},eA={class:"oh-widget__list"},tA={class:"oh-widget__list__body"},fA={class:"oh-widget__list__point"},nA={class:"oh-widget__list__subpoint"},rA={class:"oh-widget__list__subpoint"},aA=Xe({__name:"OpenHourWidget",props:{results:Object,isMask:Boolean,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=[{id:0,name:"Asia",key:"asia_session"},{id:1,name:"London",key:"london_session"},{id:2,name:"NY",key:"new_york_session"}],n=t,r=e,s=a.ref(!1),o=a.ref({id:0,name:"Asia",key:"asia_session"}),v=a.computed(()=>n.results?n.results[o.value.key]:{}),i=a.computed(()=>{const c=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total*n9()),u=Object.values(v.value).slice(0,10).map(z=>z.net_pnl_total>0?"#56B683":"#F18169");return{labels:Object.keys(v.value).slice(0,10).map(z=>P(z)),datasets:[{data:c,backgroundColor:u,borderRadius:4}]}}),P=c=>{const[u,z]=c.split(":").map(Number),x=`${u}:59`;return`${c} - ${x}`},d=()=>{s.value=!s.value},l=(c,u)=>u[c];return(c,u)=>(a.openBlock(),a.createElementBlock("div",JO,[a.createElementVNode("div",KO,[a.createElementVNode("div",SO,[u[3]||(u[3]=a.createElementVNode("div",{class:"oh-widget__title"},"Result by Open Hour",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>u[2]||(u[2]=[a.createTextVNode("Analyze your trading performance based on the hour of the day and trading session. Switch between different time zones to track results by market. ")])),_:1})]),s.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"oh-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:d})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"oh-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:d}))]),a.createElementVNode("div",{class:a.normalizeClass(["oh-widget__content",{"-chart-active":s.value}])},[a.createVNode(a.unref(Ev),{class:"oh-widget__switcher",modelValue:o.value,"onUpdate:modelValue":u[0]||(u[0]=z=>o.value=z),options:f},null,8,["modelValue"]),v.value&&Object.values(v.value).length?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[s.value?(a.openBlock(),a.createElementBlock("div",_O,[a.createVNode(vo,{class:"oh-widget__bar",data:i.value,"ticks-callback":l,"y-ticks-callback":a.unref(s8),"is-mask":t.isMask,"data-type":"oh"},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("div",$O,[a.createElementVNode("table",eA,[u[4]||(u[4]=a.createElementVNode("thead",{class:"oh-widget__list__header"},[a.createElementVNode("th",null,"Time"),a.createElementVNode("th",null,"Trades"),a.createElementVNode("th",null,"Result")],-1)),a.createElementVNode("tbody",tA,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(v.value,(z,b,x)=>(a.openBlock(),a.createElementBlock("tr",fA,[a.createElementVNode("td",nA,a.toDisplayString(P(b)),1),a.createElementVNode("td",rA,a.toDisplayString(a.unref(ze)(t.isMask,z.trades_count,{repeat:3})),1),a.createElementVNode("td",{class:a.normalizeClass(["oh-widget__list__subpoint",{"-positive":z.net_pnl_total>0,"-negative":z.net_pnl_total<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(z.net_pnl_total,{isPlus:!0,isFixed:!0}),{repeat:3})),3)]))),256))])])]))],64)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"]))],2),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:0,onRefresh:u[1]||(u[1]=z=>r("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-0cb70abf"]]),sA={class:"duration-widget"},oA={class:"duration-widget__top"},vA={class:"duration-widget__title-wrapper"},iA={key:0},PA={key:1,class:"duration-widget__list"},dA={class:"duration-widget__list__body"},lA={class:"duration-widget__list__point"},cA={class:"duration-widget__list__subpoint"},uA={class:"duration-widget__list__subpoint"},bA=Xe({__name:"DurationWidget",props:{results:Object,apiNoConnected:{type:Boolean,default:!1},apiInitialization:{type:Boolean,default:!1},isMask:Boolean,requiredUpdate:{type:Boolean,default:!1}},emits:["refresh"],setup(t,{emit:e}){const f=t,n=e,r=a.ref(!1),s=a.computed(()=>{const P=Object.values(f.results).slice(0,10).map(l=>l.net_pnl_total*n9()),d=Object.values(f.results).slice(0,10).map(l=>l.net_pnl_total>0?"#56B683":"#F18169");return{labels:Object.keys(f.results).slice(0,10).map(l=>o(Number(l))),datasets:[{data:P,backgroundColor:d,borderRadius:4}]}});function o(P){const d=[{min:0,max:30,label:"0-30m"},{min:30,max:60,label:"30m - 1h"},{min:60,max:240,label:"1-4h"},{min:240,max:480,label:"4-12h"},{min:480,max:1440,label:"12-24h"},{min:1440,max:4320,label:"1-3d"},{min:4320,max:10080,label:"3-7d"},{min:10080,max:1/0,label:"7d+"}];for(const l of d)if(P>=l.min&&P<l.max)return l.label;return"Invalid input"}const v=()=>{r.value=!r.value},i=(P,d)=>d[P];return(P,d)=>(a.openBlock(),a.createElementBlock("div",sA,[a.createElementVNode("div",oA,[a.createElementVNode("div",vA,[d[2]||(d[2]=a.createElementVNode("div",{class:"duration-widget__title"}," Result by time duration ",-1)),a.createVNode(a.unref(ct),{alternative:""},{default:a.withCtx(()=>d[1]||(d[1]=[a.createTextVNode("See how your trades perform based on their duration. Filter by time intervals to identify patterns in short or long-term trades. ")])),_:1})]),r.value?(a.openBlock(),a.createBlock(a.unref(jf),{key:0,class:"duration-widget__btn",view:"secondary",icon:"list",size:"sm",onClick:v})):(a.openBlock(),a.createBlock(a.unref(jf),{key:1,class:"duration-widget__btn",view:"secondary",icon:"pie-chart",size:"sm",onClick:v}))]),t.results&&Object.values(t.results).length?(a.openBlock(),a.createElementBlock("div",{key:0,class:a.normalizeClass(["duration-widget__content",{"-chart-active":r.value}])},[r.value?(a.openBlock(),a.createElementBlock("div",iA,[a.createVNode(vo,{class:"duration-widget__bar",data:s.value,"ticks-callback":i,"y-ticks-callback":a.unref(s8),"data-type":"duration","is-mask":t.isMask},null,8,["data","y-ticks-callback","is-mask"])])):(a.openBlock(),a.createElementBlock("table",PA,[d[3]||(d[3]=a.createElementVNode("thead",{class:"duration-widget__list__header"},[a.createElementVNode("th",null,"Time"),a.createElementVNode("th",null,"Trades"),a.createElementVNode("th",null,"Result")],-1)),a.createElementVNode("tbody",dA,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(t.results,(l,c,u)=>(a.openBlock(),a.createElementBlock("tr",lA,[a.createElementVNode("td",cA,a.toDisplayString(o(Number(c))),1),a.createElementVNode("td",uA,a.toDisplayString(a.unref(ze)(t.isMask,l.trades_count,{repeat:3})),1),a.createElementVNode("td",{class:a.normalizeClass(["duration-widget__list__subpoint",{"-positive":l.net_pnl_total>0,"-negative":l.net_pnl_total<0}])},a.toDisplayString(a.unref(ze)(t.isMask,a.unref(Ve)(l.net_pnl_total,{isPlus:!0,isFixed:!0}),{repeat:3})),3)]))),256))])]))],2)):(a.openBlock(),a.createBlock(Wt,{key:1,"api-no-connected":t.apiNoConnected,"api-initialization":t.apiInitialization,absolute:""},null,8,["api-no-connected","api-initialization"])),t.requiredUpdate?(a.openBlock(),a.createBlock(Pf,{key:2,onRefresh:d[0]||(d[0]=l=>n("refresh"))})):a.createCommentVNode("",!0)]))}},[["__scopeId","data-v-edb6cef6"]]);class $r extends Error{}class zA extends $r{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class xA extends $r{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class HA extends $r{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class E9 extends $r{}class Mc extends $r{constructor(e){super(`Invalid unit ${e}`)}}class Ct extends $r{}class cr extends $r{constructor(){super("Zone is an abstract class")}}const ie="numeric",If="short",hf="long",io={year:ie,month:ie,day:ie},Wc={year:ie,month:If,day:ie},pA={year:ie,month:If,day:ie,weekday:If},qc={year:ie,month:hf,day:ie},kc={year:ie,month:hf,day:ie,weekday:hf},Gc={hour:ie,minute:ie},Rc={hour:ie,minute:ie,second:ie},Bc={hour:ie,minute:ie,second:ie,timeZoneName:If},Yc={hour:ie,minute:ie,second:ie,timeZoneName:hf},Fc={hour:ie,minute:ie,hourCycle:"h23"},Cc={hour:ie,minute:ie,second:ie,hourCycle:"h23"},Ec={hour:ie,minute:ie,second:ie,hourCycle:"h23",timeZoneName:If},Ic={hour:ie,minute:ie,second:ie,hourCycle:"h23",timeZoneName:hf},Qc={year:ie,month:ie,day:ie,hour:ie,minute:ie},Uc={year:ie,month:ie,day:ie,hour:ie,minute:ie,second:ie},Jc={year:ie,month:If,day:ie,hour:ie,minute:ie},Kc={year:ie,month:If,day:ie,hour:ie,minute:ie,second:ie},XA={year:ie,month:If,day:ie,weekday:If,hour:ie,minute:ie},Sc={year:ie,month:hf,day:ie,hour:ie,minute:ie,timeZoneName:If},_c={year:ie,month:hf,day:ie,hour:ie,minute:ie,second:ie,timeZoneName:If},$c={year:ie,month:hf,day:ie,weekday:hf,hour:ie,minute:ie,timeZoneName:hf},e6={year:ie,month:hf,day:ie,weekday:hf,hour:ie,minute:ie,second:ie,timeZoneName:hf};class xa{get type(){throw new cr}get name(){throw new cr}get ianaName(){return this.name}get isUniversal(){throw new cr}offsetName(e,f){throw new cr}formatOffset(e,f){throw new cr}offset(e){throw new cr}equals(e){throw new cr}get isValid(){throw new cr}}let G1=null;class Po extends xa{static get instance(){return G1===null&&(G1=new Po),G1}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:f,locale:n}){return w6(e,f,n)}formatOffset(e,f){return ha(this.offset(e),f)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}let lo={};function hA(t){return lo[t]||(lo[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),lo[t]}const yA={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function mA(t,e){const f=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(f),[,r,s,o,v,i,P,d]=n;return[o,r,s,v,i,P,d]}function jA(t,e){const f=t.formatToParts(e),n=[];for(let r=0;r<f.length;r++){const{type:s,value:o}=f[r],v=yA[s];s==="era"?n[v]=o:he(v)||(n[v]=parseInt(o,10))}return n}let co={};class Wn extends xa{static create(e){return co[e]||(co[e]=new Wn(e)),co[e]}static resetCache(){co={},lo={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=Wn.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:f,locale:n}){return w6(e,f,n,this.name)}formatOffset(e,f){return ha(this.offset(e),f)}offset(e){const f=new Date(e);if(isNaN(f))return NaN;const n=hA(this.name);let[r,s,o,v,i,P,d]=n.formatToParts?jA(n,f):mA(n,f);v==="BC"&&(r=-Math.abs(r)+1);const c=Ho({year:r,month:s,day:o,hour:i===24?0:i,minute:P,second:d,millisecond:0});let u=+f;const z=u%1e3;return u-=z>=0?z:1e3+z,(c-u)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let t6={};function wA(t,e={}){const f=JSON.stringify([t,e]);let n=t6[f];return n||(n=new Intl.ListFormat(t,e),t6[f]=n),n}let R1={};function B1(t,e={}){const f=JSON.stringify([t,e]);let n=R1[f];return n||(n=new Intl.DateTimeFormat(t,e),R1[f]=n),n}let Y1={};function gA(t,e={}){const f=JSON.stringify([t,e]);let n=Y1[f];return n||(n=new Intl.NumberFormat(t,e),Y1[f]=n),n}let F1={};function DA(t,e={}){const{base:f,...n}=e,r=JSON.stringify([t,n]);let s=F1[r];return s||(s=new Intl.RelativeTimeFormat(t,e),F1[r]=s),s}let Ha=null;function LA(){return Ha||(Ha=new Intl.DateTimeFormat().resolvedOptions().locale,Ha)}let f6={};function TA(t){let e=f6[t];if(!e){const f=new Intl.Locale(t);e="getWeekInfo"in f?f.getWeekInfo():f.weekInfo,f6[t]=e}return e}function NA(t){const e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));const f=t.indexOf("-u-");if(f===-1)return[t];{let n,r;try{n=B1(t).resolvedOptions(),r=t}catch{const i=t.substring(0,f);n=B1(i).resolvedOptions(),r=i}const{numberingSystem:s,calendar:o}=n;return[r,s,o]}}function ZA(t,e,f){return(f||e)&&(t.includes("-u-")||(t+="-u"),f&&(t+=`-ca-${f}`),e&&(t+=`-nu-${e}`)),t}function OA(t){const e=[];for(let f=1;f<=12;f++){const n=He.utc(2009,f,1);e.push(t(n))}return e}function AA(t){const e=[];for(let f=1;f<=7;f++){const n=He.utc(2016,11,13+f);e.push(t(n))}return e}function uo(t,e,f,n){const r=t.listingMode();return r==="error"?null:r==="en"?f(e):n(e)}function VA(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}class MA{constructor(e,f,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:r,floor:s,...o}=n;if(!f||Object.keys(o).length>0){const v={useGrouping:!1,...n};n.padTo>0&&(v.minimumIntegerDigits=n.padTo),this.inf=gA(e,v)}}format(e){if(this.inf){const f=this.floor?Math.floor(e):e;return this.inf.format(f)}else{const f=this.floor?Math.floor(e):S1(e,3);return jt(f,this.padTo)}}}class WA{constructor(e,f,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const o=-1*(e.offset/60),v=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&Wn.create(v).valid?(r=v,this.dt=e):(r="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,r=e.zone.name):(r="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const s={...this.opts};s.timeZone=s.timeZone||r,this.dtf=B1(f,s)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(f=>{if(f.type==="timeZoneName"){const n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...f,value:n}}else return f}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class qA{constructor(e,f,n){this.opts={style:"long",...n},!f&&h6()&&(this.rtf=DA(e,n))}format(e,f){return this.rtf?this.rtf.format(e,f):sV(f,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,f){return this.rtf?this.rtf.formatToParts(e,f):[]}}const kA={firstDay:1,minimalDays:4,weekend:[6,7]};let Se=class Ia{static fromOpts(e){return Ia.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,f,n,r,s=!1){const o=e||dt.defaultLocale,v=o||(s?"en-US":LA()),i=f||dt.defaultNumberingSystem,P=n||dt.defaultOutputCalendar,d=J1(r)||dt.defaultWeekSettings;return new Ia(v,i,P,d,o)}static resetCache(){Ha=null,R1={},Y1={},F1={}}static fromObject({locale:e,numberingSystem:f,outputCalendar:n,weekSettings:r}={}){return Ia.create(e,f,n,r)}constructor(e,f,n,r,s){const[o,v,i]=NA(e);this.locale=o,this.numberingSystem=f||v||null,this.outputCalendar=n||i||null,this.weekSettings=r,this.intl=ZA(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=VA(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),f=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&f?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:Ia.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,J1(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,f=!1){return uo(this,e,L6,()=>{const n=f?{month:e,day:"numeric"}:{month:e},r=f?"format":"standalone";return this.monthsCache[r][e]||(this.monthsCache[r][e]=OA(s=>this.extract(s,n,"month"))),this.monthsCache[r][e]})}weekdays(e,f=!1){return uo(this,e,Z6,()=>{const n=f?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},r=f?"format":"standalone";return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=AA(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[r][e]})}meridiems(){return uo(this,void 0,()=>O6,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[He.utc(2016,11,13,9),He.utc(2016,11,13,19)].map(f=>this.extract(f,e,"dayperiod"))}return this.meridiemCache})}eras(e){return uo(this,e,A6,()=>{const f={era:e};return this.eraCache[e]||(this.eraCache[e]=[He.utc(-40,1,1),He.utc(2017,1,1)].map(n=>this.extract(n,f,"era"))),this.eraCache[e]})}extract(e,f,n){const r=this.dtFormatter(e,f),s=r.formatToParts(),o=s.find(v=>v.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new MA(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,f={}){return new WA(e,this.intl,f)}relFormatter(e={}){return new qA(this.intl,this.isEnglish(),e)}listFormatter(e={}){return wA(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:y6()?TA(this.locale):kA}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},C1=null;class _t extends xa{static get utcInstance(){return C1===null&&(C1=new _t(0)),C1}static instance(e){return e===0?_t.utcInstance:new _t(e)}static parseSpecifier(e){if(e){const f=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(f)return new _t(po(f[1],f[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ha(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ha(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,f){return ha(this.fixed,f)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class GA extends xa{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function ur(t,e){if(he(t)||t===null)return e;if(t instanceof xa)return t;if(EA(t)){const f=t.toLowerCase();return f==="default"?e:f==="local"||f==="system"?Po.instance:f==="utc"||f==="gmt"?_t.utcInstance:_t.parseSpecifier(f)||Wn.create(t)}else return br(t)?_t.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new GA(t)}const E1={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},n6={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},RA=E1.hanidec.replace(/[\[|\]]/g,"").split("");function BA(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let f=0;f<t.length;f++){const n=t.charCodeAt(f);if(t[f].search(E1.hanidec)!==-1)e+=RA.indexOf(t[f]);else for(const r in n6){const[s,o]=n6[r];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}let I9={};function YA(){I9={}}function Qf({numberingSystem:t},e=""){const f=t||"latn";return I9[f]||(I9[f]={}),I9[f][e]||(I9[f][e]=new RegExp(`${E1[f]}${e}`)),I9[f][e]}let r6=()=>Date.now(),a6="system",s6=null,o6=null,v6=null,i6=60,P6,d6=null;class dt{static get now(){return r6}static set now(e){r6=e}static set defaultZone(e){a6=e}static get defaultZone(){return ur(a6,Po.instance)}static get defaultLocale(){return s6}static set defaultLocale(e){s6=e}static get defaultNumberingSystem(){return o6}static set defaultNumberingSystem(e){o6=e}static get defaultOutputCalendar(){return v6}static set defaultOutputCalendar(e){v6=e}static get defaultWeekSettings(){return d6}static set defaultWeekSettings(e){d6=J1(e)}static get twoDigitCutoffYear(){return i6}static set twoDigitCutoffYear(e){i6=e%100}static get throwOnInvalid(){return P6}static set throwOnInvalid(e){P6=e}static resetCaches(){Se.resetCache(),Wn.resetCache(),He.resetCache(),YA()}}class Uf{constructor(e,f){this.reason=e,this.explanation=f}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const l6=[0,31,59,90,120,151,181,212,243,273,304,334],c6=[0,31,60,91,121,152,182,213,244,274,305,335];function Af(t,e){return new Uf("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function I1(t,e,f){const n=new Date(Date.UTC(t,e-1,f));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);const r=n.getUTCDay();return r===0?7:r}function u6(t,e,f){return f+(pa(t)?c6:l6)[e-1]}function b6(t,e){const f=pa(t)?c6:l6,n=f.findIndex(s=>s<e),r=e-f[n];return{month:n+1,day:r}}function Q1(t,e){return(t-e+7)%7+1}function bo(t,e=4,f=1){const{year:n,month:r,day:s}=t,o=u6(n,r,s),v=Q1(I1(n,r,s),f);let i=Math.floor((o-v+14-e)/7),P;return i<1?(P=n-1,i=Xa(P,e,f)):i>Xa(n,e,f)?(P=n+1,i=1):P=n,{weekYear:P,weekNumber:i,weekday:v,...ho(t)}}function z6(t,e=4,f=1){const{weekYear:n,weekNumber:r,weekday:s}=t,o=Q1(I1(n,1,e),f),v=U9(n);let i=r*7+s-o-7+e,P;i<1?(P=n-1,i+=U9(P)):i>v?(P=n+1,i-=U9(n)):P=n;const{month:d,day:l}=b6(P,i);return{year:P,month:d,day:l,...ho(t)}}function U1(t){const{year:e,month:f,day:n}=t,r=u6(e,f,n);return{year:e,ordinal:r,...ho(t)}}function x6(t){const{year:e,ordinal:f}=t,{month:n,day:r}=b6(e,f);return{year:e,month:n,day:r,...ho(t)}}function H6(t,e){if(!he(t.localWeekday)||!he(t.localWeekNumber)||!he(t.localWeekYear)){if(!he(t.weekday)||!he(t.weekNumber)||!he(t.weekYear))throw new E9("Cannot mix locale-based week fields with ISO-based week fields");return he(t.localWeekday)||(t.weekday=t.localWeekday),he(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),he(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function FA(t,e=4,f=1){const n=zo(t.weekYear),r=Vf(t.weekNumber,1,Xa(t.weekYear,e,f)),s=Vf(t.weekday,1,7);return n?r?s?!1:Af("weekday",t.weekday):Af("week",t.weekNumber):Af("weekYear",t.weekYear)}function CA(t){const e=zo(t.year),f=Vf(t.ordinal,1,U9(t.year));return e?f?!1:Af("ordinal",t.ordinal):Af("year",t.year)}function p6(t){const e=zo(t.year),f=Vf(t.month,1,12),n=Vf(t.day,1,xo(t.year,t.month));return e?f?n?!1:Af("day",t.day):Af("month",t.month):Af("year",t.year)}function X6(t){const{hour:e,minute:f,second:n,millisecond:r}=t,s=Vf(e,0,23)||e===24&&f===0&&n===0&&r===0,o=Vf(f,0,59),v=Vf(n,0,59),i=Vf(r,0,999);return s?o?v?i?!1:Af("millisecond",r):Af("second",n):Af("minute",f):Af("hour",e)}function he(t){return typeof t>"u"}function br(t){return typeof t=="number"}function zo(t){return typeof t=="number"&&t%1===0}function EA(t){return typeof t=="string"}function IA(t){return Object.prototype.toString.call(t)==="[object Date]"}function h6(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function y6(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function QA(t){return Array.isArray(t)?t:[t]}function m6(t,e,f){if(t.length!==0)return t.reduce((n,r)=>{const s=[e(r),r];return n&&f(n[0],s[0])===n[0]?n:s},null)[1]}function UA(t,e){return e.reduce((f,n)=>(f[n]=t[n],f),{})}function Q9(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function J1(t){if(t==null)return null;if(typeof t!="object")throw new Ct("Week settings must be an object");if(!Vf(t.firstDay,1,7)||!Vf(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!Vf(e,1,7)))throw new Ct("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function Vf(t,e,f){return zo(t)&&t>=e&&t<=f}function JA(t,e){return t-e*Math.floor(t/e)}function jt(t,e=2){const f=t<0;let n;return f?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function zr(t){if(!(he(t)||t===null||t===""))return parseInt(t,10)}function e9(t){if(!(he(t)||t===null||t===""))return parseFloat(t)}function K1(t){if(!(he(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function S1(t,e,f=!1){const n=10**e;return(f?Math.trunc:Math.round)(t*n)/n}function pa(t){return t%4===0&&(t%100!==0||t%400===0)}function U9(t){return pa(t)?366:365}function xo(t,e){const f=JA(e-1,12)+1,n=t+(e-f)/12;return f===2?pa(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][f-1]}function Ho(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function j6(t,e,f){return-Q1(I1(t,1,e),f)+e-1}function Xa(t,e=4,f=1){const n=j6(t,e,f),r=j6(t+1,e,f);return(U9(t)-n+r)/7}function _1(t){return t>99?t:t>dt.twoDigitCutoffYear?1900+t:2e3+t}function w6(t,e,f,n=null){const r=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);const o={timeZoneName:e,...s},v=new Intl.DateTimeFormat(f,o).formatToParts(r).find(i=>i.type.toLowerCase()==="timezonename");return v?v.value:null}function po(t,e){let f=parseInt(t,10);Number.isNaN(f)&&(f=0);const n=parseInt(e,10)||0,r=f<0||Object.is(f,-0)?-n:n;return f*60+r}function g6(t){const e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ct(`Invalid unit value ${t}`);return e}function Xo(t,e){const f={};for(const n in t)if(Q9(t,n)){const r=t[n];if(r==null)continue;f[e(n)]=g6(r)}return f}function ha(t,e){const f=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),r=t>=0?"+":"-";switch(e){case"short":return`${r}${jt(f,2)}:${jt(n,2)}`;case"narrow":return`${r}${f}${n>0?`:${n}`:""}`;case"techie":return`${r}${jt(f,2)}${jt(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ho(t){return UA(t,["hour","minute","second","millisecond"])}const KA=["January","February","March","April","May","June","July","August","September","October","November","December"],D6=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],SA=["J","F","M","A","M","J","J","A","S","O","N","D"];function L6(t){switch(t){case"narrow":return[...SA];case"short":return[...D6];case"long":return[...KA];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const T6=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],N6=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],_A=["M","T","W","T","F","S","S"];function Z6(t){switch(t){case"narrow":return[..._A];case"short":return[...N6];case"long":return[...T6];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const O6=["AM","PM"],$A=["Before Christ","Anno Domini"],eV=["BC","AD"],tV=["B","A"];function A6(t){switch(t){case"narrow":return[...tV];case"short":return[...eV];case"long":return[...$A];default:return null}}function fV(t){return O6[t.hour<12?0:1]}function nV(t,e){return Z6(e)[t.weekday-1]}function rV(t,e){return L6(e)[t.month-1]}function aV(t,e){return A6(e)[t.year<0?0:1]}function sV(t,e,f="always",n=!1){const r={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(f==="auto"&&s){const l=t==="days";switch(e){case 1:return l?"tomorrow":`next ${r[t][0]}`;case-1:return l?"yesterday":`last ${r[t][0]}`;case 0:return l?"today":`this ${r[t][0]}`}}const o=Object.is(e,-0)||e<0,v=Math.abs(e),i=v===1,P=r[t],d=n?i?P[1]:P[2]||P[1]:i?r[t][0]:t;return o?`${v} ${d} ago`:`in ${v} ${d}`}function V6(t,e){let f="";for(const n of t)n.literal?f+=n.val:f+=e(n.val);return f}const oV={D:io,DD:Wc,DDD:qc,DDDD:kc,t:Gc,tt:Rc,ttt:Bc,tttt:Yc,T:Fc,TT:Cc,TTT:Ec,TTTT:Ic,f:Qc,ff:Jc,fff:Sc,ffff:$c,F:Uc,FF:Kc,FFF:_c,FFFF:e6};class Et{static create(e,f={}){return new Et(e,f)}static parseFormat(e){let f=null,n="",r=!1;const s=[];for(let o=0;o<e.length;o++){const v=e.charAt(o);v==="'"?(n.length>0&&s.push({literal:r||/^\s+$/.test(n),val:n}),f=null,n="",r=!r):r||v===f?n+=v:(n.length>0&&s.push({literal:/^\s+$/.test(n),val:n}),n=v,f=v)}return n.length>0&&s.push({literal:r||/^\s+$/.test(n),val:n}),s}static macroTokenToFormatOpts(e){return oV[e]}constructor(e,f){this.opts=f,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,f){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...f}).format()}dtFormatter(e,f={}){return this.loc.dtFormatter(e,{...this.opts,...f})}formatDateTime(e,f){return this.dtFormatter(e,f).format()}formatDateTimeParts(e,f){return this.dtFormatter(e,f).formatToParts()}formatInterval(e,f){return this.dtFormatter(e.start,f).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,f){return this.dtFormatter(e,f).resolvedOptions()}num(e,f=0){if(this.opts.forceSimple)return jt(e,f);const n={...this.opts};return f>0&&(n.padTo=f),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,f){const n=this.loc.listingMode()==="en",r=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(u,z)=>this.loc.extract(e,u,z),o=u=>e.isOffsetFixed&&e.offset===0&&u.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,u.format):"",v=()=>n?fV(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),i=(u,z)=>n?rV(e,u):s(z?{month:u}:{month:u,day:"numeric"},"month"),P=(u,z)=>n?nV(e,u):s(z?{weekday:u}:{weekday:u,month:"long",day:"numeric"},"weekday"),d=u=>{const z=Et.macroTokenToFormatOpts(u);return z?this.formatWithSystemDefault(e,z):u},l=u=>n?aV(e,u):s({era:u},"era"),c=u=>{switch(u){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return v();case"d":return r?s({day:"numeric"},"day"):this.num(e.day);case"dd":return r?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return P("short",!0);case"cccc":return P("long",!0);case"ccccc":return P("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return P("short",!1);case"EEEE":return P("long",!1);case"EEEEE":return P("narrow",!1);case"L":return r?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return r?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return i("short",!0);case"LLLL":return i("long",!0);case"LLLLL":return i("narrow",!0);case"M":return r?s({month:"numeric"},"month"):this.num(e.month);case"MM":return r?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return i("short",!1);case"MMMM":return i("long",!1);case"MMMMM":return i("narrow",!1);case"y":return r?s({year:"numeric"},"year"):this.num(e.year);case"yy":return r?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return r?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return r?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return l("short");case"GG":return l("long");case"GGGGG":return l("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return d(u)}};return V6(Et.parseFormat(f),c)}formatDurationFromString(e,f){const n=i=>{switch(i[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},r=i=>P=>{const d=n(P);return d?this.num(i.get(d),P.length):P},s=Et.parseFormat(f),o=s.reduce((i,{literal:P,val:d})=>P?i:i.concat(d),[]),v=e.shiftTo(...o.map(n).filter(i=>i));return V6(s,r(v))}}const M6=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function J9(...t){const e=t.reduce((f,n)=>f+n.source,"");return RegExp(`^${e}$`)}function K9(...t){return e=>t.reduce(([f,n,r],s)=>{const[o,v,i]=s(e,r);return[{...f,...o},v||n,i]},[{},null,1]).slice(0,2)}function S9(t,...e){if(t==null)return[null,null];for(const[f,n]of e){const r=f.exec(t);if(r)return n(r)}return[null,null]}function W6(...t){return(e,f)=>{const n={};let r;for(r=0;r<t.length;r++)n[t[r]]=zr(e[f+r]);return[n,null,f+r]}}const q6=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,vV=`(?:${q6.source}?(?:\\[(${M6.source})\\])?)?`,$1=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,k6=RegExp(`${$1.source}${vV}`),e3=RegExp(`(?:T${k6.source})?`),iV=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,PV=/(\d{4})-?W(\d\d)(?:-?(\d))?/,dV=/(\d{4})-?(\d{3})/,lV=W6("weekYear","weekNumber","weekDay"),cV=W6("year","ordinal"),uV=/(\d{4})-(\d\d)-(\d\d)/,G6=RegExp(`${$1.source} ?(?:${q6.source}|(${M6.source}))?`),bV=RegExp(`(?: ${G6.source})?`);function _9(t,e,f){const n=t[e];return he(n)?f:zr(n)}function zV(t,e){return[{year:_9(t,e),month:_9(t,e+1,1),day:_9(t,e+2,1)},null,e+3]}function $9(t,e){return[{hours:_9(t,e,0),minutes:_9(t,e+1,0),seconds:_9(t,e+2,0),milliseconds:K1(t[e+3])},null,e+4]}function ya(t,e){const f=!t[e]&&!t[e+1],n=po(t[e+1],t[e+2]),r=f?null:_t.instance(n);return[{},r,e+3]}function ma(t,e){const f=t[e]?Wn.create(t[e]):null;return[{},f,e+1]}const xV=RegExp(`^T?${$1.source}$`),HV=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function pV(t){const[e,f,n,r,s,o,v,i,P]=t,d=e[0]==="-",l=i&&i[0]==="-",c=(u,z=!1)=>u!==void 0&&(z||u&&d)?-u:u;return[{years:c(e9(f)),months:c(e9(n)),weeks:c(e9(r)),days:c(e9(s)),hours:c(e9(o)),minutes:c(e9(v)),seconds:c(e9(i),i==="-0"),milliseconds:c(K1(P),l)}]}const XV={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function t3(t,e,f,n,r,s,o){const v={year:e.length===2?_1(zr(e)):zr(e),month:D6.indexOf(f)+1,day:zr(n),hour:zr(r),minute:zr(s)};return o&&(v.second=zr(o)),t&&(v.weekday=t.length>3?T6.indexOf(t)+1:N6.indexOf(t)+1),v}const hV=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function yV(t){const[,e,f,n,r,s,o,v,i,P,d,l]=t,c=t3(e,r,n,f,s,o,v);let u;return i?u=XV[i]:P?u=0:u=po(d,l),[c,new _t(u)]}function mV(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const jV=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,wV=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,gV=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function R6(t){const[,e,f,n,r,s,o,v]=t;return[t3(e,r,n,f,s,o,v),_t.utcInstance]}function DV(t){const[,e,f,n,r,s,o,v]=t;return[t3(e,v,f,n,r,s,o),_t.utcInstance]}const LV=J9(iV,e3),TV=J9(PV,e3),NV=J9(dV,e3),ZV=J9(k6),B6=K9(zV,$9,ya,ma),OV=K9(lV,$9,ya,ma),AV=K9(cV,$9,ya,ma),VV=K9($9,ya,ma);function MV(t){return S9(t,[LV,B6],[TV,OV],[NV,AV],[ZV,VV])}function WV(t){return S9(mV(t),[hV,yV])}function qV(t){return S9(t,[jV,R6],[wV,R6],[gV,DV])}function kV(t){return S9(t,[HV,pV])}const GV=K9($9);function RV(t){return S9(t,[xV,GV])}const BV=J9(uV,bV),YV=J9(G6),FV=K9($9,ya,ma);function CV(t){return S9(t,[BV,B6],[YV,FV])}const Y6="Invalid Duration",F6={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},EV={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...F6},Mf=146097/400,e8=146097/4800,IV={years:{quarters:4,months:12,weeks:Mf/7,days:Mf,hours:Mf*24,minutes:Mf*24*60,seconds:Mf*24*60*60,milliseconds:Mf*24*60*60*1e3},quarters:{months:3,weeks:Mf/28,days:Mf/4,hours:Mf*24/4,minutes:Mf*24*60/4,seconds:Mf*24*60*60/4,milliseconds:Mf*24*60*60*1e3/4},months:{weeks:e8/7,days:e8,hours:e8*24,minutes:e8*24*60,seconds:e8*24*60*60,milliseconds:e8*24*60*60*1e3},...F6},t9=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],QV=t9.slice(0).reverse();function xr(t,e,f=!1){const n={values:f?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new It(n)}function C6(t,e){let f=e.milliseconds??0;for(const n of QV.slice(1))e[n]&&(f+=e[n]*t[n].milliseconds);return f}function E6(t,e){const f=C6(t,e)<0?-1:1;t9.reduceRight((n,r)=>{if(he(e[r]))return n;if(n){const s=e[n]*f,o=t[r][n],v=Math.floor(s/o);e[r]+=v*f,e[n]-=v*o*f}return r},null),t9.reduce((n,r)=>{if(he(e[r]))return n;if(n){const s=e[n]%1;e[n]-=s,e[r]+=s*t[n][r]}return r},null)}function UV(t){const e={};for(const[f,n]of Object.entries(t))n!==0&&(e[f]=n);return e}let It=class Ot{constructor(e){const f=e.conversionAccuracy==="longterm"||!1;let n=f?IV:EV;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.create(),this.conversionAccuracy=f?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,f){return Ot.fromObject({milliseconds:e},f)}static fromObject(e,f={}){if(e==null||typeof e!="object")throw new Ct(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new Ot({values:Xo(e,Ot.normalizeUnit),loc:Se.fromObject(f),conversionAccuracy:f.conversionAccuracy,matrix:f.matrix})}static fromDurationLike(e){if(br(e))return Ot.fromMillis(e);if(Ot.isDuration(e))return e;if(typeof e=="object")return Ot.fromObject(e);throw new Ct(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,f){const[n]=kV(e);return n?Ot.fromObject(n,f):Ot.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,f){const[n]=RV(e);return n?Ot.fromObject(n,f):Ot.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,f=null){if(!e)throw new Ct("need to specify a reason the Duration is invalid");const n=e instanceof Uf?e:new Uf(e,f);if(dt.throwOnInvalid)throw new HA(n);return new Ot({invalid:n})}static normalizeUnit(e){const f={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!f)throw new Mc(e);return f}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,f={}){const n={...f,floor:f.round!==!1&&f.floor!==!1};return this.isValid?Et.create(this.loc,n).formatDurationFromString(this,e):Y6}toHuman(e={}){if(!this.isValid)return Y6;const f=t9.map(n=>{const r=this.values[n];return he(r)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(r)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(f)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=S1(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const f=this.toMillis();return f<0||f>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},He.fromMillis(f,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?C6(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const f=Ot.fromDurationLike(e),n={};for(const r of t9)(Q9(f.values,r)||Q9(this.values,r))&&(n[r]=f.get(r)+this.get(r));return xr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const f=Ot.fromDurationLike(e);return this.plus(f.negate())}mapUnits(e){if(!this.isValid)return this;const f={};for(const n of Object.keys(this.values))f[n]=g6(e(this.values[n],n));return xr(this,{values:f},!0)}get(e){return this[Ot.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const f={...this.values,...Xo(e,Ot.normalizeUnit)};return xr(this,{values:f})}reconfigure({locale:e,numberingSystem:f,conversionAccuracy:n,matrix:r}={}){const o={loc:this.loc.clone({locale:e,numberingSystem:f}),matrix:r,conversionAccuracy:n};return xr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return E6(this.matrix,e),xr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;const e=UV(this.normalize().shiftToAll().toObject());return xr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>Ot.normalizeUnit(o));const f={},n={},r=this.toObject();let s;for(const o of t9)if(e.indexOf(o)>=0){s=o;let v=0;for(const P in n)v+=this.matrix[P][o]*n[P],n[P]=0;br(r[o])&&(v+=r[o]);const i=Math.trunc(v);f[o]=i,n[o]=(v*1e3-i*1e3)/1e3}else br(r[o])&&(n[o]=r[o]);for(const o in n)n[o]!==0&&(f[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return E6(this.matrix,f),xr(this,{values:f},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const f of Object.keys(this.values))e[f]=this.values[f]===0?0:-this.values[f];return xr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function f(n,r){return n===void 0||n===0?r===void 0||r===0:n===r}for(const n of t9)if(!f(this.values[n],e.values[n]))return!1;return!0}};const t8="Invalid Interval";function JV(t,e){return!t||!t.isValid?lt.invalid("missing or invalid start"):!e||!e.isValid?lt.invalid("missing or invalid end"):e<t?lt.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}class lt{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,f=null){if(!e)throw new Ct("need to specify a reason the Interval is invalid");const n=e instanceof Uf?e:new Uf(e,f);if(dt.throwOnInvalid)throw new xA(n);return new lt({invalid:n})}static fromDateTimes(e,f){const n=wa(e),r=wa(f),s=JV(n,r);return s??new lt({start:n,end:r})}static after(e,f){const n=It.fromDurationLike(f),r=wa(e);return lt.fromDateTimes(r,r.plus(n))}static before(e,f){const n=It.fromDurationLike(f),r=wa(e);return lt.fromDateTimes(r.minus(n),r)}static fromISO(e,f){const[n,r]=(e||"").split("/",2);if(n&&r){let s,o;try{s=He.fromISO(n,f),o=s.isValid}catch{o=!1}let v,i;try{v=He.fromISO(r,f),i=v.isValid}catch{i=!1}if(o&&i)return lt.fromDateTimes(s,v);if(o){const P=It.fromISO(r,f);if(P.isValid)return lt.after(s,P)}else if(i){const P=It.fromISO(n,f);if(P.isValid)return lt.before(v,P)}}return lt.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",f){if(!this.isValid)return NaN;const n=this.start.startOf(e,f);let r;return f?.useLocaleWeeks?r=this.end.reconfigure({locale:n.locale}):r=this.end,r=r.startOf(e,f),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:f}={}){return this.isValid?lt.fromDateTimes(e||this.s,f||this.e):this}splitAt(...e){if(!this.isValid)return[];const f=e.map(wa).filter(o=>this.contains(o)).sort((o,v)=>o.toMillis()-v.toMillis()),n=[];let{s:r}=this,s=0;for(;r<this.e;){const o=f[s]||this.e,v=+o>+this.e?this.e:o;n.push(lt.fromDateTimes(r,v)),r=v,s+=1}return n}splitBy(e){const f=It.fromDurationLike(e);if(!this.isValid||!f.isValid||f.as("milliseconds")===0)return[];let{s:n}=this,r=1,s;const o=[];for(;n<this.e;){const v=this.start.plus(f.mapUnits(i=>i*r));s=+v>+this.e?this.e:v,o.push(lt.fromDateTimes(n,s)),n=s,r+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const f=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return f>=n?null:lt.fromDateTimes(f,n)}union(e){if(!this.isValid)return this;const f=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return lt.fromDateTimes(f,n)}static merge(e){const[f,n]=e.sort((r,s)=>r.s-s.s).reduce(([r,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[r,s.union(o)]:[r.concat([s]),o]:[r,o],[[],null]);return n&&f.push(n),f}static xor(e){let f=null,n=0;const r=[],s=e.map(i=>[{time:i.s,type:"s"},{time:i.e,type:"e"}]),o=Array.prototype.concat(...s),v=o.sort((i,P)=>i.time-P.time);for(const i of v)n+=i.type==="s"?1:-1,n===1?f=i.time:(f&&+f!=+i.time&&r.push(lt.fromDateTimes(f,i.time)),f=null);return lt.merge(r)}difference(...e){return lt.xor([this].concat(e)).map(f=>this.intersection(f)).filter(f=>f&&!f.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:t8}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=io,f={}){return this.isValid?Et.create(this.s.loc.clone(f),e).formatInterval(this):t8}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:t8}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:t8}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:t8}toFormat(e,{separator:f=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${f}${this.e.toFormat(e)}`:t8}toDuration(e,f){return this.isValid?this.e.diff(this.s,e,f):It.invalid(this.invalidReason)}mapEndpoints(e){return lt.fromDateTimes(e(this.s),e(this.e))}}class yo{static hasDST(e=dt.defaultZone){const f=He.now().setZone(e).set({month:12});return!e.isUniversal&&f.offset!==f.set({month:6}).offset}static isValidIANAZone(e){return Wn.isValidZone(e)}static normalizeZone(e){return ur(e,dt.defaultZone)}static getStartOfWeek({locale:e=null,locObj:f=null}={}){return(f||Se.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:f=null}={}){return(f||Se.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:f=null}={}){return(f||Se.create(e)).getWeekendDays().slice()}static months(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null,outputCalendar:s="gregory"}={}){return(r||Se.create(f,n,s)).months(e)}static monthsFormat(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null,outputCalendar:s="gregory"}={}){return(r||Se.create(f,n,s)).months(e,!0)}static weekdays(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null}={}){return(r||Se.create(f,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:f=null,numberingSystem:n=null,locObj:r=null}={}){return(r||Se.create(f,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:f=null}={}){return Se.create(f,null,"gregory").eras(e)}static features(){return{relative:h6(),localeWeek:y6()}}}function I6(t,e){const f=r=>r.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=f(e)-f(t);return Math.floor(It.fromMillis(n).as("days"))}function KV(t,e,f){const n=[["years",(i,P)=>P.year-i.year],["quarters",(i,P)=>P.quarter-i.quarter+(P.year-i.year)*4],["months",(i,P)=>P.month-i.month+(P.year-i.year)*12],["weeks",(i,P)=>{const d=I6(i,P);return(d-d%7)/7}],["days",I6]],r={},s=t;let o,v;for(const[i,P]of n)f.indexOf(i)>=0&&(o=i,r[i]=P(t,e),v=s.plus(r),v>e?(r[i]--,t=s.plus(r),t>e&&(v=t,r[i]--,t=s.plus(r))):t=v);return[t,r,v,o]}function SV(t,e,f,n){let[r,s,o,v]=KV(t,e,f);const i=e-r,P=f.filter(l=>["hours","minutes","seconds","milliseconds"].indexOf(l)>=0);P.length===0&&(o<e&&(o=r.plus({[v]:1})),o!==r&&(s[v]=(s[v]||0)+i/(o-r)));const d=It.fromObject(s,n);return P.length>0?It.fromMillis(i,n).shiftTo(...P).plus(d):d}const _V="missing Intl.DateTimeFormat.formatToParts support";function Ge(t,e=f=>f){return{regex:t,deser:([f])=>e(BA(f))}}const Q6="[  ]",U6=new RegExp(Q6,"g");function $V(t){return t.replace(/\./g,"\\.?").replace(U6,Q6)}function J6(t){return t.replace(/\./g,"").replace(U6," ").toLowerCase()}function Jf(t,e){return t===null?null:{regex:RegExp(t.map($V).join("|")),deser:([f])=>t.findIndex(n=>J6(f)===J6(n))+e}}function K6(t,e){return{regex:t,deser:([,f,n])=>po(f,n),groups:e}}function mo(t){return{regex:t,deser:([e])=>e}}function eM(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function tM(t,e){const f=Qf(e),n=Qf(e,"{2}"),r=Qf(e,"{3}"),s=Qf(e,"{4}"),o=Qf(e,"{6}"),v=Qf(e,"{1,2}"),i=Qf(e,"{1,3}"),P=Qf(e,"{1,6}"),d=Qf(e,"{1,9}"),l=Qf(e,"{2,4}"),c=Qf(e,"{4,6}"),u=x=>({regex:RegExp(eM(x.val)),deser:([H])=>H,literal:!0}),b=(x=>{if(t.literal)return u(x);switch(x.val){case"G":return Jf(e.eras("short"),0);case"GG":return Jf(e.eras("long"),0);case"y":return Ge(P);case"yy":return Ge(l,_1);case"yyyy":return Ge(s);case"yyyyy":return Ge(c);case"yyyyyy":return Ge(o);case"M":return Ge(v);case"MM":return Ge(n);case"MMM":return Jf(e.months("short",!0),1);case"MMMM":return Jf(e.months("long",!0),1);case"L":return Ge(v);case"LL":return Ge(n);case"LLL":return Jf(e.months("short",!1),1);case"LLLL":return Jf(e.months("long",!1),1);case"d":return Ge(v);case"dd":return Ge(n);case"o":return Ge(i);case"ooo":return Ge(r);case"HH":return Ge(n);case"H":return Ge(v);case"hh":return Ge(n);case"h":return Ge(v);case"mm":return Ge(n);case"m":return Ge(v);case"q":return Ge(v);case"qq":return Ge(n);case"s":return Ge(v);case"ss":return Ge(n);case"S":return Ge(i);case"SSS":return Ge(r);case"u":return mo(d);case"uu":return mo(v);case"uuu":return Ge(f);case"a":return Jf(e.meridiems(),0);case"kkkk":return Ge(s);case"kk":return Ge(l,_1);case"W":return Ge(v);case"WW":return Ge(n);case"E":case"c":return Ge(f);case"EEE":return Jf(e.weekdays("short",!1),1);case"EEEE":return Jf(e.weekdays("long",!1),1);case"ccc":return Jf(e.weekdays("short",!0),1);case"cccc":return Jf(e.weekdays("long",!0),1);case"Z":case"ZZ":return K6(new RegExp(`([+-]${v.source})(?::(${n.source}))?`),2);case"ZZZ":return K6(new RegExp(`([+-]${v.source})(${n.source})?`),2);case"z":return mo(/[a-z_+-/]{1,256}?/i);case" ":return mo(/[^\S\n\r]/);default:return u(x)}})(t)||{invalidReason:_V};return b.token=t,b}const fM={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function nM(t,e,f){const{type:n,value:r}=t;if(n==="literal"){const i=/^\s+$/.test(r);return{literal:!i,val:i?" ":r}}const s=e[n];let o=n;n==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=f.hour12?"hour12":"hour24");let v=fM[o];if(typeof v=="object"&&(v=v[s]),v)return{literal:!1,val:v}}function rM(t){return[`^${t.map(f=>f.regex).reduce((f,n)=>`${f}(${n.source})`,"")}$`,t]}function aM(t,e,f){const n=t.match(e);if(n){const r={};let s=1;for(const o in f)if(Q9(f,o)){const v=f[o],i=v.groups?v.groups+1:1;!v.literal&&v.token&&(r[v.token.val[0]]=v.deser(n.slice(s,s+i))),s+=i}return[n,r]}else return[n,{}]}function sM(t){const e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let f=null,n;return he(t.z)||(f=Wn.create(t.z)),he(t.Z)||(f||(f=new _t(t.Z)),n=t.Z),he(t.q)||(t.M=(t.q-1)*3+1),he(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),he(t.u)||(t.S=K1(t.u)),[Object.keys(t).reduce((s,o)=>{const v=e(o);return v&&(s[v]=t[o]),s},{}),f,n]}let f3=null;function oM(){return f3||(f3=He.fromMillis(1555555555555)),f3}function vM(t,e){if(t.literal)return t;const f=Et.macroTokenToFormatOpts(t.val),n=e5(f,e);return n==null||n.includes(void 0)?t:n}function S6(t,e){return Array.prototype.concat(...t.map(f=>vM(f,e)))}class _6{constructor(e,f){if(this.locale=e,this.format=f,this.tokens=S6(Et.parseFormat(f),e),this.units=this.tokens.map(n=>tM(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){const[n,r]=rM(this.units);this.regex=RegExp(n,"i"),this.handlers=r}}explainFromTokens(e){if(this.isValid){const[f,n]=aM(e,this.regex,this.handlers),[r,s,o]=n?sM(n):[null,null,void 0];if(Q9(n,"a")&&Q9(n,"H"))throw new E9("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:f,matches:n,result:r,zone:s,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function $6(t,e,f){return new _6(t,f).explainFromTokens(e)}function iM(t,e,f){const{result:n,zone:r,specificOffset:s,invalidReason:o}=$6(t,e,f);return[n,r,s,o]}function e5(t,e){if(!t)return null;const n=Et.create(e,t).dtFormatter(oM()),r=n.formatToParts(),s=n.resolvedOptions();return r.map(o=>nM(o,t,s))}const n3="Invalid DateTime",t5=864e13;function ja(t){return new Uf("unsupported zone",`the zone "${t.name}" is not supported`)}function r3(t){return t.weekData===null&&(t.weekData=bo(t.c)),t.weekData}function a3(t){return t.localWeekData===null&&(t.localWeekData=bo(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function f9(t,e){const f={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new He({...f,...e,old:f})}function f5(t,e,f){let n=t-e*60*1e3;const r=f.offset(n);if(e===r)return[n,e];n-=(r-e)*60*1e3;const s=f.offset(n);return r===s?[n,r]:[t-Math.min(r,s)*60*1e3,Math.max(r,s)]}function jo(t,e){t+=e*60*1e3;const f=new Date(t);return{year:f.getUTCFullYear(),month:f.getUTCMonth()+1,day:f.getUTCDate(),hour:f.getUTCHours(),minute:f.getUTCMinutes(),second:f.getUTCSeconds(),millisecond:f.getUTCMilliseconds()}}function wo(t,e,f){return f5(Ho(t),e,f)}function n5(t,e){const f=t.o,n=t.c.year+Math.trunc(e.years),r=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:r,day:Math.min(t.c.day,xo(n,r))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=It.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),v=Ho(s);let[i,P]=f5(v,f,t.zone);return o!==0&&(i+=o,P=t.zone.offset(i)),{ts:i,o:P}}function f8(t,e,f,n,r,s){const{setZone:o,zone:v}=f;if(t&&Object.keys(t).length!==0||e){const i=e||v,P=He.fromObject(t,{...f,zone:i,specificOffset:s});return o?P:P.setZone(v)}else return He.invalid(new Uf("unparsable",`the input "${r}" can't be parsed as ${n}`))}function go(t,e,f=!0){return t.isValid?Et.create(Se.create("en-US"),{allowZ:f,forceSimple:!0}).formatDateTimeFromString(t,e):null}function s3(t,e){const f=t.c.year>9999||t.c.year<0;let n="";return f&&t.c.year>=0&&(n+="+"),n+=jt(t.c.year,f?6:4),e?(n+="-",n+=jt(t.c.month),n+="-",n+=jt(t.c.day)):(n+=jt(t.c.month),n+=jt(t.c.day)),n}function r5(t,e,f,n,r,s){let o=jt(t.c.hour);return e?(o+=":",o+=jt(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!f)&&(o+=":")):o+=jt(t.c.minute),(t.c.millisecond!==0||t.c.second!==0||!f)&&(o+=jt(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=jt(t.c.millisecond,3))),r&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=jt(Math.trunc(-t.o/60)),o+=":",o+=jt(Math.trunc(-t.o%60))):(o+="+",o+=jt(Math.trunc(t.o/60)),o+=":",o+=jt(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}const a5={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},PM={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},dM={ordinal:1,hour:0,minute:0,second:0,millisecond:0},s5=["year","month","day","hour","minute","second","millisecond"],lM=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],cM=["year","ordinal","hour","minute","second","millisecond"];function uM(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Mc(t);return e}function o5(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return uM(t)}}function bM(t){return Lo[t]||(Do===void 0&&(Do=dt.now()),Lo[t]=t.offset(Do)),Lo[t]}function v5(t,e){const f=ur(e.zone,dt.defaultZone);if(!f.isValid)return He.invalid(ja(f));const n=Se.fromObject(e);let r,s;if(he(t.year))r=dt.now();else{for(const i of s5)he(t[i])&&(t[i]=a5[i]);const o=p6(t)||X6(t);if(o)return He.invalid(o);const v=bM(f);[r,s]=wo(t,v,f)}return new He({ts:r,zone:f,loc:n,o:s})}function i5(t,e,f){const n=he(f.round)?!0:f.round,r=(o,v)=>(o=S1(o,n||f.calendary?0:2,!0),e.loc.clone(f).relFormatter(f).format(o,v)),s=o=>f.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(f.unit)return r(s(f.unit),f.unit);for(const o of f.units){const v=s(o);if(Math.abs(v)>=1)return r(v,o)}return r(t>e?-0:0,f.units[f.units.length-1])}function P5(t){let e={},f;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],f=Array.from(t).slice(0,t.length-1)):f=Array.from(t),[e,f]}let Do,Lo={};class He{constructor(e){const f=e.zone||dt.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new Uf("invalid input"):null)||(f.isValid?null:ja(f));this.ts=he(e.ts)?dt.now():e.ts;let r=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(f))[r,s]=[e.old.c,e.old.o];else{const v=br(e.o)&&!e.old?e.o:f.offset(this.ts);r=jo(this.ts,v),n=Number.isNaN(r.year)?new Uf("invalid input"):null,r=n?null:r,s=n?null:v}this._zone=f,this.loc=e.loc||Se.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=s,this.isLuxonDateTime=!0}static now(){return new He({})}static local(){const[e,f]=P5(arguments),[n,r,s,o,v,i,P]=f;return v5({year:n,month:r,day:s,hour:o,minute:v,second:i,millisecond:P},e)}static utc(){const[e,f]=P5(arguments),[n,r,s,o,v,i,P]=f;return e.zone=_t.utcInstance,v5({year:n,month:r,day:s,hour:o,minute:v,second:i,millisecond:P},e)}static fromJSDate(e,f={}){const n=IA(e)?e.valueOf():NaN;if(Number.isNaN(n))return He.invalid("invalid input");const r=ur(f.zone,dt.defaultZone);return r.isValid?new He({ts:n,zone:r,loc:Se.fromObject(f)}):He.invalid(ja(r))}static fromMillis(e,f={}){if(br(e))return e<-t5||e>t5?He.invalid("Timestamp out of range"):new He({ts:e,zone:ur(f.zone,dt.defaultZone),loc:Se.fromObject(f)});throw new Ct(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,f={}){if(br(e))return new He({ts:e*1e3,zone:ur(f.zone,dt.defaultZone),loc:Se.fromObject(f)});throw new Ct("fromSeconds requires a numerical input")}static fromObject(e,f={}){e=e||{};const n=ur(f.zone,dt.defaultZone);if(!n.isValid)return He.invalid(ja(n));const r=Se.fromObject(f),s=Xo(e,o5),{minDaysInFirstWeek:o,startOfWeek:v}=H6(s,r),i=dt.now(),P=he(f.specificOffset)?n.offset(i):f.specificOffset,d=!he(s.ordinal),l=!he(s.year),c=!he(s.month)||!he(s.day),u=l||c,z=s.weekYear||s.weekNumber;if((u||d)&&z)throw new E9("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&d)throw new E9("Can't mix ordinal dates with month/day");const b=z||s.weekday&&!u;let x,H,p=jo(i,P);b?(x=lM,H=PM,p=bo(p,o,v)):d?(x=cM,H=dM,p=U1(p)):(x=s5,H=a5);let X=!1;for(const Z of x){const R=s[Z];he(R)?X?s[Z]=H[Z]:s[Z]=p[Z]:X=!0}const m=b?FA(s,o,v):d?CA(s):p6(s),h=m||X6(s);if(h)return He.invalid(h);const w=b?z6(s,o,v):d?x6(s):s,[j,L]=wo(w,P,n),g=new He({ts:j,zone:n,o:L,loc:r});return s.weekday&&u&&e.weekday!==g.weekday?He.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${g.toISO()}`):g.isValid?g:He.invalid(g.invalid)}static fromISO(e,f={}){const[n,r]=MV(e);return f8(n,r,f,"ISO 8601",e)}static fromRFC2822(e,f={}){const[n,r]=WV(e);return f8(n,r,f,"RFC 2822",e)}static fromHTTP(e,f={}){const[n,r]=qV(e);return f8(n,r,f,"HTTP",f)}static fromFormat(e,f,n={}){if(he(e)||he(f))throw new Ct("fromFormat requires an input string and a format");const{locale:r=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0}),[v,i,P,d]=iM(o,e,f);return d?He.invalid(d):f8(v,i,n,`format ${f}`,e,P)}static fromString(e,f,n={}){return He.fromFormat(e,f,n)}static fromSQL(e,f={}){const[n,r]=CV(e);return f8(n,r,f,"SQL",e)}static invalid(e,f=null){if(!e)throw new Ct("need to specify a reason the DateTime is invalid");const n=e instanceof Uf?e:new Uf(e,f);if(dt.throwOnInvalid)throw new zA(n);return new He({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,f={}){const n=e5(e,Se.fromObject(f));return n?n.map(r=>r?r.val:null).join(""):null}static expandFormat(e,f={}){return S6(Et.parseFormat(e),Se.fromObject(f)).map(r=>r.val).join("")}static resetCache(){Do=void 0,Lo={}}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?r3(this).weekYear:NaN}get weekNumber(){return this.isValid?r3(this).weekNumber:NaN}get weekday(){return this.isValid?r3(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?a3(this).weekday:NaN}get localWeekNumber(){return this.isValid?a3(this).weekNumber:NaN}get localWeekYear(){return this.isValid?a3(this).weekYear:NaN}get ordinal(){return this.isValid?U1(this.c).ordinal:NaN}get monthShort(){return this.isValid?yo.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?yo.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?yo.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?yo.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,f=6e4,n=Ho(this.c),r=this.zone.offset(n-e),s=this.zone.offset(n+e),o=this.zone.offset(n-r*f),v=this.zone.offset(n-s*f);if(o===v)return[this];const i=n-o*f,P=n-v*f,d=jo(i,o),l=jo(P,v);return d.hour===l.hour&&d.minute===l.minute&&d.second===l.second&&d.millisecond===l.millisecond?[f9(this,{ts:i}),f9(this,{ts:P})]:[this]}get isInLeapYear(){return pa(this.year)}get daysInMonth(){return xo(this.year,this.month)}get daysInYear(){return this.isValid?U9(this.year):NaN}get weeksInWeekYear(){return this.isValid?Xa(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Xa(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:f,numberingSystem:n,calendar:r}=Et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:f,numberingSystem:n,outputCalendar:r}}toUTC(e=0,f={}){return this.setZone(_t.instance(e),f)}toLocal(){return this.setZone(dt.defaultZone)}setZone(e,{keepLocalTime:f=!1,keepCalendarTime:n=!1}={}){if(e=ur(e,dt.defaultZone),e.equals(this.zone))return this;if(e.isValid){let r=this.ts;if(f||n){const s=e.offset(this.ts),o=this.toObject();[r]=wo(o,s,e)}return f9(this,{ts:r,zone:e})}else return He.invalid(ja(e))}reconfigure({locale:e,numberingSystem:f,outputCalendar:n}={}){const r=this.loc.clone({locale:e,numberingSystem:f,outputCalendar:n});return f9(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const f=Xo(e,o5),{minDaysInFirstWeek:n,startOfWeek:r}=H6(f,this.loc),s=!he(f.weekYear)||!he(f.weekNumber)||!he(f.weekday),o=!he(f.ordinal),v=!he(f.year),i=!he(f.month)||!he(f.day),P=v||i,d=f.weekYear||f.weekNumber;if((P||o)&&d)throw new E9("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(i&&o)throw new E9("Can't mix ordinal dates with month/day");let l;s?l=z6({...bo(this.c,n,r),...f},n,r):he(f.ordinal)?(l={...this.toObject(),...f},he(f.day)&&(l.day=Math.min(xo(l.year,l.month),l.day))):l=x6({...U1(this.c),...f});const[c,u]=wo(l,this.o,this.zone);return f9(this,{ts:c,o:u})}plus(e){if(!this.isValid)return this;const f=It.fromDurationLike(e);return f9(this,n5(this,f))}minus(e){if(!this.isValid)return this;const f=It.fromDurationLike(e).negate();return f9(this,n5(this,f))}startOf(e,{useLocaleWeeks:f=!1}={}){if(!this.isValid)return this;const n={},r=It.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(r==="weeks")if(f){const s=this.loc.getStartOfWeek(),{weekday:o}=this;o<s&&(n.weekNumber=this.weekNumber-1),n.weekday=s}else n.weekday=1;if(r==="quarters"){const s=Math.ceil(this.month/3);n.month=(s-1)*3+1}return this.set(n)}endOf(e,f){return this.isValid?this.plus({[e]:1}).startOf(e,f).minus(1):this}toFormat(e,f={}){return this.isValid?Et.create(this.loc.redefaultToEN(f)).formatDateTimeFromString(this,e):n3}toLocaleString(e=io,f={}){return this.isValid?Et.create(this.loc.clone(f),e).formatDateTime(this):n3}toLocaleParts(e={}){return this.isValid?Et.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:f=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;const o=e==="extended";let v=s3(this,o);return v+="T",v+=r5(this,o,f,n,r,s),v}toISODate({format:e="extended"}={}){return this.isValid?s3(this,e==="extended"):null}toISOWeekDate(){return go(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:f=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(r?"T":"")+r5(this,o==="extended",f,e,n,s):null}toRFC2822(){return go(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return go(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?s3(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:f=!1,includeOffsetSpace:n=!0}={}){let r="HH:mm:ss.SSS";return(f||e)&&(n&&(r+=" "),f?r+="z":e&&(r+="ZZ")),go(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():n3}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const f={...this.c};return e.includeConfig&&(f.outputCalendar=this.outputCalendar,f.numberingSystem=this.loc.numberingSystem,f.locale=this.loc.locale),f}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,f="milliseconds",n={}){if(!this.isValid||!e.isValid)return It.invalid("created by diffing an invalid DateTime");const r={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=QA(f).map(It.normalizeUnit),o=e.valueOf()>this.valueOf(),v=o?this:e,i=o?e:this,P=SV(v,i,s,r);return o?P.negate():P}diffNow(e="milliseconds",f={}){return this.diff(He.now(),e,f)}until(e){return this.isValid?lt.fromDateTimes(this,e):this}hasSame(e,f,n){if(!this.isValid)return!1;const r=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(f,n)<=r&&r<=s.endOf(f,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const f=e.base||He.fromObject({},{zone:this.zone}),n=e.padding?this<f?-e.padding:e.padding:0;let r=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(r=e.unit,s=void 0),i5(f,this.plus(n),{...e,numeric:"always",units:r,unit:s})}toRelativeCalendar(e={}){return this.isValid?i5(e.base||He.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(He.isDateTime))throw new Ct("min requires all arguments be DateTimes");return m6(e,f=>f.valueOf(),Math.min)}static max(...e){if(!e.every(He.isDateTime))throw new Ct("max requires all arguments be DateTimes");return m6(e,f=>f.valueOf(),Math.max)}static fromFormatExplain(e,f,n={}){const{locale:r=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0});return $6(o,e,f)}static fromStringExplain(e,f,n={}){return He.fromFormatExplain(e,f,n)}static buildFormatParser(e,f={}){const{locale:n=null,numberingSystem:r=null}=f,s=Se.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new _6(s,e)}static fromFormatParser(e,f,n={}){if(he(e)||he(f))throw new Ct("fromFormatParser requires an input string and a format parser");const{locale:r=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:r,numberingSystem:s,defaultToEN:!0});if(!o.equals(f.locale))throw new Ct(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${f.locale}`);const{result:v,zone:i,specificOffset:P,invalidReason:d}=f.explainFromTokens(e);return d?He.invalid(d):f8(v,i,n,`format ${f.format}`,e,P)}static get DATE_SHORT(){return io}static get DATE_MED(){return Wc}static get DATE_MED_WITH_WEEKDAY(){return pA}static get DATE_FULL(){return qc}static get DATE_HUGE(){return kc}static get TIME_SIMPLE(){return Gc}static get TIME_WITH_SECONDS(){return Rc}static get TIME_WITH_SHORT_OFFSET(){return Bc}static get TIME_WITH_LONG_OFFSET(){return Yc}static get TIME_24_SIMPLE(){return Fc}static get TIME_24_WITH_SECONDS(){return Cc}static get TIME_24_WITH_SHORT_OFFSET(){return Ec}static get TIME_24_WITH_LONG_OFFSET(){return Ic}static get DATETIME_SHORT(){return Qc}static get DATETIME_SHORT_WITH_SECONDS(){return Uc}static get DATETIME_MED(){return Jc}static get DATETIME_MED_WITH_SECONDS(){return Kc}static get DATETIME_MED_WITH_WEEKDAY(){return XA}static get DATETIME_FULL(){return Sc}static get DATETIME_FULL_WITH_SECONDS(){return _c}static get DATETIME_HUGE(){return $c}static get DATETIME_HUGE_WITH_SECONDS(){return e6}}function wa(t){if(He.isDateTime(t))return t;if(t&&t.valueOf&&br(t.valueOf()))return He.fromJSDate(t);if(t&&typeof t=="object")return He.fromObject(t);throw new Ct(`Unknown datetime argument: ${t}, of type ${typeof t}`)}const o3=[{name:"Sydney",open:"22:00",close:"7:00"},{name:"Tokyo",open:"0:00",close:"9:00"},{name:"London",open:"8:00",close:"17:00"},{name:"New-York",open:"13:00",close:"22:00"}];function Ye(t,e=2){return isNaN(+t)?0:Math.round(+t*10**e)/10**e}function To(t){if(t){const e=t.toString();if(/\B(?=(\d{3})+(?!\d))/g.test(e))if(e.includes(".")){let n=e.split(".");return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g," "),n.join(".")}else return e.replace(/\B(?=(\d{3})+(?!\d))/g," ");else return e}else return t}function zM(t,e){const f=parseFloat(t.entry_price),n=t.amount,r=t.pair.toLowerCase(),s=t.side,o=t.leverage,i=(l=>l.endsWith("sek")||l.endsWith("mxn")||l.endsWith("jpy")?1e3:l.startsWith("xau")||l.endsWith("f.t")||l.endsWith(".b")||l.endsWith("xpd")||l.endsWith("xag")||l.endsWith("xbr")||l.endsWith("xng")||l.endsWith("xpt")||l.endsWith("xti")?100:l==="cocoa"||l==="coffee"?1:l==="brent"?100:1e5)(r);let P=0,d=0;return s==="LONG"?(P=(e.bid-f)*n*i,d=P/(n*f*i/o)):s==="SHORT"&&(P=(f-e.ask)*n*i,d=P/(n*f*i/o)),{pnl:P,pnl_roi:d}}function xM(t,e){const f=parseFloat(t.entry_price),n=t.amount,r=t.multiplier,s=t.side;let o=0,v=0;return s==="SHORT"?(o=(f-e)*Math.abs(n),v=(f-e)*n*r/(f*Math.abs(n))*100):s==="LONG"&&(o=(e-f)*Math.abs(n),v=(e-f)*n*r/(f*Math.abs(n))*100),{pnl:o,pnlToBalanceRatio:v}}function v3(t){if(isNaN(+t))return 0;const e=parseFloat(String(t));if(Number.isInteger(e))return e;const f=e.toString(),n=f.indexOf(".");if(n===-1)return e;const s=f.slice(n+1).search(/[^0]/);if(s===-1)return e;const v=10**(s+4);return Math.round(e*v)/v}function ga(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}function ze(t,e,f={}){const{repeat:n=4,mask:r="*",prefix:s="",suffix:o=""}=f;let v,i;return t?(v=s==="$"?a8():s,i=o==="$"?a8():o,v+r.repeat(n)+i):e}function HM(t){return t.reduce((e,f,n)=>n===0?`key=${encodeURIComponent(f.id)}`:e+`&key=${encodeURIComponent(f.id)}`,"")}function n8(){function t(r){return Number(r)===r&&r%1!==0}function e(r){let s=String(r);return s.includes(".75")?s.replace(".75",":45"):s.includes(".25")?s.replace(".25",":15"):s.replace(".5",":30")}const f=Number(rn.getItem("scope360::timezone"))||0,n=t(f)?e(f):f;return`UTC${f>=0?"+":""}${n}`}function pM(t){return new Date(t).getFullYear()}function d5(t,e=!0){const f=e?n8():"UTC+0";return He.fromISO(t,{setZone:!0}).setZone(f).toFormat("dd LLLL, y, TT")}function r8(t,e="dd/LL/y",f=!0){const n=f?n8():"UTC+0";return He.fromISO(t,{setZone:!0}).setZone(n).toFormat(e)}function XM(t){return t.toISOString().split("T")[0]}function hM(t){return["January","February","March","April","May","June","July","August","September","October","November","December"][new Date(t).getMonth()]}function yM(t){return new Date(t).getDate()}function l5(t){return He.fromISO(t,{setZone:!0}).toFormat("cccc")}function mM(t){const e=new Date(t),n=new Date-e;return Math.floor(n/(1e3*3600*24))}function a8(){const t={USD:"$",EUR:"€",JPY:"¥",GBP:"£",CHF:"Fr.",CAD:"$",AUD:"$",NOK:"kr",SEK:"kr",DKK:"kr"},e=c5();return e&&t[e?.split("::")[0]]?t[e?.split("::")[0]]:t.USD}function c5(){let t=!1;return(window.location.hostname.includes("fx")||window.location.host==="localhost:5173")&&(t=!0),t?rn.getItem("scope360::currency_fx"):rn.getItem("scope360::currency")}function n9(){const t=c5();return t&&t?.split("::")[1]?+t?.split("::")[1]:1}const Ve=(t,e={isPercentage:!1,isFixed:!0,isPlus:!1})=>{let f;t>=0?f=e.isPlus&&t!==0?"+":"":f="-";let n=Math.abs(t);return e.isFixed&&(n=Ye(n)),e.isPercentage?To(`${f}${n}%`):To(`${f}${a8()}${Ye(n*n9())}`)};function jM(t,e,f=!1){const n=+new Date(e)-+new Date(t);return z5(n,f)}function u5(){function t(o){const[v,i]=o.split(":").map(Number);return v+i/60}function e(o){const v=Math.floor(o),i=o%1*60;return`${String(v).padStart(2,"0")}:${String(i).padStart(2,"0")}`}function f(o){const v=o.match(/([+-]?)(\d+):?(\d+)?/);if(!v)return 0;const i=v[1]==="-"?-1:1,P=parseInt(v[2],10),d=v[3]?parseInt(v[3],10):0;return i*(P+d/60)}const n=n8(),r=f(n);return o3.map(o=>{const v=t(o.open),i=t(o.close),P=(v+r+24)%24,d=(i+r+24)%24;return{name:o.name,open:e(P),close:e(d)}})}function b5(){const t=new Date,e=t.getUTCHours(),f=t.getUTCMinutes(),n=t.getUTCSeconds(),r=e*3600+f*60+n,s=o3.filter(({open:o,close:v})=>{const[i,P]=o.split(":").map(Number),[d,l]=v.split(":").map(Number),c=i*3600+P*60,u=d*3600+l*60;return c<u?r>=c&&r<u:r>=c||r<u});if(s.length>1){const v=Math.min(...s.map(({close:i})=>{const[P,d]=i.split(":").map(Number);return P*3600+d*60}))-r;return{activeMarkets:s.map(({name:i})=>i),overlapTime:v>0?Math.floor(v/60):0}}else{if(s.length===1)return{activeMarkets:s.map(({name:o})=>o),overlapTime:0};{const v=o3.map(({name:i,open:P})=>{const[d,l]=P.split(":").map(Number),c=d*3600+l*60,u=c>=r?c-r:86400-r+c;return{name:i,timeUntilOpenInSeconds:u}}).reduce((i,P)=>i.timeUntilOpenInSeconds<P.timeUntilOpenInSeconds?i:P);return{activeMarkets:[],nextMarket:v.name,timeUntilNextOpen:Math.floor(v.timeUntilOpenInSeconds/60),timeUntilNextOpenInSeconds:v.timeUntilOpenInSeconds}}}}function s8(t,e){return t>=1e3||t<=-1e3?ze(e,Ye(t/1e3,2)+"k",{repeat:3}):ze(e,Ye(t,2),{repeat:3})}function z5(t,e=!1){const f=Math.floor(t/864e5),n=Math.floor(t%(1e3*60*60*24)/(1e3*60*60)),r=Math.floor(t%(1e3*60*60)/(1e3*60)),s=Math.floor(t%(1e3*60)/1e3);if(e)return f>0?`${f} day${f>1?"s":""} ${n} hr${n>1?"s":""}`:n>0?`${n} hr${n>1?"s":""} ${r} min${r>1?"s":""}`:r>0?`${r} min${r>1?"s":""} ${s} sec${s>1?"s":""}`:`${s} sec`;{const o=[];return f>0&&o.push(`${f}d`),n>0&&o.push(`${n}h`),r>0&&o.push(`${r}m`),s>0&&o.push(`${s}s`),o.join(" ")}}function i3(t){const e=/^(.*?)(BTC|ETH|USDT|USD|USDC)$/,f=t.match(e);if(f){const n=f[1],r=f[2];return n===""||r===""?t:`${n}/${r}`}else return t}function r9(t){const e=["BTC","ETH","USDT","USD","EUR","GBP","JPY","CAD","CHF","USDC","CNH"];for(let f=1;f<t.length;f++){const n=t.substring(0,f),r=t.substring(f);if(e.includes(n)||e.includes(r))return`${n}/${r}`}return t}function Da(t,e){const n=r9(t).split("/")[e];if(n)return n.toLowerCase()}function wM(t,e){let f=[],n=new Date(e,t,1),r=new Date(e,t+1,0),s=r.getDate(),o=1,v;for(n.getDay()===1?v=7:n.getDay()===0?(o=new Date(e,t,0).getDate()-6+1,v=1):(o=new Date(e,t,0).getDate()+1-n.getDay()+1,v=7-n.getDay()+1,f.push({start:o,end:v}),o=v+1,v=v+7);o<=s;)if(f.push({start:o,end:v}),o=v+1,v=v+7,v=o===1&&v===8?1:v,v>s&&o<=s){v=v-s,f.push({start:o,end:v});break}return f.map(({start:i,end:P},d)=>{const l=+(i>P&&d===0);return Array.from({length:7},(c,u)=>{const z=new Date(e,t-l,i+u);return{date:z.getDate(),month:z.getMonth(),day:z.toLocaleString("en",{weekday:"long"})}})})}function gM(t,e,f){let n=new Date(t),r=new Date(e);n>r&&([n,r]=[r,n]);let s=[],o=new Date(n.getFullYear(),n.getMonth(),1),v=0;for(;o<=r;){let i=o.toLocaleString("en",{month:"long",year:"numeric"});f?s.push({month:o.getMonth(),year:o.getFullYear(),name:i,id:v}):s.push(i),v=v+1,o.setMonth(o.getMonth()+1)}return s}function DM(t,e,f){let n=new Date(t),r=new Date(e);n>r&&([n,r]=[r,n]);let s=[],o=n.getFullYear(),v=r.getFullYear(),i=0;for(let P=o;P<=v;P++)f?s.push({value:P,name:P.toString(),id:i}):s.push(P.toString()),i=i+1;return s}function LM(t,e){let r=new Date(t).getTime()-e*24*60*60*1e3;return new Date(r).toISOString().split(".")[0]+"Z"}function TM(t){function e(n,r){let s=[],o=new Date(r,n,1),v=new Date(r,n+1,0),i=v.getDate(),P=1,d;for(o.getDay()===1?d=7:o.getDay()===0?(P=new Date(r,n,0).getDate()-6+1,d=1):(P=new Date(r,n,0).getDate()+1-o.getDay()+1,d=7-o.getDay()+1,s.push({start:P,end:d}),P=d+1,d=d+7);P<=i;)if(s.push({start:P,end:d}),P=d+1,d=d+7,d=P===1&&d===8?1:d,d>i&&P<=i){d=d-i,s.push({start:P,end:d});break}return s.map(({start:l,end:c},u)=>{const z=+(l>c&&u===0);return Array.from({length:7},(b,x)=>{const H=new Date(r,n-z,l+x);return{date:H.getMonth()===n?H.getDate():0,day:H.toLocaleString("en",{weekday:"long"})}})})}let f=[];for(let n=0;n<12;n++)f.push(e(n,t));return f}function NM(t){const e=t.map(n=>new Date(n));return new Date(Math.min(...e.map(n=>n.getTime())))}const ZM={class:"doughnut-wrapper"},OM={class:"doughnut-wrapper__total"},AM={class:"doughnut-wrapper__total__value"},VM={__name:"DoughnutChart",props:{total:{type:Number,required:!0},data:{type:Object,required:!0},dataType:{type:String,required:!1},borderColor:{type:String,default:"transparent"},isMask:{type:Boolean,default:!1}},setup(t){_r.register(xT,O1,bc);const e=a.ref(0),f=t,n=a.ref({cutout:75,spacing:2,responsive:!0,maintainAspectRatio:!1,animation:{duration:1500},plugins:{tooltip:{enabled:!1,position:"nearest",external:s},legend:!1}});function r(o,v){let i=document.querySelector(`#${o}-${f.dataType}`);return i||(i=document.createElement("div"),i.classList.add(o),i.setAttribute("id",`${o}-${f.dataType}`),v.canvas.parentNode.appendChild(i)),i}function s(o){const{chart:v,tooltip:i}=o,P=r("chart-tooltip",v);if(i.opacity===0){P.style.opacity="0";return}if(i.body){const x=i.title||[],H=i.body.map(L=>L.lines),p=x[0],X=H[0],m=f.data.labels.findIndex(L=>L===p),h=f.data.datasets[0].backgroundColor[m],w=f.data.totals[m],j=document.createElement("div");for(j.classList.add("chart-tooltip-info"),j.innerHTML=`<div class="chart-tooltip-info__top">
49
49
  <div class="chart-tooltip-info__dot" style="background-color: ${h}"></div>
50
50
  <div class="chart-tooltip-info__pair">${p}</div>
51
51
  </div>