@backtest-kit/ui 6.11.0 → 6.12.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.
Files changed (32) hide show
  1. package/build/index.cjs +6 -1
  2. package/build/index.mjs +6 -1
  3. package/build/modules/frontend/build/assets/{Article-DKkfW5BQ.js → Article-C48DwJkq.js} +1 -1
  4. package/build/modules/frontend/build/assets/{Background-Dk2vFMUp.js → Background-DaOJ9vqk.js} +1 -1
  5. package/build/modules/frontend/build/assets/{Container-BadSOcZa.js → Container-BtcewdYA.js} +1 -1
  6. package/build/modules/frontend/build/assets/{IconPhoto-CktGIHoS.js → IconPhoto-C8g1hCrb.js} +1 -1
  7. package/build/modules/frontend/build/assets/{KeyboardArrowLeft-phzuczDS.js → KeyboardArrowLeft-D9d7tElT.js} +1 -1
  8. package/build/modules/frontend/build/assets/{Refresh-Cn3x0sc7.js → Refresh-C3iAXEml.js} +1 -1
  9. package/build/modules/frontend/build/assets/emitters-scSB6SN6.js +1 -0
  10. package/build/modules/frontend/build/assets/{hasRouteMatch-BgtXPXQi.js → hasRouteMatch-DweITvNV.js} +1 -1
  11. package/build/modules/frontend/build/assets/{html2canvas-BhKL2ZLZ.js → html2canvas-C1-2632y.js} +1 -1
  12. package/build/modules/frontend/build/assets/{index-D3kOBaWf.js → index-2zCf5C2-.js} +1 -1
  13. package/build/modules/frontend/build/assets/index-BGqMJPKO.js +1 -0
  14. package/build/modules/frontend/build/assets/index-BL2yKfDV.js +1 -0
  15. package/build/modules/frontend/build/assets/{index-BW8xucmx.js → index-Bin5LFjQ.js} +1 -1
  16. package/build/modules/frontend/build/assets/{index-DsF-0RxA.js → index-Bw7r8JWu.js} +1 -1
  17. package/build/modules/frontend/build/assets/{index-CyfUgJ5-.js → index-C6LXHNlO.js} +2 -2
  18. package/build/modules/frontend/build/assets/index-CJ-7uiFB.js +1 -0
  19. package/build/modules/frontend/build/assets/index-CK3OKual.js +1 -0
  20. package/build/modules/frontend/build/assets/{index-bpDTx1aX.js → index-Cp2pKNFG.js} +1 -1
  21. package/build/modules/frontend/build/assets/{index-DDRUSjzu.js → index-D4R9ZKaJ.js} +23 -23
  22. package/build/modules/frontend/build/assets/index-NmpUttTU.js +1 -0
  23. package/build/modules/frontend/build/assets/{index.es-CQ1Yvc2W.js → index.es-BMwhIYfU.js} +1 -1
  24. package/build/modules/frontend/build/assets/{markdownit-C2bjl_mm.js → markdownit-CUgoniIu.js} +1 -1
  25. package/build/modules/frontend/build/index.html +1 -1
  26. package/package.json +4 -4
  27. package/build/modules/frontend/build/assets/emitters-CxG6BPDG.js +0 -1
  28. package/build/modules/frontend/build/assets/index-B3XKOr1G.js +0 -1
  29. package/build/modules/frontend/build/assets/index-CBh4Jt-k.js +0 -1
  30. package/build/modules/frontend/build/assets/index-D1ZKMkR5.js +0 -1
  31. package/build/modules/frontend/build/assets/index-D9Xhcrpq.js +0 -1
  32. package/build/modules/frontend/build/assets/index-pQIsVKLt.js +0 -1
@@ -0,0 +1 @@
1
+ import{c as e,f as a,aO as t,X as r,w as i,Z as o,V as n,Y as c,t as s,v as l,aW as p,B as d,F as h,z as m,T as u,aR as f,P as x,O as y,as as b,S as v,b5 as S,y as g,aV as L}from"./index-D4R9ZKaJ.js";import{h as k}from"./hasRouteMatch-DweITvNV.js";import{B as w}from"./Background-DaOJ9vqk.js";import{R as z}from"./Refresh-C3iAXEml.js";import{K as A}from"./KeyboardArrowLeft-D9d7tElT.js";import{A as j}from"./Article-C48DwJkq.js";const I=e(a("path",{d:"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"}),"Folder"),V=e(a("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"}),"Image"),H=e(a("path",{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"}),"InsertDriveFile"),C=[{type:l.Link,action:"back-action",label:a(A,{sx:{display:"block"}})},{type:l.Link,action:"back-action",label:"Main"},{type:l.Link,action:"back-action",label:"Dump Explorer"}],E=[{action:"update-now",label:"Refresh",icon:()=>a(m,{icon:z,color:"#4caf50"})}],M=e=>e.mimeType.startsWith("image/")?a(V,{sx:{color:"#f57c00",fontSize:20}}):"application/json"===e.mimeType?a(g,{sx:{color:"#7b1fa2",fontSize:20}}):e.mimeType.startsWith("text/")?a(j,{sx:{color:"#1976d2",fontSize:20}}):a(H,{sx:{color:"#546e7a",fontSize:20}}),R=new n,T=({params:e})=>{const[n,l]=t(e.search),[m,{loading:g,execute:L}]=r(async()=>await i.explorerViewService.getFolderTree(),{onLoadStart:()=>i.layoutService.setAppbarLoader(!0),onLoadEnd:()=>i.layoutService.setAppbarLoader(!1)});o(()=>R.subscribe(L));const k=c(m);return a(h,{children:[a(s,{items:C,actions:E,onAction:e=>{"back-action"===e&&i.routerService.push("/"),"update-now"===e&&(i.explorerViewService.clear(),R.next())}}),a(p,{withScrollbar:!0,hideOverflowX:!0,sx:{height:"calc(100vh - 150px)"},children:a(d,{pr:2,pl:2,children:g||!m?a(f,{children:a(u,{variant:"h6",sx:{opacity:.5},children:"Loading..."})}):a(S,{component:x,withExpandRoot:!0,maxItems:25,search:n.current,onSearchChanged:e=>l(e),sx:{background:e=>e.palette.background.default,minHeight:"calc(100vh - 160px)",p:1},formatSearch:e=>{const a=k.current.map[e];return a?`${a.label}`:""},formatKey:e=>{const t=k.current.map[e];return t?a(v,{direction:"row",alignItems:"center",gap:1,children:["directory"===t.type&&a(I,{sx:{color:"#1976d2",fontSize:20}}),a(u,{children:t?t.label:e}),a(d,{sx:{flex:1}})]}):null},EmptyItem:()=>a("span",{children:"No files"}),CustomItem:({itemKey:e,index:t,withDarkParent:r})=>{const o=k.current.map[e];return o?"file"!==o.type?null:a(y,{sx:{width:"100%",display:"flex",alignItems:"center",justifyContent:"stretch",direction:"row",background:t%2==0?"transparent":r?"#fff6":"#ccc6",gap:1,p:1,mt:0===t?1:0},onClick:()=>{return a=e,void i.layoutService.pickDumpContent(a);var a},children:[M(o),a(d,{sx:{display:"flex",flexDirection:"column",alignItems:"stretch",justifyContent:"stretch","& > *":{width:"100%",textAlign:"start"}},children:[a(u,{variant:"body2",children:o.label}),a(u,{variant:"caption",sx:{opacity:.5},children:o.mimeType})]}),a(d,{sx:{flex:1}}),a(b,{sx:{mr:2,pointerEvents:"none"},variant:"text",children:"Open"})]}):null},data:m.record,keyWidth:3,valueWidth:9})})}),a(w,{})]})},D=[{id:"search",element:T,isActive:e=>k(["/dump/:search"],e)},{id:"main",element:T,isActive:e=>k(["/dump"],e)}],W=({search:e=""})=>a(L,{history:i.routerService,onLoadStart:()=>i.layoutService.setAppbarLoader(!0),onLoadEnd:()=>i.layoutService.setAppbarLoader(!1),routes:D,params:{search:e}});export{W as DumpPage,W as default};
@@ -0,0 +1 @@
1
+ import{c as e,f as o,aQ as t,X as i,w as a,t as n,v as l,o as s,z as r,T as c,aR as p,x as d,B as m,F as u,H as h,K as b,L as y,S as f,O as g,i as k,l as v,N as S,R as C,r as L,ak as x,b8 as w,b9 as P,ba as T,bb as V,bc as $,bd as z,ac as M,a6 as H,Y as N,Z as O,aZ as A,aN as _,az as R,P as F,G as I,ag as j,be as E,V as D,aq as G,ar as W,aT as B,as as U,I as Y,at as K,D as Z,aV as q}from"./index-D4R9ZKaJ.js";import{h as J}from"./hasRouteMatch-DweITvNV.js";import{I as Q}from"./IconPhoto-C8g1hCrb.js";import{C as X}from"./Container-BtcewdYA.js";import{R as ee}from"./Refresh-C3iAXEml.js";import{K as oe}from"./KeyboardArrowLeft-D9d7tElT.js";const te=e([o("path",{d:"M5 19h14V5H5v14zm4-4h4v-2h-2v-2h2V9H9V7h4c1.1 0 2 .89 2 2v1.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15c0 1.11-.9 2-2 2H9v-2z",opacity:".3"}),o("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})],"Looks3TwoTone"),ie=e([o("path",{d:"M19 5H5v14h14V5zm-5 12h-2V9h-2V7h4v10z",opacity:".3"}),o("path",{d:"M5 21h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2zM5 5h14v14H5V5zm5 4h2v8h2V7h-4z"})],"LooksOneTwoTone"),ae=e([o("path",{d:"M19 5H5v14h14V5zm-4 6c0 1.11-.9 2-2 2h-2v2h4v2H9v-4c0-1.11.9-2 2-2h2V9H9V7h4c1.1 0 2 .89 2 2v2z",opacity:".3"}),o("path",{d:"M5 21h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2zM5 5h14v14H5V5zm8 2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2z"})],"LooksTwoTwoTone"),ne="backtest-kit__groupHeader",le="backtest-kit__groupRoot",se="backtest-kit__symbolImage",re=s()({root:{[`& .${le}:hover .${ne}`]:{opacity:"1 !important"}}});function ce(e){return C(e,"#000000")>C(e,"#FFFFFF")}const pe=[{type:l.Link,action:"back-action",label:o(oe,{sx:{display:"block"}})},{type:l.Link,action:"back-action",label:"Main"},{type:l.Link,action:"back-action",label:"Price Chart"}],de=[{action:"update-now",label:"Refresh",icon:()=>o(r,{icon:ee,color:"#4caf50"})}],me=e=>({type:h.Group,className:le,sx:{p:2},tabletColumns:"12",desktopColumns:"3",fields:[{type:h.Component,className:ne,style:{transition:"opacity 500ms",opacity:.5},element:()=>o(f,{direction:"row",children:[o(b,{variant:"outlined",size:"small",color:"info",label:`${y.bullet} Symbols`,sx:{mb:1,pr:.5,fontSize:"14px",background:"white",cursor:"not-allowed"}}),o(m,{flex:1})]})},{type:h.Group,fields:e.map(({symbol:e,label:t,color:i})=>((e,t,i)=>({type:h.Component,desktopColumns:"6",tabletColumns:"6",phoneColumns:"12",fieldRightMargin:"1",fieldBottomMargin:"1",element:()=>o(S,{component:g,onClick:()=>{a.routerService.push(`/price_chart/${e.toLowerCase()}`)},sx:{width:"100%",background:i,color:"white",fontWeight:"bold",fontSize:"14px",height:"75px",minHeight:"75px",textWrap:"wrap",padding:"16px",[`& .${se}`]:{transition:"filter 500ms"},"&:hover":{background:()=>ce(i)?k(i,.33):v(i,.33),[`& .${se}`]:{transition:"filter 500ms",filter:ce(i)?"brightness(0.7) contrast(1.2)":"brightness(1.3) contrast(0.5)"}},transition:"background 500ms"},startIcon:o(Q,{className:se,symbol:e}),children:t})}))(e,t,i))}]}),ue="backtest-kit__groupHeader",he="backtest-kit__groupRoot",be="backtest-kit__symbolImage",ye=s()({root:{[`& .${he}:hover .${ue}`]:{opacity:"1 !important"}}});function fe(e){return C(e,"#000000")>C(e,"#FFFFFF")}const ge=[{type:l.Link,action:"back-action",label:o(oe,{sx:{display:"block"}})},{type:l.Link,action:"back-action",label:"Main"},{type:l.Link,action:"back-action",label:"Price Chart"},{type:l.Link,action:"back-action",compute:e=>String(e).toUpperCase()}],ke=(e,t)=>({type:h.Group,className:he,sx:{p:2},desktopColumns:"6",tabletColumns:"6",phoneColumns:"12",fields:[{type:h.Component,className:ue,style:{transition:"opacity 500ms",opacity:.5},element:()=>o(f,{direction:"row",children:[o(b,{variant:"outlined",size:"medium",color:"info",label:`${y.bullet} ${e}`,sx:{mb:1,pr:.5,fontSize:"16px",background:"white",cursor:"not-allowed"}}),o(m,{flex:1})]})},{type:h.Group,fields:t.map(({label:e,to:t,color:i,icon:n})=>((e,t,i,n)=>({type:h.Component,desktopColumns:"6",tabletColumns:"12",phoneColumns:"12",fieldRightMargin:"1",fieldBottomMargin:"1",element:()=>o(S,{component:g,onClick:()=>{a.routerService.push(e)},sx:{width:"100%",background:i,color:"white",fontWeight:"bold",fontSize:"18px",height:"75px",minHeight:"125px",textWrap:"wrap",padding:"16px",[`& .${be}`]:{transition:"filter 500ms"},"&:hover":{background:()=>fe(i)?k(i,.33):v(i,.33),[`& .${be}`]:{transition:"filter 500ms",filter:fe(i)?"brightness(0.7) contrast(1.2)":"brightness(1.3) contrast(0.5)"}},transition:"background 500ms"},startIcon:o(n,{className:be}),children:t})}))(t,e,i,n))}]}),ve=s()({root:{position:"relative"},tooltip:{position:"absolute",margin:0,left:5,top:5,backgroundColor:"#343434",zIndex:999,color:"white",fontWeight:"bold",padding:"5px 10px",borderRadius:3,fontSize:"12px",pointerEvents:"none",touchAction:"none"}}),Se={layout:{textColor:"#d4d4d8",backgroundColor:"#ffffff"},rightPriceScale:{scaleMargins:{top:.3,bottom:.25}},crosshair:{vertLine:{width:4,color:"#ebe0e301",style:0},horzLine:{visible:!1,labelVisible:!1}},grid:{vertLines:{color:"#f8b3"},horzLines:{color:"#f8b3"}},handleScroll:{vertTouchDrag:!1}},Ce=({height:e,width:t,items:i,position:a,priceOpen:n,priceStopLoss:l,priceTakeProfit:s})=>{const{classes:r}=ve(),c=L.useRef(void 0),[p,d]=L.useState(null);return L.useLayoutEffect(()=>{const{current:o}=c,r=x(o,{...Se,width:t,height:e,crosshair:{mode:w.Normal,vertLine:{labelVisible:!1},horzLine:{visible:!1,labelVisible:!0}},timeScale:{timeVisible:!0,secondsVisible:!0,tickMarkFormatter:e=>{const o=i.find(o=>o.timestamp===Number(e))||i[0];if(!o||!o.timestamp)return"Invalid date";const t=M(o.timestamp);return t.isValid()?t.format("HH:mm:ss"):"Invalid date"}}}),p=r.addLineSeries({lastValueVisible:!1,color:P[400]}),m=i.map(e=>({time:Math.floor(e.timestamp),value:parseFloat(e.close)}));if(p.setData(m),a&&n){const e="long"===a?P[700]:V[700];p.createPriceLine({price:n,color:e,lineWidth:2,lineStyle:T.Solid,axisLabelVisible:!0,title:"long"===a?"LONG Entry":"SHORT Entry"})}return l&&p.createPriceLine({price:l,color:$[500],lineWidth:2,lineStyle:T.Solid,axisLabelVisible:!0,title:"SL"}),s&&p.createPriceLine({price:s,color:z[500],lineWidth:2,lineStyle:T.Solid,axisLabelVisible:!0,title:"TP"}),r.subscribeCrosshairMove(e=>{if(e.time){const o=i.find(o=>o.timestamp===Number(e.time));if(o){const e=M(o.timestamp).format("DD/MM/YYYY HH:mm:ss"),t=H(o.close.toFixed(6));d(`${e}: ${t}`)}else d(null)}else d(null)}),r.timeScale().fitContent(),()=>{r.remove()}},[e,t,i]),o("div",{ref:c,className:r.root,children:p&&o("div",{className:r.tooltip,children:p})})},Le={"1m":"#2979ff","15m":"#f3a43a","1h":"#d500f9"},xe={"1m":"1 minute","15m":"15 minutes","1h":"1 hour"};const we=({symbol:e,interval:t,reloadSubject:n,downloadSubject:l,onInfoClick:s,disableInfo:r,position:p,priceOpen:d,priceStopLoss:u,priceTakeProfit:h,sx:y})=>{const[f,{loading:g,execute:k}]=i(async()=>await a.exchangeViewService.getLastCandles(e,t),{onLoadStart:()=>a.layoutService.setAppbarLoader(!0),onLoadEnd:()=>a.layoutService.setAppbarLoader(!1),deps:[e,t]}),v=N(f);O(()=>n.subscribe(k)),O(()=>l.subscribe(()=>{const{current:o}=v;!function(e,o="data.json"){const t=new Blob([e],{type:"application/json"}),i=window.URL.createObjectURL(t);a.layoutService.downloadFile(i,o)}(JSON.stringify(o,null,2),`${e}-${t}.json`)}));return o(F,{sx:{...y,display:"flex",flexDirection:"column",alignItems:"stretch",overflow:"clip"},children:[o(m,{sx:{background:Le[t]||"#607d8b",minHeight:"48px",display:"flex",alignItems:"center",pl:2,pr:1},children:[o(c,{variant:"h6",sx:{color:"white",fontWeight:"bold",mr:1},children:xe[t]||t}),!!p&&o(b,{variant:"filled",sx:{color:"white"},color:"short"===p?"warning":"success",label:String(p).toUpperCase()}),o(m,{sx:{flex:1}}),o(A,{disabled:r,onClick:s,children:o(_,{style:{color:"white",opacity:r?.5:1}})})]}),o(R,{}),!f||g?o(I,{sx:{height:"100%",width:"100%"}}):o(m,{sx:{position:"relative",flex:1},children:o(j,{style:{position:"absolute"},children:({height:e,width:t})=>o(Ce,{items:f,height:e,width:t,position:p,priceOpen:d,priceStopLoss:u,priceTakeProfit:h})})})]})},Pe=[{type:l.Link,action:"back-action",label:o(oe,{sx:{display:"block"}})},{type:l.Link,action:"back-action",label:"Main"},{type:l.Link,action:"back-action",label:"Price Chart"},{type:l.Link,action:"back-action",compute:({symbol:e})=>String(e).toUpperCase()},{type:l.Link,action:"back-action",compute:({interval:e})=>String(e).toUpperCase()}],Te=[{action:"download-now",label:"Download",icon:()=>o(r,{icon:Z,color:"#4caf50"})},{divider:!0},{action:"update-now",label:"Refresh",icon:()=>o(r,{icon:ee,color:"#4caf50"})}],Ve=new D,$e=new D,ze=[{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"symbol",title:"Symbol",readonly:!0,compute:e=>e.symbol||"N/A"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"position",title:"Position",readonly:!0,compute:e=>"long"===e.position?"🔵 LONG (profit on rise)":"🟠 SHORT (profit on fall)"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"priceOpen",title:"Entry",readonly:!0,compute:e=>e.priceOpen?`${H(e.priceOpen)}$`:"N/A"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"originalPriceOpen",title:"Original Entry",readonly:!0,isVisible:e=>null!=e.originalPriceOpen&&e.originalPriceOpen!==e.priceOpen,compute:e=>e.originalPriceOpen?`${H(e.originalPriceOpen)}$`:"N/A"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"priceTakeProfit",title:"Take Profit",readonly:!0,compute:e=>e.priceTakeProfit?`${H(e.priceTakeProfit)}$`:"N/A"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"originalPriceTakeProfit",title:"Original Take Profit",readonly:!0,isVisible:e=>null!=e.originalPriceTakeProfit&&e.originalPriceTakeProfit!==e.priceTakeProfit,compute:e=>e.originalPriceTakeProfit?`${H(e.originalPriceTakeProfit)}$`:"N/A"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"priceStopLoss",title:"Stop Loss",readonly:!0,compute:e=>e.priceStopLoss?`${H(e.priceStopLoss)}$`:"N/A"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"originalPriceStopLoss",title:"Original Stop Loss",readonly:!0,isVisible:e=>null!=e.originalPriceStopLoss&&e.originalPriceStopLoss!==e.priceStopLoss,compute:e=>e.originalPriceStopLoss?`${H(e.originalPriceStopLoss)}$`:"N/A"},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"totalEntries",title:"Total Entries",readonly:!0,isVisible:e=>null!=e.totalEntries&&e.totalEntries>1,compute:e=>String(e.totalEntries)},{type:h.Text,outlined:!1,desktopColumns:"12",tabletColumns:"12",phoneColumns:"12",name:"totalPartials",title:"Total Closes",readonly:!0,isVisible:e=>null!=e.totalPartials&&e.totalPartials>0,compute:e=>String(e.totalPartials)},{type:h.Component,sx:{mt:2},element:({payload:e})=>o(S,{variant:"outlined",onClick:e.handleClose,children:"Back"})}],Me=[{id:"chart",element:({params:e})=>{const t=E(()=>({symbol:String(e.symbol).toUpperCase(),interval:e.interval})),[l,{loading:s,execute:r}]=i(async()=>{const o=String(e.symbol).toUpperCase();return await a.signalViewService.getPendingSignal(o)},{onLoadStart:()=>a.layoutService.setAppbarLoader(!0),onLoadEnd:()=>a.layoutService.setAppbarLoader(!1),deps:[e.symbol]});O(()=>Ve.subscribe(r));const c=L.useMemo(()=>l?l.priceTakeProfit:0,[l]),p=L.useMemo(()=>l?l.priceStopLoss:0,[l]),d=L.useMemo(()=>l?l.priceOpen:0,[l]),m=L.useMemo(()=>l?l.position:null,[l]),[u,h]=G(null),{pickData:b,setOpen:y,render:g}=W({title:"Info",AfterTitle:({onClose:e})=>o(f,{direction:"row",gap:2,children:[o(U,{onClick:()=>a.layoutService.pickSignal(u.current.id),variant:"outlined",children:"Show Details"}),o(Y,{size:"small",onClick:e,children:o(K,{})})]}),payload:()=>({handleClose(){y(!1)}}),fields:ze,handler:()=>u.current,withActionButton:!1}),k=B(async()=>{l&&(h(l),b(l.id))});return o(X,{children:[o(n,{items:Pe,actions:Te,payload:t,onAction:async o=>{"back-action"===o&&a.routerService.push(`/price_chart/${e.symbol}`),"update-now"===o&&await Ve.next(),"download-now"===o&&await $e.next()}}),s?null:o(we,{symbol:t.symbol,interval:t.interval,disableInfo:!l,reloadSubject:Ve,downloadSubject:$e,onInfoClick:k,position:m,priceOpen:d,priceStopLoss:p,priceTakeProfit:c,sx:{height:"calc(100dvh - 165px)"}}),g()]})},isActive:e=>J(["/price_chart/:symbol/:interval"],e)},{id:"coin",element:({params:e})=>{const{classes:t}=ye(),i=e.symbol,l=L.useMemo(()=>[{label:"1 minute",to:`/price_chart/${i}/1m`,color:"#2979ff",icon:ie},{label:"15 minutes",to:`/price_chart/${i}/15m`,color:"#f3a43a",icon:ae},{label:"1 hour",to:`/price_chart/${i}/1h`,color:"#d500f9",icon:te}],[i]),s=L.useMemo(()=>[ke("Chart",l)],[l]);return o(X,{children:[o(n,{items:ge,payload:i,onAction:e=>{"back-action"===e&&a.routerService.push("/price_chart")}}),o(d,{className:t.root,fields:s}),o(m,{paddingBottom:"24px"})]})},isActive:e=>J(["/price_chart/:symbol"],e)},{id:"main",element:()=>{const{classes:e}=re(),{reloadTrigger:l,doReload:s}=t(),[r,{loading:h}]=i(async()=>await(async()=>{const[e,o]=await Promise.all([a.symbolGlobalService.getSymbolList(),a.symbolGlobalService.getSymbolMap()]),t=e.map(e=>{const t=o[e];return{symbol:e,label:(null==t?void 0:t.displayName)||e,color:(null==t?void 0:t.color)||"#ccc"}});return t.length?[me(t)]:[]})(),{onLoadStart:()=>a.layoutService.setAppbarLoader(!0),onLoadEnd:()=>a.layoutService.setAppbarLoader(!1),deps:[l]});return o(X,{children:[o(n,{items:pe,actions:de,onAction:e=>{"back-action"===e&&a.routerService.push("/"),"update-now"===e&&s()}}),h||!r?o(p,{children:o(c,{variant:"h6",sx:{opacity:.5},children:"Loading..."})}):r.length?o(u,{children:[o(d,{className:e.root,fields:r},l),o(m,{paddingBottom:"24px"})]}):o(p,{children:o(c,{variant:"h6",sx:{opacity:.5},children:"No symbols found"})})]})},isActive:e=>J(["/price_chart"],e)}],He=({symbol:e,interval:t})=>o(q,{history:a.routerService,onLoadStart:()=>a.layoutService.setAppbarLoader(!0),onLoadEnd:()=>a.layoutService.setAppbarLoader(!1),routes:Me,params:{symbol:e,interval:t}});export{He as PriceChartPage,He as default};
@@ -1 +1 @@
1
- import{aS as t,W as a,v as e,f as o,t as s,Z as i,o as n,G as r,y as c,T as l,aT as d,w as p,B as u,F as m,H as b,K as y,S as h,N as g,i as S,l as f,L,Q as v,aU as k,aV as w,Y as x,U as A,D as C,aW as N,aX as j}from"./index-DDRUSjzu.js";import{h as R}from"./hasRouteMatch-BgtXPXQi.js";import{I as $}from"./IconPhoto-CktGIHoS.js";import{C as F}from"./Container-BadSOcZa.js";import{R as H}from"./Refresh-Cn3x0sc7.js";import{K as B}from"./KeyboardArrowLeft-phzuczDS.js";import{B as E}from"./Background-Dk2vFMUp.js";const G="backtest-kit__groupHeader",M="backtest-kit__groupRoot",V="backtest-kit__symbolImage",_=n()({root:{[`& .${M}:hover .${G}`]:{opacity:"1 !important"}}});function U(t){return v(t,"#000000")>v(t,"#FFFFFF")}const I=[{type:i.Link,action:"back-action",label:o(B,{sx:{display:"block"}})},{type:i.Link,action:"back-action",label:"Main"},{type:i.Link,action:"back-action",label:"Status"}],O=[{action:"update-now",label:"Refresh",icon:()=>o(c,{icon:H,color:"#4caf50"})}],T=(t,a)=>({type:r.Group,className:M,sx:{p:2},tabletColumns:"12",desktopColumns:"3",fields:[{type:r.Component,className:G,style:{transition:"opacity 500ms",opacity:.5},element:()=>o(h,{direction:"row",children:[o(b,{variant:"outlined",size:"small",color:"info",label:`${y.bullet} ${t}`,sx:{mb:1,pr:.5,fontSize:"14px",background:"white",cursor:"not-allowed"}}),o(u,{flex:1})]})},{type:r.Group,fields:a.map(({symbol:t,label:a,to:s,color:i})=>((t,a,s,i)=>({type:r.Component,desktopColumns:"6",tabletColumns:"6",phoneColumns:"12",fieldRightMargin:"1",fieldBottomMargin:"1",element:()=>o(L,{component:g,onClick:()=>{e.routerService.push(`/status/${a}`)},sx:{width:"100%",background:i,color:"white",fontWeight:"bold",fontSize:"14px",height:"75px",minHeight:"75px",textWrap:"wrap",padding:"16px",[`& .${V}`]:{transition:"filter 500ms"},"&:hover":{background:()=>U(i)?S(i,.33):f(i,.33),[`& .${V}`]:{transition:"filter 500ms",filter:U(i)?"brightness(0.7) contrast(1.2)":"brightness(1.3) contrast(0.5)"}},transition:"background 500ms"},startIcon:o($,{className:V,symbol:t}),children:s})}))(t,s,a,i))}]}),W=[{type:i.Link,action:"back-action",label:o(B,{sx:{display:"block"}})},{type:i.Link,action:"back-action",label:"Main"},{type:i.Link,action:"back-action",label:"Status"},{type:i.Link,action:"back-action",compute:t=>t?`${String(t.symbol).toUpperCase()} (${t.strategyName})`:"Live"}],z=[{action:"download-action",label:"Download",icon:()=>o(c,{icon:C,color:"#4caf50"})},{divider:!0},{action:"update-now",label:"Refresh",icon:()=>o(c,{icon:H,color:"#4caf50"})}],D=new A,K=[{id:"status",element:({params:t})=>{const[i]=a(async()=>{const a=await e.statusViewService.getStatusMap();return k.get(a,t.id,null)},{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[t.id]}),[n,{loading:r,execute:c}]=a(async()=>await e.statusViewService.getStatusOne(t.id),{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[t.id]}),b=w(async()=>{if(!n)return;const t=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),a=URL.createObjectURL(t);e.layoutService.downloadFile(a,`status_${Date.now()}.json`)});x(()=>D.subscribe(c));return o(F,{children:[o(s,{items:W,actions:z,payload:i,onAction:async t=>{"back-action"===t&&((async()=>{1!==(await e.statusViewService.getStatusList()).length?e.routerService.push("/status"):e.routerService.push("/")})(),e.routerService.push("/")),"update-now"===t&&await D.next(),"download-action"===t&&await b()}}),r?o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"Loading..."})}):n?o(m,{children:[o(p,{handler:n,fields:N}),o(u,{paddingBottom:"24px"})]}):o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"No pending signal"})}),o(E,{})]})},isActive:t=>R(["/status/:id"],t)},{id:"main",element:()=>{const{classes:i}=_(),{reloadTrigger:n,doReload:c}=t();a(async()=>{const t=await e.statusViewService.getStatusList();if(1===t.length){const[{id:a}]=t;e.routerService.push(`/status/${a}`)}},{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[n]});const[b,{loading:y}]=a(async()=>await(async()=>{const[t,a]=await Promise.all([e.symbolGlobalService.getSymbolMap(),e.statusViewService.getStatusList()]);if(!a||0===a.length)return[{type:r.Typography,typoVariant:"h6",placeholder:"Listening for a pending signal...",sx:{textAlign:"center",opacity:.5,mt:4}}];const o={};a.forEach(a=>{const e=t[a.symbol],s=a.strategyName;o[s]||(o[s]=[]),o[s].push({symbol:a.symbol,label:(null==e?void 0:e.displayName)||a.symbol,color:(null==e?void 0:e.color)||"#ccc",to:a.id})});const s=Object.entries(o).sort(([,t],[,a])=>a.length-t.length),i=[],n=[],c=[];return s.forEach(([t,a],e)=>{const o=T(t,a);e%2==0?i.push(o):n.push(o),c.push(o)}),[{type:r.Group,columns:"6",className:"tabletLeftColumn",phoneHidden:!0,desktopHidden:!0,fields:i},{type:r.Group,columns:"6",className:"tabletRightColumn",phoneHidden:!0,desktopHidden:!0,fields:n},{type:r.Group,columns:"12",className:"wideColumn",tabletHidden:!0,fields:c}]})(),{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[n]});return o(F,{children:[o(s,{items:I,actions:O,onAction:t=>{"back-action"===t&&e.routerService.push("/"),"update-now"===t&&c()}}),y||!b?o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"Loading..."})}):b.length?o(m,{children:[o(p,{className:i.root,fields:b},n),o(u,{paddingBottom:"24px"})]}):o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"No pending signals"})})]})},isActive:t=>R(["/status"],t)}],P=({id:t})=>o(j,{history:e.routerService,onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),routes:K,params:{id:t}});export{P as StatusPage,P as default};
1
+ import{aQ as t,X as a,w as e,f as o,t as s,v as i,o as n,H as r,z as c,T as l,aR as d,x as p,B as u,F as m,K as b,L as y,S as h,O as g,i as S,l as f,N as L,R as v,aS as k,aT as w,Z as x,V as A,D as C,aU as N,aV as R}from"./index-D4R9ZKaJ.js";import{h as j}from"./hasRouteMatch-DweITvNV.js";import{I as $}from"./IconPhoto-C8g1hCrb.js";import{C as F}from"./Container-BtcewdYA.js";import{R as H}from"./Refresh-C3iAXEml.js";import{K as V}from"./KeyboardArrowLeft-D9d7tElT.js";import{B}from"./Background-DaOJ9vqk.js";const E="backtest-kit__groupHeader",M="backtest-kit__groupRoot",_="backtest-kit__symbolImage",G=n()({root:{[`& .${M}:hover .${E}`]:{opacity:"1 !important"}}});function O(t){return v(t,"#000000")>v(t,"#FFFFFF")}const z=[{type:i.Link,action:"back-action",label:o(V,{sx:{display:"block"}})},{type:i.Link,action:"back-action",label:"Main"},{type:i.Link,action:"back-action",label:"Status"}],I=[{action:"update-now",label:"Refresh",icon:()=>o(c,{icon:H,color:"#4caf50"})}],T=(t,a)=>({type:r.Group,className:M,sx:{p:2},tabletColumns:"12",desktopColumns:"3",fields:[{type:r.Component,className:E,style:{transition:"opacity 500ms",opacity:.5},element:()=>o(h,{direction:"row",children:[o(b,{variant:"outlined",size:"small",color:"info",label:`${y.bullet} ${t}`,sx:{mb:1,pr:.5,fontSize:"14px",background:"white",cursor:"not-allowed"}}),o(u,{flex:1})]})},{type:r.Group,fields:a.map(({symbol:t,label:a,to:s,color:i})=>((t,a,s,i)=>({type:r.Component,desktopColumns:"6",tabletColumns:"6",phoneColumns:"12",fieldRightMargin:"1",fieldBottomMargin:"1",element:()=>o(L,{component:g,onClick:()=>{e.routerService.push(`/status/${a}`)},sx:{width:"100%",background:i,color:"white",fontWeight:"bold",fontSize:"14px",height:"75px",minHeight:"75px",textWrap:"wrap",padding:"16px",[`& .${_}`]:{transition:"filter 500ms"},"&:hover":{background:()=>O(i)?S(i,.33):f(i,.33),[`& .${_}`]:{transition:"filter 500ms",filter:O(i)?"brightness(0.7) contrast(1.2)":"brightness(1.3) contrast(0.5)"}},transition:"background 500ms"},startIcon:o($,{className:_,symbol:t}),children:s})}))(t,s,a,i))}]}),U=[{type:i.Link,action:"back-action",label:o(V,{sx:{display:"block"}})},{type:i.Link,action:"back-action",label:"Main"},{type:i.Link,action:"back-action",label:"Status"},{type:i.Link,action:"back-action",compute:t=>t?`${String(t.symbol).toUpperCase()} (${t.strategyName})`:"Live"}],D=[{action:"download-action",label:"Download",icon:()=>o(c,{icon:C,color:"#4caf50"})},{divider:!0},{action:"update-now",label:"Refresh",icon:()=>o(c,{icon:H,color:"#4caf50"})}],K=new A,P=[{id:"status",element:({params:t})=>{const[i]=a(async()=>{const a=await e.statusViewService.getStatusMap();return k.get(a,t.id,null)},{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[t.id]}),[n,{loading:r,execute:c}]=a(async()=>await e.statusViewService.getStatusOne(t.id),{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[t.id]}),b=w(async()=>{if(!n)return;const t=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),a=URL.createObjectURL(t);e.layoutService.downloadFile(a,`status_${Date.now()}.json`)});x(()=>K.subscribe(c));return o(F,{children:[o(s,{items:U,actions:D,payload:i,onAction:async t=>{"back-action"===t&&((async()=>{1!==(await e.statusViewService.getStatusList()).length?e.routerService.push("/status"):e.routerService.push("/")})(),e.routerService.push("/")),"update-now"===t&&await K.next(),"download-action"===t&&await b()}}),r?o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"Loading..."})}):n?o(m,{children:[o(p,{handler:n,fields:N}),o(u,{paddingBottom:"24px"})]}):o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"No pending signal"})}),o(B,{})]})},isActive:t=>j(["/status/:id"],t)},{id:"main",element:()=>{const{classes:i}=G(),{reloadTrigger:n,doReload:c}=t();a(async()=>{const t=await e.statusViewService.getStatusList();if(1===t.length){const[{id:a}]=t;e.routerService.push(`/status/${a}`)}},{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[n]});const[b,{loading:y}]=a(async()=>await(async()=>{const[t,a]=await Promise.all([e.symbolGlobalService.getSymbolMap(),e.statusViewService.getStatusList()]);if(!a||0===a.length)return[{type:r.Typography,typoVariant:"h6",placeholder:"Listening for a pending signal...",sx:{textAlign:"center",opacity:.5,mt:4}}];const o={};a.forEach(a=>{const e=t[a.symbol],s=a.strategyName;o[s]||(o[s]=[]),o[s].push({symbol:a.symbol,label:(null==e?void 0:e.displayName)||a.symbol,color:(null==e?void 0:e.color)||"#ccc",to:a.id})});const s=Object.entries(o).sort(([,t],[,a])=>a.length-t.length),i=[],n=[],c=[];return s.forEach(([t,a],e)=>{const o=T(t,a);e%2==0?i.push(o):n.push(o),c.push(o)}),[{type:r.Group,columns:"6",className:"tabletLeftColumn",phoneHidden:!0,desktopHidden:!0,fields:i},{type:r.Group,columns:"6",className:"tabletRightColumn",phoneHidden:!0,desktopHidden:!0,fields:n},{type:r.Group,columns:"12",className:"wideColumn",tabletHidden:!0,fields:c}]})(),{onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),deps:[n]});return o(F,{children:[o(s,{items:z,actions:I,onAction:t=>{"back-action"===t&&e.routerService.push("/"),"update-now"===t&&c()}}),y||!b?o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"Loading..."})}):b.length?o(m,{children:[o(p,{className:i.root,fields:b},n),o(u,{paddingBottom:"24px"})]}):o(d,{children:o(l,{variant:"h6",sx:{opacity:.5},children:"No pending signals"})})]})},isActive:t=>j(["/status"],t)}],W=({id:t})=>o(R,{history:e.routerService,onLoadStart:()=>e.layoutService.setAppbarLoader(!0),onLoadEnd:()=>e.layoutService.setAppbarLoader(!1),routes:P,params:{id:t}});export{W as StatusPage,W as default};