1import{a as Te,_ as we,f as _e,d as Se}from"./BWYBJcO-.js";import{_ as Ve}from"./Bdrrr8b4.js";import{_ as he}from"./D-s63ird.js";import{d as G,o as l,a as v,X as ge,F as De,i as Pe,b as p,u as e,t as m,k as D,g as f,_ as ee,J as Ue,aa as ye,y as de,e as t,$ as Ce,L as re,O as E,P as Ee,Q as Le,R as ce,S as Me,T as Oe,Y as be,w as V,c as P,W as Ie,f as $,Z as Re,a0 as $e,a1 as Z,K as Be,v as qe,a2 as pe,aR as je,r as Ne,l as ve,bk as le,aP as fe,m as ze,V as Ye,aB as We,aC as Fe}from"./BUppo6Cd.js";import{t as Ge,m as He,c as Xe,_ as Je}from"./CK0gFqnC.js";import{_ as Ke}from"./CGiElvTv.js";import{_ as Qe}from"./DU07-c38.js";import{f as M}from"./Co1nYUBs.js";import{s as Q,m as Ze,l as et,a as tt}from"./H9dSmQhf.js";import{_ as at}from"./BiL0X3WP.js";import{o as it,_ as st,s as ot}from"./CttZuHsO.js";function nt(c,a){let o,u;if(a===void 0)for(const n of c)n!=null&&(o===void 0?n>=n&&(o=u=n):(o>n&&(o=n),u<n&&(u=n)));else{let n=-1;for(let _ of c)(_=a(_,++n,c))!=null&&(o===void 0?_>=_&&(o=u=_):(o>_&&(o=_),u<_&&(u=_)))}return[o,u]}const rt={key:0,class:"avatar-group__item avatar-group__item_more text-14-regular"},lt=G({__name:"UiAvatarGroup",props:{images:{},maxVisible:{default:6},size:{default:40}},setup(c){const a=c,o=f(()=>a.images.length<=a.maxVisible?a.images:a.images.slice(0,a.maxVisible-1)),u=f(()=>{const n=a.images.length;return n>a.maxVisible?n-(a.maxVisible-1):0});return(n,_)=>{const b=he;return l(),v("div",{class:"avatar-group",style:ge({"--avatar-size":a.size+"px"})},[(l(!0),v(De,null,Pe(e(o),(w,x)=>(l(),v("div",{key:x,class:"avatar-group__item"},[p(b,{src:w,width:a.size,height:a.size},null,8,["src","width","height"])]))),128)),e(u)>0?(l(),v("div",rt," +"+m(e(u)),1)):D("",!0)],4)}}}),ct=Object.assign(ee(lt,[["__scopeId","data-v-edf0bbef"]]),{__name:"UiAvatarGroup"}),dt=["id","value","name","checked","aria-describedby","aria-invalid"],mt=["for"],ut=G({__name:"UiRadioButton",props:Ce({value:{},name:{},ariaDescribedby:{},ariaInvalid:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(c){const a=c,o=Ue(c,"modelValue"),u=ye(),n=f(()=>o.value===a.value);return(_,b)=>(l(),v("div",{class:de(["radio",{radio_checked:e(n)}])},[t("input",{id:e(u),class:"radio__original",type:"radio",value:a.value,name:a.name,checked:e(n),"aria-describedby":a.ariaDescribedby,"aria-invalid":a.ariaInvalid?"true":void 0,onChange:b[0]||(b[0]=w=>_.$emit("update:modelValue",w.target.value))},null,40,dt),t("label",{class:"radio__label text-12-regular",for:e(u)},m(c.value),9,mt)],2))}}),_t=Object.assign(ee(ut,[["__scopeId","data-v-d1dd1ccc"]]),{__name:"UiRadioButton"}),pt={class:"wrapper"},vt={class:"text-12-regular"},ft={class:"text-12-bold"},ht=2,gt=G({__name:"LineChart",props:{quotes:{},changeValue:{},loading:{type:Boolean}},setup(c){const a=c,o=f(()=>a.quotes.map(h=>({date:new Date(h.at),price:Number(h.price),priceString:h.priceString||h.price}))),u=f(()=>Z(a.changeValue||0).lessThan(0)?"negative":"positive"),n={top:18,right:0,bottom:0,left:0},_=re("rootElem"),b=re("svgWrapperElem"),w=re("tooltipRef");let x=null;const O=E(o.value[0]),H=f(()=>o.value.length>=ht),k=E(!1),y=E(!1),T=E({}),{y:g}=Ee(window),{width:U}=Le(w),B=f(()=>U.value/2+4),te=f(()=>({top:`${T.value.top+g.value}px`,left:`${Math.min(Math.max(T.value.left,B.value),document.body.clientWidth-B.value)}px`,transform:"translate(-50%, calc(-100% - 8px))"}));ce(()=>g.value,()=>{q()}),ce(()=>o.value,()=>{$e(()=>{d()})}),Me(()=>{ie(),Oe(b.value,()=>{d()})});function ae(){x?.selectAll("*").remove()}function ie(){k.value||(x=Q(b.value).append("svg").attr("width","100%").attr("height","100%").attr("preserveAspectRatio","xMidYMid meet").attr("aria-hidden","true").style("display","block").append("g").attr("transform","translate("+n.left+","+n.top+")"),k.value=!0)}function d(){ae(),se()}function se(){if(!x||!H.value||!_.value)return;const h=Math.max(_.value?.clientWidth-n.right-n.left,0),j=Math.max((b.value?.clientHeight||0)-n.top-n.bottom,0),C=Ge().domain(nt(o.value,r=>r.date)).range([0,h]),X=He(o.value,r=>r.price)||0,N=Ze(o.value,r=>r.price)||0,s=N/8,i=et().domain([X-s,N+s]).range([j,0]);if(x.append("g").call(Xe(i)).remove(),X===0&&N===0)return;x.append("path").datum(o.value).attr("fill","none").attr("stroke",u.value==="positive"?"var(--color-tree-palm)":"var(--color-prometheus-coral)").attr("stroke-width",2).attr("d",tt(r=>C(r.date),r=>i(r.price)));const S=h/(o.value.length-1),L=x.append("g").selectAll().data(o.value).join("g");L.append("rect").attr("x",r=>C(r.date)).attr("y",0).attr("width",`${S}px`).attr("height",j).attr("fill","transparent").style("transform",`translateX(-${S/2}px)`).on("mouseenter touchstart touchmove",(r,oe)=>{if(r.type==="mouseenter"){O.value=oe,T.value=r.target.parentElement.querySelector("circle").getBoundingClientRect(),R(),Q(r.target.parentElement.querySelector("circle")).classed("opacity",!1),I();return}r.preventDefault();const z=r.touches[0],Y=document.elementFromPoint(z.clientX,z.clientY)?.closest("g");if(!Y)return;const J=Q(Y).datum();if(!J)return;const W=Y.querySelector("circle");W&&(O.value=J,T.value=W.getBoundingClientRect(),R(),Q(W).classed("opacity",!1),I())}).on("mouseleave touchend touchcancel",r=>{r.preventDefault(),R(),q()}),L.append("circle").attr("r",4).attr("cx",r=>C(r.date)).attr("cy",r=>i(r.price)).attr("fill","var(--color-text-main)").style("pointer-events","none").classed("opacity",!0)}function I(){y.value=!0}function q(){y.value=!1}function R(){x?.selectAll("circle").classed("opacity",!0)}return(h,j)=>{const C=be;return l(),v("div",pt,[t("div",{ref_key:"rootElem",ref:_,class:"chart"},[p(C,null,{default:V(()=>[(l(),P(Ie,{to:"body"},[e(y)?(l(),v("div",{key:0,ref_key:"tooltipRef",ref:w,style:ge(e(te)),class:"chart-tooltip"},[t("div",vt,m(("formatDateToDayTime"in h?h.formatDateToDayTime:e(Te))(e(O).date)),1),t("div",ft,m(("formatAmou
1nt"in h?h.formatAmount:e(M))(e(O).priceString)),1)],4)):D("",!0)]))]),_:1}),$(t("div",{class:de(["chart__target",{chart__target_loading:a.loading}])},[t("div",{ref_key:"svgWrapperElem",ref:b,class:"chart__svg-wrapper",role:"img","aria-label":"Price chart"},null,512)],2),[[Re,e(H)]])],512)])}}}),yt=Object.assign(ee(gt,[["__scopeId","data-v-d757a178"]]),{__name:"LineChart"}),bt=["aria-labelledby","aria-label"],xt=["id"],At={key:1,class:"timemachine__description text-16-regular text-color-secondary"},kt={class:"timemachine__grid",role:"status","aria-label":"Time Machine","aria-live":"polite","aria-busy":"true"},Tt={key:0,class:"timemachine__grid"},wt={key:1,class:"timemachine__grid-item timemachine__grid-item_form"},St={class:"timemachine__form-info"},Vt={class:"timemachine__form-info-controls"},Dt={class:"text-16-medium"},Pt={class:"text-color-secondary"},Ut={class:"timemachine__form-info-price-change"},Ct={class:"timemachine__form-inputs"},Et={class:"timemachine__form-inputs-period"},Lt={class:"timemachine__form-inputs-amount"},Mt={class:"timemachine__form-inputs-button"},Ot={key:3,class:"timemachine__grid-item timemachine__grid-item_data"},It={key:0,class:"timemachine__loading-container"},Rt={class:"timemachine__data-grid"},$t={class:"timemachine__data-grid-item"},Bt={class:"text-16-medium"},qt={class:"timemachine__data-grid-item"},jt={class:"text-16-medium"},Nt={class:"timemachine__data-grid-item"},zt={class:"text-16-medium"},Yt={class:"timemachine__data-grid-item"},Wt={class:"timemachine__data-grid-item-amount text-16-medium"},Ft={class:"timemachine__data-grid-item"},Gt={class:"timemachine__data-grid-item-amount text-16-medium"},Ht={class:"timemachine__data-grid-item"},Xt={class:"timemachine__data-grid-item-amount text-16-medium"},Jt={class:"timemachine__data-grid-item"},Kt={class:"timemachine__data-grid-item-asset"},Qt={class:"text-16-medium"},Zt={class:"timemachine__data-grid-item"},ea={class:"timemachine__data-grid-item-asset"},ta={class:"text-16-medium"},aa=500,ia=G({__name:"SectionTimeMachine",props:{title:{},description:{},ctaLabel:{default:"Invest"},ctaAnalytics:{default:"Invest"}},setup(c){const a=c,{defaultEquivalentAsset:o,signUpLink:u}=Be(),n=ye(),{catalog:_}=qe();function b(s){return _.value.refOfMachine(s)?.display??s}const w=Z("1000000000000000000000000"),{data:x,error:O,status:H}=pe("/api/product/public/portfolios/v1/template/list",{method:"POST",body:{offset:0,limit:5},server:!1},"$5Sx3Y-I-SY"),k=f(()=>x.value?.result.templates??[]),y=E(0),T=f(()=>k.value[y.value]??null),g=E({amount:"10000",period:"6m"}),U=E({}),B=E(null),te=f(()=>Object.keys(U.value).length===0),ae=it({amount:ot().refine(s=>Z(s||0).lessThanOrEqualTo(w),{message:`Amount must be less than ${M(w.toString(),o)}`}).refine(s=>Z(s||0).greaterThan(0),{message:`Amount must be greater than ${M(0,o)}`}),period:st(["6m","1Y"])}),ie=f(()=>({period:g.value.period,amount_eq:{asset:o.toUpperCase(),value:Number(g.value.amount)},percentages:T.value?.percentages.map(s=>({asset:s.asset,value:Number(s.value)}))??[]})),{data:d,execute:se,status:I}=pe("/api/product/public/portfolios/v1/backtest/portfolio",{method:"POST",body:ie,watch:!1,immediate:!1,server:!1},"$-F0yjBOXg8");ce([T,()=>g.value.period],()=>{C()}),je(()=>g.value.amount,()=>{C()},{debounce:aa});const q=f(()=>Object.fromEntries(k.value.map(s=>s.percentages.map(i=>[i.asset,fe(i.asset,i.logo||void 0)])).flat())),R=f(()=>q.value[d.value?.result.highest_gaining_asset||""]||null),h=f(()=>q.value[d.value?.result.least_profinable_asset||""]||null);function j(){const{success:s,error:i}=ae.safeParse(g.value);s?U.value={}:U.value=Object.fromEntries(Object.entries(i?.flatten().fieldErrors||{}).map(([S,L])=>[S,L[0]]))}async function C(){if(B.value=null,j(),!te.value)throw U.value;try{await se()}catch(s){throw B.value=s.message||"Something went wrong","Something went wrong"}}function X(){y.value=(y.value+1)%k.value.length}function N(){y.value=(y.value-1+k.value.length)%k.value.length}return(s,i)=>{const S=we,L=Ve,r=ct,oe=Je,z=_t,me=Ke,Y=Qe,J=ze,W=Ye,xe=yt,ue=he,Ae=be,ke=at,F=Ne("track");return l(),v("section",{class:"timemachine","data-track-section":"time-machine","aria-labelledby":a.title?e(n):void 0,"aria-label":a.title?void 0:"Time Machine"},[p(ke,{size:"less-default"},{default:V(()=>[a.title?(l(),v("h2",{key:0,id:e(n),class:de(["timemachine__title text-h2",{"timemachine__title_with-description":a.description}])},m(a.title),11,xt)):D("",!0),a.description?(l(),v("p",At,m(a.description),1)):D("",!0),p(Ae,null,{fallback:V(()=>[t("div",kt,[p(S,{class:"border-radius-m"}),p(S,{class:"border-radius-m"})])]),default:V(()=>[!e(O)&&(e(k).length>0||e(I)==="pending"||e(H)==="pending")?(l(),v("div",Tt,[e(T)?(l(),v("div",wt,[t("div",St,[t("div",Vt,[$(p(L,{is:"prev",onClick:N},null,512),[[F,"Previous Template"]]),t("div",Dt,[ve(m(e(y)+1),1),t("span",Pt,"/"+m(e(k).length),1)]),$(p(L,{is:"next",onClick:X},null,512),[[F,"Next Template"]])]),p(le,{name:"fade",mode:"out-in"},{default:V(()=>[(l(),v("div",{key:e(y),class:"timemachine__form-info-assets"},[(l(),P(r,{images:e(T).percentages.map(A=>("getAssetLogoUrl"in s?s.getAssetLogoUrl:e(fe))(A.asset,A.logo||void 0)).filter(
1Boolean),key:e(y)},null,8,["images"]))]))]),_:1}),p(le,{name:"fade",mode:"out-in"},{default:V(()=>[(l(),v("div",{key:e(y),class:"timemachine__form-info-title text-24-medium"},m(e(T).name),1))]),_:1}),t("div",Ut,[p(le,{name:"fade",mode:"out-in"},{default:V(()=>[e(I)!=="pending"&&e(d)?(l(),P(oe,{key:0,value:e(d).result.historical_return_percent||0},null,8,["value"])):D("",!0)]),_:1})])]),t("div",Ct,[p(me,{"error-text":e(U).period},{default:V(({errorId:A,hasError:K})=>[t("div",Et,[$(p(z,{modelValue:e(g).period,"onUpdate:modelValue":i[0]||(i[0]=ne=>e(g).period=ne),value:"6m",name:"period","aria-describedby":K?A:void 0,"aria-invalid":K},null,8,["modelValue","aria-describedby","aria-invalid"]),[[F,"Period 6m"]]),$(p(z,{modelValue:e(g).period,"onUpdate:modelValue":i[1]||(i[1]=ne=>e(g).period=ne),value:"1Y",name:"period","aria-describedby":K?A:void 0,"aria-invalid":K},null,8,["modelValue","aria-describedby","aria-invalid"]),[[F,"Period 1Y"]])])]),_:1},8,["error-text"]),t("div",Lt,[p(Y,{modelValue:e(g).amount,"onUpdate:modelValue":i[2]||(i[2]=A=>e(g).amount=A),label:"Enter Portfolio Amount","decimal-digits":2,suffix:e(o).toUpperCase(),error:e(U).amount},null,8,["modelValue","suffix","error"])]),t("div",Mt,[$((l(),P(J,{wide:"",to:e(u),external:""},{default:V(()=>[ve(m(a.ctaLabel),1)]),_:1},8,["to"])),[[F,a.ctaAnalytics]])])])])):(l(),P(S,{key:0,class:"border-radius-m"})),e(d)?(l(),v("div",Ot,[e(I)==="pending"?(l(),v("div",It,[p(W,{class:"timemachine__loading-spinner"})])):D("",!0),p(xe,{quotes:e(d).result.history.map(A=>({at:A.at,price:A.value,priceString:("formatAmount"in s?s.formatAmount:e(M))(A.value,e(o))}))??[],"change-value":e(d).result.historical_return_percent},null,8,["quotes","change-value"]),t("div",Rt,[t("div",$t,[i[3]||(i[3]=t("div",{class:"text-12-regular text-color-secondary"},"Date range",-1)),t("div",Bt,m(("formatDate"in s?s.formatDate:e(_e))(e(d).result.start_date))+" - "+m(("formatDate"in s?s.formatDate:e(_e))(e(d).result.end_date)),1)]),t("div",qt,[i[4]||(i[4]=t("div",{class:"text-12-regular text-color-secondary"},"Allocation",-1)),t("div",jt,m(e(d).result.by_asset.length)+" Assets",1)]),t("div",Nt,[i[5]||(i[5]=t("div",{class:"text-12-regular text-color-secondary"},"Historical Return (%)",-1)),t("div",zt,m(("formatPercent"in s?s.formatPercent:e(Se))(e(d).result.historical_return_percent||0)),1)]),t("div",Yt,[i[6]||(i[6]=t("div",{class:"text-12-regular text-color-secondary"},"Historical Return (Eqv.)",-1)),t("div",Wt,m(("formatAmount"in s?s.formatAmount:e(M))(e(d).result.historical_return_eq||0,e(o),{approxy:!0})),1)]),t("div",Ft,[i[7]||(i[7]=t("div",{class:"text-12-regular text-color-secondary"},"Original Value",-1)),t("div",Gt,m(("formatAmount"in s?s.formatAmount:e(M))(e(d).result.original_value_eq,e(o))),1)]),t("div",Ht,[i[8]||(i[8]=t("div",{class:"text-12-regular text-color-secondary"},"Current Value",-1)),t("div",Xt,m(("formatAmount"in s?s.formatAmount:e(M))(e(d).result.current_value_eq,e(o))),1)]),t("div",Jt,[i[9]||(i[9]=t("div",{class:"text-12-regular text-color-secondary"},"Highest-Gaining Asset",-1)),t("div",Kt,[e(R)?(l(),P(ue,{key:0,src:e(R),class:"timemachine__data-grid-item-asset-logo",width:22,height:22},null,8,["src"])):D("",!0),t("div",Qt,m(b(e(d).result.highest_gaining_asset)),1)])]),t("div",Zt,[i[10]||(i[10]=t("div",{class:"text-12-regular text-color-secondary"},"Least Profitable Asset",-1)),t("div",ea,[e(h)?(l(),P(ue,{key:0,src:e(h),class:"timemachine__data-grid-item-asset-logo",width:22,height:22},null,8,["src"])):D("",!0),t("div",ta,m(b(e(d).result.least_profinable_asset)),1)])])])])):(l(),P(S,{key:2,class:"border-radius-m"}))])):D("",!0)]),_:1}),i[11]||(i[11]=t("div",{class:"timemachine__disclaimer text-body text-color-secondary"}," Past performance is not indicative of future results. Always do your own research before investing. ",-1))]),_:1})],8,bt)}}}),sa=Object.assign(ee(ia,[["__scopeId","data-v-c026f37b"]]),{__name:"SectionTimeMachine"});function oa(c){return{...c.title===void 0?{}:{title:c.title},...c.description===void 0?{}:{description:c.description},...c.ctaLabel===void 0?{}:{ctaLabel:c.ctaLabel},...c.ctaAnalytics===void 0?{}:{ctaAnalytics:c.ctaAnalytics}}}const na=G({inheritAttrs:!1,__name:"SectionTimeMachineLanding",props:{title:{},description:{},ctaLabel:{},ctaAnalytics:{}},setup(c){const a=c,o=f(()=>oa(a));return(u,n)=>(l(),P(sa,We(Fe(o.value)),null,16))}}),ga=Object.assign(na,{__name:"SectionTimeMachineLanding"});export{ga as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.