@backtest-kit/ui 6.1.1 → 6.2.0
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.
- package/build/modules/frontend/build/assets/{Article-CWyVfQen.js → Article-B3sJn9jj.js} +1 -1
- package/build/modules/frontend/build/assets/{Background-DIUtu-ra.js → Background-vKerKkRx.js} +1 -1
- package/build/modules/frontend/build/assets/{Container-DTxXddGS.js → Container-BpsVEc--.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-7ncg3LSs.js → IconPhoto-OJ8YDbpd.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-kiQBnHu6.js → KeyboardArrowLeft-BasR_jXs.js} +1 -1
- package/build/modules/frontend/build/assets/{Refresh-U8dPu9E0.js → Refresh-CWqrXG9u.js} +1 -1
- package/build/modules/frontend/build/assets/emitters-84Kl3lbG.js +1 -0
- package/build/modules/frontend/build/assets/{hasRouteMatch-DZls72N1.js → hasRouteMatch-CnhjHmvr.js} +1 -1
- package/build/modules/frontend/build/assets/{html2canvas-5rfL3_pp.js → html2canvas-D60qFSRE.js} +1 -1
- package/build/modules/frontend/build/assets/{index-D5Tnfsxn.js → index-8foWT5Mj.js} +1 -1
- package/build/modules/frontend/build/assets/index-BWBFhgRg.js +1 -0
- package/build/modules/frontend/build/assets/{index-CEvWVoji.js → index-CK2_oS-n.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DQeQdJdv.js → index-CVo6552X.js} +1 -1
- package/build/modules/frontend/build/assets/{index-C4pCSH-i.js → index-CcisxbBU.js} +1 -1
- package/build/modules/frontend/build/assets/{index-j43kLui2.js → index-Cd5VPLjQ.js} +1 -1
- package/build/modules/frontend/build/assets/{index-CpD_ntxY.js → index-D-1_V7j0.js} +6 -6
- package/build/modules/frontend/build/assets/{index-BvK8_h0e.js → index-D5Th-vBe.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Yv57QEVG.js → index-Dsl-2Lab.js} +1 -1
- package/build/modules/frontend/build/assets/{index-lCSDax0j.js → index-DzN6_JU4.js} +1 -1
- package/build/modules/frontend/build/assets/{index-B2qG0kMv.js → index-UYNJGlrB.js} +1 -1
- package/build/modules/frontend/build/assets/{index.es-BfqP44LA.js → index.es-BD_vECSZ.js} +1 -1
- package/build/modules/frontend/build/assets/markdownit-CgXxhHBO.js +1 -0
- package/build/modules/frontend/build/index.html +1 -1
- package/package.json +4 -4
- package/types.d.ts +2 -1
- package/build/modules/frontend/build/assets/emitters-CmIxea8B.js +0 -1
- package/build/modules/frontend/build/assets/index-C0HUEjyf.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,f as a,U as o,Z as t,t as n,D as i,y as r,V as s,W as l,v as c,X as d,Y as p,$ as h,J as m,a0 as u,a1 as b,a2 as g,B as y,T as v,a3 as x,i as f,l as k,a4 as S,Q as w,a5 as L,a6 as P,a7 as $,I as z,a8 as R,F as j,a9 as C,aa as D}from"./index-
|
|
1
|
+
import{c as e,f as a,U as o,Z as t,t as n,D as i,y as r,V as s,W as l,v as c,X as d,Y as p,$ as h,J as m,a0 as u,a1 as b,a2 as g,B as y,T as v,a3 as x,i as f,l as k,a4 as S,Q as w,a5 as L,a6 as P,a7 as $,I as z,a8 as R,F as j,a9 as C,aa as D}from"./index-D-1_V7j0.js";import{R as T}from"./Refresh-CWqrXG9u.js";import{K as W}from"./KeyboardArrowLeft-BasR_jXs.js";import{I as F}from"./IconPhoto-OJ8YDbpd.js";import{B as O}from"./Background-vKerKkRx.js";import{C as B}from"./Container-BpsVEc--.js";const A=e(a("path",{d:"M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"}),"Dashboard"),V=e(a("path",{d:"M3 10h11v2H3v-2zm0-2h11V6H3v2zm0 8h7v-2H3v2zm15.01-3.13.71-.71c.39-.39 1.02-.39 1.41 0l.71.71c.39.39.39 1.02 0 1.41l-.71.71-2.12-2.12zm-.71.71-5.3 5.3V21h2.12l5.3-5.3-2.12-2.12z"}),"EditNote"),E=new o,H=[{type:t.Link,action:"back-action",label:a(W,{sx:{display:"block"}})},{type:t.Link,action:"back-action",label:"Main"},{type:t.Link,action:"back-action",label:"Overview"}],I=[{action:"download-action",label:"Download",icon:()=>a(r,{icon:i,color:"#4caf50"})},{divider:!0},{action:"dashboard-action",label:"Dashboard",icon:()=>a(r,{icon:A,color:"#4caf50"})},{action:"logs-action",label:"Logs",icon:()=>a(r,{icon:V,color:"#4caf50"})},{divider:!0},{action:"update-now",label:"Refresh",icon:()=>a(r,{icon:T,color:"#4caf50"})}],M=()=>a(n,{items:H,actions:I,onAction:E.next});const N=({data:{type:e},setLoading:o})=>{const{elementRef:t,size:n}=s({closest:".MuiContainer-root",compute:e=>(e.height-=150,e)}),[i,{loading:r,execute:C}]=l(async()=>{if("live"===e){return(await c.storageViewService.listSignalLive()).filter(e=>"closed"===e.status)}return(await c.storageViewService.listSignalBacktest()).filter(e=>"closed"===e.status)},{onLoadStart:()=>o(!0),onLoadEnd:()=>o(!1),deps:[e]}),D=d(i),T=d(e);p(()=>E.subscribe(e=>{if("update-now"===e&&C(),"download-action"===e){const e=new Blob([JSON.stringify(D.current,null,2)],{type:"application/json"}),a=URL.createObjectURL(e);c.layoutService.downloadFile(a,`signals_${T.current}_${Date.now()}.json`)}"dashboard-action"===e&&c.routerService.push(`/dashboard/${T.current}`),"logs-action"===e&&c.routerService.push("/logs"),"back-action"===e&&c.routerService.push("/main")}));const W=h.useMemo(()=>i?i.reduce((e,a)=>(e[a.symbol]||(e[a.symbol]=[]),e[a.symbol].push(a),e),{}):{},[i]),O=e=>{const o=W[e]||[];return o.length?a(j,{children:o.map((o,t)=>{return a(L,{sx:{background:e=>t%2==1?$(e.palette.getContrastText(e.palette.background.paper),.02):void 0},onClick:()=>c.layoutService.pickSignal(o.id),children:[a(b,{primary:a(y,{sx:{display:"flex",gap:2,flexWrap:"wrap",alignItems:"center"},children:[a(v,{variant:"body2",component:"span",sx:{fontWeight:"bold",px:1,py:.5,borderRadius:1,background:"long"===o.position?"#1976D2":"#F57C00",color:"white"},children:"long"===o.position?"LONG":"SHORT"}),a(v,{variant:"body2",component:"span",sx:{fontWeight:"medium"},children:[a(y,{component:"span",sx:{color:"text.secondary",mr:.5},children:"Entry:"}),P(o.priceOpen),"$",o.originalPriceOpen!==o.priceOpen&&a(y,{component:"span",sx:{color:"text.disabled",ml:.5,fontSize:"0.75em",textDecoration:"line-through"},children:[P(o.originalPriceOpen),"$"]})]}),a(v,{variant:"body2",component:"span",sx:{fontWeight:"medium",color:"success.main"},children:[a(y,{component:"span",sx:{color:"text.secondary",mr:.5},children:"TP:"}),P(o.priceTakeProfit),"$",o.originalPriceTakeProfit!==o.priceTakeProfit&&a(y,{component:"span",sx:{color:"text.disabled",ml:.5,fontSize:"0.75em",textDecoration:"line-through"},children:[P(o.originalPriceTakeProfit),"$"]})]}),a(v,{variant:"body2",component:"span",sx:{fontWeight:"medium",color:"error.main"},children:[a(y,{component:"span",sx:{color:"text.secondary",mr:.5},children:"SL:"}),P(o.priceStopLoss),"$",o.originalPriceStopLoss!==o.priceStopLoss&&a(y,{component:"span",sx:{color:"text.disabled",ml:.5,fontSize:"0.75em",textDecoration:"line-through"},children:[P(o.originalPriceStopLoss),"$"]})]}),"pnl"in o&&a(v,{variant:"body2",component:"span",sx:{fontWeight:"medium"},children:[a(y,{component:"span",sx:{color:"text.secondary",mr:.5},children:"Invested:"}),P(o.pnl.pnlEntries),"$"]}),"pnl"in o&&a(v,{variant:"body2",component:"span",sx:{fontWeight:"bold",px:1,py:.5,borderRadius:1,background:o.pnl.pnlPercentage>=0?$("#4caf50",.15):$("#f44336",.15),color:o.pnl.pnlPercentage>=0?"#2e7d32":"#c62828"},children:["PNL: ",o.pnl.pnlPercentage>=0?"+":"",o.pnl.pnlPercentage.toFixed(2),"%"," / ",o.pnl.pnlCost>=0?"+":"",P(o.pnl.pnlCost),"$"]}),o.totalEntries>1&&a(v,{variant:"caption",component:"span",sx:{px:1,py:.25,borderRadius:.5,background:$("#2196f3",.15),color:"#1565c0"},children:["DCA×",o.totalEntries]}),o.totalPartials>0&&a(v,{variant:"caption",component:"span",sx:{px:1,py:.25,borderRadius:.5,background:$("#9c27b0",.15),color:"#6a1b9a"},children:["Partial×",o.totalPartials]}),a(v,{variant:"caption",component:"span",sx:{px:1,py:.25,borderRadius:.5,background:"opened"===o.status?$("#4caf50",.2):"scheduled"===o.status?$("#ff9800",.2):"closed"===o.status?$("#9e9e9e",.2):$("#f44336",.2),color:"opened"===o.status?"#2e7d32":"scheduled"===o.status?"#e65100":"closed"===o.status?"#616161":"#c62828"},children:o.status})]}),secondary:a(v,{pt:.5,variant:"subtitle2",sx:{opacity:.5},children:(n=o.createdAt,new Date(n).toLocaleString([],{year:"numeric",month:"numeric",day:"numeric",hourCycle:"h24",hour:"2-digit",minute:"2-digit",second:"2-digit"}))})}),a(z,{disableRipple:!0,children:a(R,{})})]},`item-${e}-${o.id}`);var n})}):a(u,{children:a(b,{sx:{"& .MuiTypography-body2":{maxWidth:"435px"}},primary:"No signals",secondary:"Signals will be displayed here after they appear"})})};return r?null:a(S,{ref:t,sx:{width:"100%",maxHeight:n.height,overflowX:"hidden",overflowY:"auto",scrollbarWidth:"thin",bgcolor:"background.paper",position:"relative","& ul":{padding:0}},subheader:a("li",{}),children:a(m,{deps:[W],children:async()=>{const o=Object.keys(W),t=await c.symbolGlobalService.getSymbolMap();return o.length?o.map(e=>{var o,n,i;const r=null==(o=t[e])?void 0:o.color,s=(null==(n=W[e])?void 0:n.length)||0;return a("li",{children:a("ul",{children:[a(g,{sx:{background:(l=r,w(l,"#000000")>w(l,"#FFFFFF")?f(r,.1):k(r,.1)),color:"white !important",zIndex:9,display:"flex",alignItems:"center",justifyContent:"space-between"},children:[a(y,{sx:{position:"relative",paddingRight:"8px"},children:a(F,{symbol:e})}),(null==(i=t[e])?void 0:i.displayName)||e,a(y,{flex:1}),a(v,{variant:"body2",sx:{fontWeight:"medium"},children:x(s,{one:"Signal",two:"Signals",many:"Signals"})})]}),a(y,{sx:{marginTop:"16px",marginBottom:"16px"},children:O(e)})]})},`section-${e}`);var l}):a(u,{children:a(b,{primary:"No signals yet",secondary:"live"===e?"Live signals will be displayed here":"Backtest signals will be displayed here"})})}})})},U=D(),G=(e,a)=>e.some(e=>e.includes(a)),J=[{id:"backtest",element:N,isActive:e=>G(["/backtest"],e)},{id:"live",element:N,isActive:e=>G(["/live"],e)}],K=[{id:"backtest",label:"Backtest"},{id:"live",label:"Live"}],X=()=>{p(()=>U.replace("/backtest"));return a(B,{children:[a(C,{withScroll:!0,sx:{height:"calc(100vh - 105px)"},BeforePaper:M,onLoadStart:()=>c.layoutService.setAppbarLoader(!0),onLoadEnd:()=>c.layoutService.setAppbarLoader(!1),routes:J,tabs:K,history:U,initialData:()=>({backtest:{type:"backtest"},live:{type:"live"}}),onTabChange:(e,a)=>{"backtest"===e&&a.replace("/backtest"),"live"===e&&a.replace("/live")}}),a(O,{})]})};export{X as OverviewPage,X as default};
|