@backtest-kit/ui 11.7.0 → 11.8.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/README.md +254 -254
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/ace.js +21337 -21337
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/mode-javascript.js +797 -797
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-chrome.js +137 -137
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-twilight.js +115 -115
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/worker-javascript.js +15012 -15012
- package/build/modules/frontend/build/3rdparty/qfchart_0.8.7/echarts.min.js +45 -45
- package/build/modules/frontend/build/assets/{Article-CYNOK9n9.js → Article-BldQ_H8I.js} +1 -1
- package/build/modules/frontend/build/assets/{Background-DtU4lH09.js → Background-D6xcxEbi.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-B1J620Vq.js → IconPhoto-CM6ubSCe.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-XE5ADfKG.js → KeyboardArrowLeft-C-mzFglu.js} +1 -1
- package/build/modules/frontend/build/assets/{PictureAsPdfOutlined-m2BO1_gG.js → PictureAsPdfOutlined-FxrCBqkC.js} +1 -1
- package/build/modules/frontend/build/assets/{Refresh-Bs5my3Fa.js → Refresh-BGJUioLp.js} +1 -1
- package/build/modules/frontend/build/assets/emitters-DHUyBH6m.js +1 -0
- package/build/modules/frontend/build/assets/{hasRouteMatch-BdSLJ8tx.js → hasRouteMatch-2KWvqpEf.js} +1 -1
- package/build/modules/frontend/build/assets/{html2canvas-DZim_iNK.js → html2canvas-8DZCOHpl.js} +1 -1
- package/build/modules/frontend/build/assets/{index-RHKOVbjw.js → index-B5-6nnKB.js} +1 -1
- package/build/modules/frontend/build/assets/{index-C2-GeRog.js → index-BGhP8I63.js} +1 -1
- package/build/modules/frontend/build/assets/{index-A_a_l8g_.js → index-BIGGWGiC.js} +1 -1
- package/build/modules/frontend/build/assets/{index-RKdfdVzq.js → index-BL4ImOSk.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BwZAXYx4.js → index-BLTTcFqj.js} +1 -1
- package/build/modules/frontend/build/assets/{index-p_slI1_B.js → index-BPDS1doI.js} +1 -1
- package/build/modules/frontend/build/assets/{index-CgexeU-m.js → index-Ci6Sa86c.js} +1 -1
- package/build/modules/frontend/build/assets/{index-1GyweKyN.js → index-Cv7RePv9.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DdRXymvn.js → index-DFGpC_id.js} +56 -56
- package/build/modules/frontend/build/assets/{index-B8cgXWQa.js → index-DRQ75_P8.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BocNYL-p.js → index-Df7slJni.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BBBUKPeg.js → index-FnuTsM2k.js} +1 -1
- package/build/modules/frontend/build/assets/{index-D-KxXXY6.js → index-fSeYRlLH.js} +1 -1
- package/build/modules/frontend/build/assets/{index.es-Cu-atqbR.js → index.es-DtImoYbN.js} +1 -1
- package/build/modules/frontend/build/assets/{markdownit-AwxKNksU.js → markdownit-C5YxinP2.js} +1 -1
- package/build/modules/frontend/build/index.html +87 -87
- package/build/modules/frontend/build/manifest.json +23 -23
- package/package.json +118 -118
- package/build/modules/frontend/build/assets/emitters-DxYtfX1b.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,f as a,P as i,B as r,Q as n,a1 as t,T as o,aq as s,N as c,a2 as l,F as d,aI as p,M as m,aJ as u,aK as b,aL as v,aM as y,a5 as g,aN as h,aO as x,aP as k,aQ as f,aR as $,aS as S,aT as P,i as w,aA as C,a0 as _,aB as E,x as L,y as A,aU as F,aV as O,E as z}from"./index-DdRXymvn.js";import{C as D,R as T}from"./Refresh-Bs5my3Fa.js";import{K as j}from"./KeyboardArrowLeft-XE5ADfKG.js";const B=e=>{const i={color:"white",fontSize:28};switch(e.type){case"signal.opened":case"partial_profit.available":case"partial_profit.commit":return a(S,{sx:i});case"signal.closed":case"signal_sync.close":case"close_pending.commit":return a(g,{sx:i});case"signal.scheduled":return a(P,{sx:i});case"signal.cancelled":case"cancel_scheduled.commit":return a(h,{sx:i});case"partial_loss.available":case"partial_loss.commit":case"average_buy.commit":return a(f,{sx:i});case"breakeven.available":case"breakeven.commit":return a($,{sx:i});case"activate_scheduled.commit":case"signal_sync.open":return a(x,{sx:i});case"trailing_stop.commit":case"trailing_take.commit":return a(k,{sx:i});case"risk.rejection":return a(y,{sx:i});case"error.info":case"error.validation":case"signal.info":return a(b,{sx:i});case"error.critical":return a(v,{sx:i});default:return a(u,{sx:i})}},R=e=>{switch(e.type){case"signal.opened":return`${l("Opened")} ${e.position.toUpperCase()} ${e.symbol}`;case"signal.closed":return`${l("Closed")} ${e.symbol} (${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%)`;case"signal.scheduled":return`${l("Scheduled")} ${e.position.toUpperCase()} ${e.symbol}`;case"signal.cancelled":return`${l("Cancelled")} ${e.symbol}`;case"partial_profit.available":return`${l("Partial profit")} ${e.level}% ${e.symbol}`;case"partial_profit.commit":return`${l("Profit fixed")} ${e.percentToClose}% ${e.symbol}`;case"partial_loss.available":return`${l("Partial loss")} ${e.level}% ${e.symbol}`;case"partial_loss.commit":return`${l("Loss fixed")} ${e.percentToClose}% ${e.symbol}`;case"breakeven.available":return`${l("Breakeven available")} ${e.symbol}`;case"breakeven.commit":return`${l("Breakeven set")} ${e.symbol}`;case"activate_scheduled.commit":return`${l("Activated")} ${e.position.toUpperCase()} ${e.symbol}`;case"average_buy.commit":return`${l("Average Buy")} ${e.symbol}`;case"trailing_stop.commit":return`${l("Trailing stop")} ${e.symbol}`;case"trailing_take.commit":return`${l("Trailing take")} ${e.symbol}`;case"signal_sync.open":return`${l("Sync Open")} ${e.position.toUpperCase()} ${e.symbol}`;case"signal_sync.close":return`${l("Sync Close")} ${e.symbol} (${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%)`;case"cancel_scheduled.commit":return`${l("Cancel Scheduled")} ${e.symbol}`;case"close_pending.commit":return`${l("Close Pending")} ${e.symbol}`;case"risk.rejection":return`${l("Rejected")} ${e.position.toUpperCase()} ${e.symbol}`;case"error.info":return`${l("Error")}: ${e.message}`;case"error.validation":return`${l("Validation")}: ${e.message}`;case"error.critical":return`${l("Critical")}: ${e.message}`;case"signal.info":return`${l("Signal Info")} ${e.symbol} (${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%)`;default:return l("Unknown")}},I=e=>{switch(e.type){case"signal.opened":return l("Signal Opened");case"signal.closed":return l("Signal Closed");case"signal.scheduled":return l("Signal Scheduled");case"signal.cancelled":return l("Signal Cancelled");case"partial_profit.available":return l("Partial Profit Available");case"partial_profit.commit":return l("Partial Profit Commit");case"partial_loss.available":return l("Partial Loss Available");case"partial_loss.commit":return l("Partial Loss Commit");case"breakeven.available":return l("Breakeven Available");case"breakeven.commit":return l("Breakeven Commit");case"activate_scheduled.commit":return l("Activated Scheduled");case"average_buy.commit":return l("Average Buy");case"trailing_stop.commit":return l("Trailing Stop");case"trailing_take.commit":return l("Trailing Take");case"signal_sync.open":return l("Signal Sync Open");case"signal_sync.close":return l("Signal Sync Close");case"cancel_scheduled.commit":return l("Cancel Scheduled");case"close_pending.commit":return l("Close Pending");case"risk.rejection":return l("Risk Rejection");case"error.info":return l("Info Error");case"error.validation":return l("Validation Error");case"error.critical":return l("Critical Error");case"signal.info":return l("Signal Info");default:return l("Unknown")}},U=e=>"symbol"in e,N=e=>"position"in e,W=e=>"priceOpen"in e&&"priceTakeProfit"in e&&"priceStopLoss"in e,M=e=>"pnlPercentage"in e,V=e=>"level"in e,Y=e=>"percentToClose"in e,H=e=>"currentPrice"in e,K=e=>"duration"in e,q=e=>"closeReason"in e,Q=e=>"cancelReason"in e,J=e=>"percentShift"in e,G=e=>"signal.opened"===e.type?"note"in e&&!!e.note:"signal.info"===e.type?"note"in e&&!!e.note&&!!e.notificationId:"activate_scheduled.commit"===e.type?"note"in e&&!!e.note&&!!e.activateId:"close_pending.commit"===e.type?"note"in e&&!!e.note&&!!e.closeId:"cancel_scheduled.commit"===e.type&&("note"in e&&!!e.note&&!!e.cancelId),X=e=>"message"in e,Z=e=>"rejectionNote"in e,ee=e=>"activePositionCount"in e,ae=e=>"effectivePriceOpen"in e,ie=e=>"totalEntries"in e&&e.totalEntries>1,re=e=>"originalPriceOpen"in e&&"priceOpen"in e&&e.originalPriceOpen!==e.priceOpen,ne=e=>"totalPartials"in e&&e.totalPartials>0,te=e=>"cost"in e,oe=e=>"pnlPriceOpen"in e&&"pnlPriceClose"in e&&"pnlCost"in e&&"pnlEntries"in e,se=e=>"peakProfitPriceClose"in e,ce=e=>"maxDrawdownPriceClose"in e,le=e.forwardRef(({item:e,className:u,style:b,sx:v},y)=>{const g=(e=>{switch(e.type){case"signal.opened":case"activate_scheduled.commit":case"signal_sync.open":return"#4CAF50";case"signal.closed":case"signal_sync.close":return"#2196F3";case"signal.scheduled":case"average_buy.commit":case"error.info":case"error.validation":return"#FF9800";case"signal.cancelled":case"cancel_scheduled.commit":default:return"#9E9E9E";case"partial_profit.available":case"partial_profit.commit":return"#8BC34A";case"partial_loss.available":case"partial_loss.commit":return"#FF5722";case"breakeven.available":case"breakeven.commit":return"#00BCD4";case"trailing_stop.commit":case"trailing_take.commit":return"#673AB7";case"close_pending.commit":return"#607D8B";case"risk.rejection":return"#F44336";case"error.critical":return"#D32F2F";case"signal.info":return"#9C27B0"}})(e),h=(e=>"timestamp"in e)(e)?e.timestamp:Date.now();return a("div",{className:u,style:b,ref:y,children:a(i,{variant:"outlined",onClick:()=>(e=>{switch(e.type){case"risk.rejection":w.layoutService.pickRisk(e.id);break;case"signal.opened":w.layoutService.pickSignalOpened(e.id);break;case"signal.closed":w.layoutService.pickSignalClosed(e.id);break;case"signal.scheduled":w.layoutService.pickSignalScheduled(e.id);break;case"signal.cancelled":w.layoutService.pickSignalCancelled(e.id);break;case"partial_profit.available":w.layoutService.pickPartialProfitAvailable(e.id);break;case"partial_profit.commit":w.layoutService.pickPartialProfitCommit(e.id);break;case"partial_loss.available":w.layoutService.pickPartialLossAvailable(e.id);break;case"partial_loss.commit":w.layoutService.pickPartialLossCommit(e.id);break;case"breakeven.available":w.layoutService.pickBreakevenAvailable(e.id);break;case"breakeven.commit":w.layoutService.pickBreakevenCommit(e.id);break;case"trailing_stop.commit":w.layoutService.pickTrailingStop(e.id);break;case"trailing_take.commit":w.layoutService.pickTrailingTake(e.id);break;case"activate_scheduled.commit":w.layoutService.pickActivateScheduled(e.id);break;case"average_buy.commit":w.layoutService.pickAverageBuyCommit(e.id);break;case"signal_sync.open":w.layoutService.pickSignalSyncOpen(e.id);break;case"signal_sync.close":w.layoutService.pickSignalSyncClose(e.id);break;case"cancel_scheduled.commit":w.layoutService.pickCancelScheduled(e.id);break;case"close_pending.commit":w.layoutService.pickClosePending(e.id);break;case"signal.info":w.layoutService.pickSignalNotify(e.id)}})(e),sx:{transition:"box-shadow 0.2s ease",cursor:"pointer",display:"flex",alignItems:"stretch",justifyContent:"stretch","&:hover":{boxShadow:4},...v},children:a(r,{sx:{flex:1,position:"relative",overflow:"clip",height:"100%",width:"100%",borderRadius:"12px"},children:[a(n,{direction:"row",spacing:2,sx:{p:2},children:[a(t,{sx:{width:56,height:56,background:g},children:B(e)}),a(n,{flex:1,spacing:1,children:[a(n,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",children:[a(o,{variant:"h6",sx:{fontWeight:600},children:R(e)}),a(o,{variant:"body2",color:"text.secondary",sx:{whiteSpace:"nowrap",ml:2},children:s(h).format("HH:mm DD/MM/YYYY")})]}),a(n,{mt:-1,direction:"row",flexWrap:"wrap",children:[a(c,{size:"small",label:I(e),sx:{background:g,mt:1,mr:1,color:"white",fontWeight:500}}),U(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.symbol,variant:"outlined"}),N(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.position.toUpperCase(),variant:"outlined",color:"long"===e.position?"success":"error"}),M(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`PnL: ${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%`,color:e.pnlPercentage>=0?"success":"error",variant:"outlined"}),V(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Level")}: ${e.level}%`,variant:"outlined"}),Y(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Close")}: ${e.percentToClose}%`,variant:"outlined"}),K(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Duration")}: ${e.duration} ${l("min")}`,variant:"outlined"}),q(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.closeReason,variant:"outlined",color:"info"}),Q(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.cancelReason,variant:"outlined",color:"info"}),J(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Shift")}: ${e.percentShift>0?"+":""}${e.percentShift}%`,variant:"outlined"}),ee(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Active")}: ${e.activePositionCount}`,variant:"outlined"}),ie(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Entries")}: ${e.totalEntries}`,variant:"outlined"}),ne(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Partials")}: ${e.totalPartials}`,variant:"outlined"}),te(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Cost")}: ${e.cost.toFixed(2)}$`,variant:"outlined"}),ae(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Avg entry")}: ${e.effectivePriceOpen}`,variant:"outlined",color:"warning"}),re(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Orig entry")}: ${e.originalPriceOpen}`,variant:"outlined"})]}),W(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[H(e)&&a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Current"),":"," "]}),e.currentPrice]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Take Profit"),":"," "]}),e.priceTakeProfit]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Stop Loss"),":"," "]}),e.priceStopLoss]})]})]}),oe(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("PnL Entry"),":"," "]}),e.pnlPriceOpen]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("PnL Exit"),":"," "]}),e.pnlPriceClose]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("PnL"),":"," "]}),a(o,{component:"span",color:e.pnlCost>=0?"success.main":"error.main",children:[e.pnlCost>=0?"+":"",e.pnlCost.toFixed(2),"$"]})]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Invested"),":"," "]}),e.pnlEntries.toFixed(2),"$"]})]})]}),se(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Peak Entry"),":"," "]}),e.peakProfitPriceOpen]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Peak Exit"),":"," "]}),e.peakProfitPriceClose]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Peak"),":"," "]}),a(o,{component:"span",color:e.peakProfitCost>=0?"success.main":"error.main",children:[e.peakProfitCost>=0?"+":"",e.peakProfitCost.toFixed(2),"$"]})]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Invested"),":"," "]}),e.peakProfitEntries.toFixed(2),"$"]})]})]}),ce(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Drawdown Entry"),":"," "]}),e.maxDrawdownPriceOpen]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Drawdown Exit"),":"," "]}),e.maxDrawdownPriceClose]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Drawdown"),":"," "]}),a(o,{component:"span",color:e.maxDrawdownCost>=0?"success.main":"error.main",children:[e.maxDrawdownCost>=0?"+":"",e.maxDrawdownCost.toFixed(2),"$"]})]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Invested"),":"," "]}),e.maxDrawdownEntries.toFixed(2),"$"]})]})]})]})]}),G(e)&&a(r,{onClick:e=>{e.preventDefault(),e.stopPropagation()},sx:{px:2,pb:2},children:[a(p,{sx:{mb:1.5}}),a(r,{component:"pre",sx:{m:0,whiteSpace:"pre-wrap",wordWrap:"break-word"},children:a(m,{content:e.note})})]}),Z(e)&&a(r,{sx:{px:2,pb:2},children:[a(p,{sx:{mb:1.5}}),a(o,{variant:"body2",color:"error",children:e.rejectionNote})]}),X(e)&&!G(e)&&a(r,{sx:{px:2,pb:2},children:[a(p,{sx:{mb:1.5}}),a(o,{variant:"body2",color:"text.secondary",children:e.message})]}),a(r,{sx:{position:"absolute",top:0,left:0,bottom:0,width:6,zIndex:1,background:g}})]})})})}),de=[{action:"update-now",label:"Refresh manually",icon:()=>a(z,{icon:T,color:"#4caf50"})}],pe=[{type:A.Link,action:"back-action",label:a(j,{sx:{display:"block"}})},{type:A.Link,action:"back-action",label:"Main"},{type:A.Link,action:"back-action",label:"Notifications"}],me=new _,ue=()=>{const{data:e,hasMore:i,loading:r,onSkip:n}=C({handler:async(e,a)=>{const i=await w.notificationViewService.getList(),r=E(e,a);for(const n of i)if(r([n]).done)break;return r().rows},onLoadStart:()=>w.layoutService.setAppbarLoader(!0),onLoadEnd:()=>w.layoutService.setAppbarLoader(!1),reloadSubject:me});return a(D,{children:[a(L,{items:pe,actions:de,onAction:async e=>{"back-action"===e&&w.routerService.push("/"),"update-now"===e&&await me.next()}}),a(F,{sx:{height:"calc(100vh - 155px)"},withScrollbar:!0,minHeight:72,loading:r,onDataRequest:n,bufferSize:O,hasMore:i,children:e.map(e=>a(le,{item:e,sx:{mb:1}},e.id))})]})};export{ue as NotificationPage,ue as default};
|
|
1
|
+
import{r as e,f as a,P as i,B as r,Q as n,a1 as t,T as o,aq as s,N as c,a2 as l,F as d,aI as p,M as m,aJ as u,aK as b,aL as v,aM as y,a5 as g,aN as h,aO as x,aP as k,aQ as f,aR as $,aS as S,aT as P,i as w,aA as C,a0 as _,aB as E,x as L,y as A,aU as F,aV as O,E as z}from"./index-DFGpC_id.js";import{C as D,R as T}from"./Refresh-BGJUioLp.js";import{K as j}from"./KeyboardArrowLeft-C-mzFglu.js";const B=e=>{const i={color:"white",fontSize:28};switch(e.type){case"signal.opened":case"partial_profit.available":case"partial_profit.commit":return a(S,{sx:i});case"signal.closed":case"signal_sync.close":case"close_pending.commit":return a(g,{sx:i});case"signal.scheduled":return a(P,{sx:i});case"signal.cancelled":case"cancel_scheduled.commit":return a(h,{sx:i});case"partial_loss.available":case"partial_loss.commit":case"average_buy.commit":return a(f,{sx:i});case"breakeven.available":case"breakeven.commit":return a($,{sx:i});case"activate_scheduled.commit":case"signal_sync.open":return a(x,{sx:i});case"trailing_stop.commit":case"trailing_take.commit":return a(k,{sx:i});case"risk.rejection":return a(y,{sx:i});case"error.info":case"error.validation":case"signal.info":return a(b,{sx:i});case"error.critical":return a(v,{sx:i});default:return a(u,{sx:i})}},R=e=>{switch(e.type){case"signal.opened":return`${l("Opened")} ${e.position.toUpperCase()} ${e.symbol}`;case"signal.closed":return`${l("Closed")} ${e.symbol} (${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%)`;case"signal.scheduled":return`${l("Scheduled")} ${e.position.toUpperCase()} ${e.symbol}`;case"signal.cancelled":return`${l("Cancelled")} ${e.symbol}`;case"partial_profit.available":return`${l("Partial profit")} ${e.level}% ${e.symbol}`;case"partial_profit.commit":return`${l("Profit fixed")} ${e.percentToClose}% ${e.symbol}`;case"partial_loss.available":return`${l("Partial loss")} ${e.level}% ${e.symbol}`;case"partial_loss.commit":return`${l("Loss fixed")} ${e.percentToClose}% ${e.symbol}`;case"breakeven.available":return`${l("Breakeven available")} ${e.symbol}`;case"breakeven.commit":return`${l("Breakeven set")} ${e.symbol}`;case"activate_scheduled.commit":return`${l("Activated")} ${e.position.toUpperCase()} ${e.symbol}`;case"average_buy.commit":return`${l("Average Buy")} ${e.symbol}`;case"trailing_stop.commit":return`${l("Trailing stop")} ${e.symbol}`;case"trailing_take.commit":return`${l("Trailing take")} ${e.symbol}`;case"signal_sync.open":return`${l("Sync Open")} ${e.position.toUpperCase()} ${e.symbol}`;case"signal_sync.close":return`${l("Sync Close")} ${e.symbol} (${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%)`;case"cancel_scheduled.commit":return`${l("Cancel Scheduled")} ${e.symbol}`;case"close_pending.commit":return`${l("Close Pending")} ${e.symbol}`;case"risk.rejection":return`${l("Rejected")} ${e.position.toUpperCase()} ${e.symbol}`;case"error.info":return`${l("Error")}: ${e.message}`;case"error.validation":return`${l("Validation")}: ${e.message}`;case"error.critical":return`${l("Critical")}: ${e.message}`;case"signal.info":return`${l("Signal Info")} ${e.symbol} (${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%)`;default:return l("Unknown")}},I=e=>{switch(e.type){case"signal.opened":return l("Signal Opened");case"signal.closed":return l("Signal Closed");case"signal.scheduled":return l("Signal Scheduled");case"signal.cancelled":return l("Signal Cancelled");case"partial_profit.available":return l("Partial Profit Available");case"partial_profit.commit":return l("Partial Profit Commit");case"partial_loss.available":return l("Partial Loss Available");case"partial_loss.commit":return l("Partial Loss Commit");case"breakeven.available":return l("Breakeven Available");case"breakeven.commit":return l("Breakeven Commit");case"activate_scheduled.commit":return l("Activated Scheduled");case"average_buy.commit":return l("Average Buy");case"trailing_stop.commit":return l("Trailing Stop");case"trailing_take.commit":return l("Trailing Take");case"signal_sync.open":return l("Signal Sync Open");case"signal_sync.close":return l("Signal Sync Close");case"cancel_scheduled.commit":return l("Cancel Scheduled");case"close_pending.commit":return l("Close Pending");case"risk.rejection":return l("Risk Rejection");case"error.info":return l("Info Error");case"error.validation":return l("Validation Error");case"error.critical":return l("Critical Error");case"signal.info":return l("Signal Info");default:return l("Unknown")}},U=e=>"symbol"in e,N=e=>"position"in e,W=e=>"priceOpen"in e&&"priceTakeProfit"in e&&"priceStopLoss"in e,M=e=>"pnlPercentage"in e,V=e=>"level"in e,Y=e=>"percentToClose"in e,H=e=>"currentPrice"in e,K=e=>"duration"in e,q=e=>"closeReason"in e,Q=e=>"cancelReason"in e,J=e=>"percentShift"in e,G=e=>"signal.opened"===e.type?"note"in e&&!!e.note:"signal.info"===e.type?"note"in e&&!!e.note&&!!e.notificationId:"activate_scheduled.commit"===e.type?"note"in e&&!!e.note&&!!e.activateId:"close_pending.commit"===e.type?"note"in e&&!!e.note&&!!e.closeId:"cancel_scheduled.commit"===e.type&&("note"in e&&!!e.note&&!!e.cancelId),X=e=>"message"in e,Z=e=>"rejectionNote"in e,ee=e=>"activePositionCount"in e,ae=e=>"effectivePriceOpen"in e,ie=e=>"totalEntries"in e&&e.totalEntries>1,re=e=>"originalPriceOpen"in e&&"priceOpen"in e&&e.originalPriceOpen!==e.priceOpen,ne=e=>"totalPartials"in e&&e.totalPartials>0,te=e=>"cost"in e,oe=e=>"pnlPriceOpen"in e&&"pnlPriceClose"in e&&"pnlCost"in e&&"pnlEntries"in e,se=e=>"peakProfitPriceClose"in e,ce=e=>"maxDrawdownPriceClose"in e,le=e.forwardRef(({item:e,className:u,style:b,sx:v},y)=>{const g=(e=>{switch(e.type){case"signal.opened":case"activate_scheduled.commit":case"signal_sync.open":return"#4CAF50";case"signal.closed":case"signal_sync.close":return"#2196F3";case"signal.scheduled":case"average_buy.commit":case"error.info":case"error.validation":return"#FF9800";case"signal.cancelled":case"cancel_scheduled.commit":default:return"#9E9E9E";case"partial_profit.available":case"partial_profit.commit":return"#8BC34A";case"partial_loss.available":case"partial_loss.commit":return"#FF5722";case"breakeven.available":case"breakeven.commit":return"#00BCD4";case"trailing_stop.commit":case"trailing_take.commit":return"#673AB7";case"close_pending.commit":return"#607D8B";case"risk.rejection":return"#F44336";case"error.critical":return"#D32F2F";case"signal.info":return"#9C27B0"}})(e),h=(e=>"timestamp"in e)(e)?e.timestamp:Date.now();return a("div",{className:u,style:b,ref:y,children:a(i,{variant:"outlined",onClick:()=>(e=>{switch(e.type){case"risk.rejection":w.layoutService.pickRisk(e.id);break;case"signal.opened":w.layoutService.pickSignalOpened(e.id);break;case"signal.closed":w.layoutService.pickSignalClosed(e.id);break;case"signal.scheduled":w.layoutService.pickSignalScheduled(e.id);break;case"signal.cancelled":w.layoutService.pickSignalCancelled(e.id);break;case"partial_profit.available":w.layoutService.pickPartialProfitAvailable(e.id);break;case"partial_profit.commit":w.layoutService.pickPartialProfitCommit(e.id);break;case"partial_loss.available":w.layoutService.pickPartialLossAvailable(e.id);break;case"partial_loss.commit":w.layoutService.pickPartialLossCommit(e.id);break;case"breakeven.available":w.layoutService.pickBreakevenAvailable(e.id);break;case"breakeven.commit":w.layoutService.pickBreakevenCommit(e.id);break;case"trailing_stop.commit":w.layoutService.pickTrailingStop(e.id);break;case"trailing_take.commit":w.layoutService.pickTrailingTake(e.id);break;case"activate_scheduled.commit":w.layoutService.pickActivateScheduled(e.id);break;case"average_buy.commit":w.layoutService.pickAverageBuyCommit(e.id);break;case"signal_sync.open":w.layoutService.pickSignalSyncOpen(e.id);break;case"signal_sync.close":w.layoutService.pickSignalSyncClose(e.id);break;case"cancel_scheduled.commit":w.layoutService.pickCancelScheduled(e.id);break;case"close_pending.commit":w.layoutService.pickClosePending(e.id);break;case"signal.info":w.layoutService.pickSignalNotify(e.id)}})(e),sx:{transition:"box-shadow 0.2s ease",cursor:"pointer",display:"flex",alignItems:"stretch",justifyContent:"stretch","&:hover":{boxShadow:4},...v},children:a(r,{sx:{flex:1,position:"relative",overflow:"clip",height:"100%",width:"100%",borderRadius:"12px"},children:[a(n,{direction:"row",spacing:2,sx:{p:2},children:[a(t,{sx:{width:56,height:56,background:g},children:B(e)}),a(n,{flex:1,spacing:1,children:[a(n,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",children:[a(o,{variant:"h6",sx:{fontWeight:600},children:R(e)}),a(o,{variant:"body2",color:"text.secondary",sx:{whiteSpace:"nowrap",ml:2},children:s(h).format("HH:mm DD/MM/YYYY")})]}),a(n,{mt:-1,direction:"row",flexWrap:"wrap",children:[a(c,{size:"small",label:I(e),sx:{background:g,mt:1,mr:1,color:"white",fontWeight:500}}),U(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.symbol,variant:"outlined"}),N(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.position.toUpperCase(),variant:"outlined",color:"long"===e.position?"success":"error"}),M(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`PnL: ${e.pnlPercentage>0?"+":""}${e.pnlPercentage.toFixed(2)}%`,color:e.pnlPercentage>=0?"success":"error",variant:"outlined"}),V(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Level")}: ${e.level}%`,variant:"outlined"}),Y(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Close")}: ${e.percentToClose}%`,variant:"outlined"}),K(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Duration")}: ${e.duration} ${l("min")}`,variant:"outlined"}),q(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.closeReason,variant:"outlined",color:"info"}),Q(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:e.cancelReason,variant:"outlined",color:"info"}),J(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Shift")}: ${e.percentShift>0?"+":""}${e.percentShift}%`,variant:"outlined"}),ee(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Active")}: ${e.activePositionCount}`,variant:"outlined"}),ie(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Entries")}: ${e.totalEntries}`,variant:"outlined"}),ne(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Partials")}: ${e.totalPartials}`,variant:"outlined"}),te(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Cost")}: ${e.cost.toFixed(2)}$`,variant:"outlined"}),ae(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Avg entry")}: ${e.effectivePriceOpen}`,variant:"outlined",color:"warning"}),re(e)&&a(c,{size:"small",sx:{mt:1,mr:1},label:`${l("Orig entry")}: ${e.originalPriceOpen}`,variant:"outlined"})]}),W(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[H(e)&&a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Current"),":"," "]}),e.currentPrice]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Take Profit"),":"," "]}),e.priceTakeProfit]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Stop Loss"),":"," "]}),e.priceStopLoss]})]})]}),oe(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("PnL Entry"),":"," "]}),e.pnlPriceOpen]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("PnL Exit"),":"," "]}),e.pnlPriceClose]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("PnL"),":"," "]}),a(o,{component:"span",color:e.pnlCost>=0?"success.main":"error.main",children:[e.pnlCost>=0?"+":"",e.pnlCost.toFixed(2),"$"]})]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Invested"),":"," "]}),e.pnlEntries.toFixed(2),"$"]})]})]}),se(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Peak Entry"),":"," "]}),e.peakProfitPriceOpen]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Peak Exit"),":"," "]}),e.peakProfitPriceClose]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Peak"),":"," "]}),a(o,{component:"span",color:e.peakProfitCost>=0?"success.main":"error.main",children:[e.peakProfitCost>=0?"+":"",e.peakProfitCost.toFixed(2),"$"]})]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Invested"),":"," "]}),e.peakProfitEntries.toFixed(2),"$"]})]})]}),ce(e)&&a(d,{children:[a(p,{sx:{my:1}}),a(n,{direction:"row",spacing:3,flexWrap:"wrap",children:[a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Drawdown Entry"),":"," "]}),e.maxDrawdownPriceOpen]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Drawdown Exit"),":"," "]}),e.maxDrawdownPriceClose]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Drawdown"),":"," "]}),a(o,{component:"span",color:e.maxDrawdownCost>=0?"success.main":"error.main",children:[e.maxDrawdownCost>=0?"+":"",e.maxDrawdownCost.toFixed(2),"$"]})]}),a(o,{variant:"body2",children:[a(o,{component:"span",color:"text.secondary",children:[l("Invested"),":"," "]}),e.maxDrawdownEntries.toFixed(2),"$"]})]})]})]})]}),G(e)&&a(r,{onClick:e=>{e.preventDefault(),e.stopPropagation()},sx:{px:2,pb:2},children:[a(p,{sx:{mb:1.5}}),a(r,{component:"pre",sx:{m:0,whiteSpace:"pre-wrap",wordWrap:"break-word"},children:a(m,{content:e.note})})]}),Z(e)&&a(r,{sx:{px:2,pb:2},children:[a(p,{sx:{mb:1.5}}),a(o,{variant:"body2",color:"error",children:e.rejectionNote})]}),X(e)&&!G(e)&&a(r,{sx:{px:2,pb:2},children:[a(p,{sx:{mb:1.5}}),a(o,{variant:"body2",color:"text.secondary",children:e.message})]}),a(r,{sx:{position:"absolute",top:0,left:0,bottom:0,width:6,zIndex:1,background:g}})]})})})}),de=[{action:"update-now",label:"Refresh manually",icon:()=>a(z,{icon:T,color:"#4caf50"})}],pe=[{type:A.Link,action:"back-action",label:a(j,{sx:{display:"block"}})},{type:A.Link,action:"back-action",label:"Main"},{type:A.Link,action:"back-action",label:"Notifications"}],me=new _,ue=()=>{const{data:e,hasMore:i,loading:r,onSkip:n}=C({handler:async(e,a)=>{const i=await w.notificationViewService.getList(),r=E(e,a);for(const n of i)if(r([n]).done)break;return r().rows},onLoadStart:()=>w.layoutService.setAppbarLoader(!0),onLoadEnd:()=>w.layoutService.setAppbarLoader(!1),reloadSubject:me});return a(D,{children:[a(L,{items:pe,actions:de,onAction:async e=>{"back-action"===e&&w.routerService.push("/"),"update-now"===e&&await me.next()}}),a(F,{sx:{height:"calc(100vh - 155px)"},withScrollbar:!0,minHeight:72,loading:r,onDataRequest:n,bufferSize:O,hasMore:i,children:e.map(e=>a(le,{item:e,sx:{mb:1}},e.id))})]})};export{ue as NotificationPage,ue as default};
|