@backtest-kit/ui 11.5.0 → 11.6.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/index.cjs +72 -2
- package/build/index.mjs +72 -2
- package/build/modules/frontend/build/assets/{Article-CjfYGsM8.js → Article-DoMlsIo4.js} +1 -1
- package/build/modules/frontend/build/assets/{Background-CTyijEIC.js → Background-BnRWKTD8.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-f-9kkdMk.js → IconPhoto-aMuJpj6Q.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-Bl6qmlY1.js → KeyboardArrowLeft-DA3tYiUJ.js} +1 -1
- package/build/modules/frontend/build/assets/{PictureAsPdfOutlined-IdXxJpA4.js → PictureAsPdfOutlined-UX66_kRb.js} +1 -1
- package/build/modules/frontend/build/assets/{Refresh-DrIpy78_.js → Refresh-DgI0wCNO.js} +1 -1
- package/build/modules/frontend/build/assets/emitters-mEOxgbph.js +1 -0
- package/build/modules/frontend/build/assets/{hasRouteMatch-Dc8N1sUS.js → hasRouteMatch-CPxZqfwk.js} +1 -1
- package/build/modules/frontend/build/assets/{html2canvas-CdMsKjmO.js → html2canvas-CO_-LxFZ.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DMQRBmQu.js → index-023o9gBw.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Cs8IesYb.js → index-BQK7NKW9.js} +1 -1
- package/build/modules/frontend/build/assets/{index-fNGFkBex.js → index-BdqBIHCo.js} +8 -8
- package/build/modules/frontend/build/assets/{index-HTagz4xD.js → index-BhRrcZhz.js} +1 -1
- package/build/modules/frontend/build/assets/{index-K76lSNjn.js → index-BmOKPwNO.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DFXs8PSm.js → index-BppdZewX.js} +1 -1
- package/build/modules/frontend/build/assets/index-Cfa_xuej.js +1 -0
- package/build/modules/frontend/build/assets/{index-mCWVhZe6.js → index-CxS-3pOa.js} +1 -1
- package/build/modules/frontend/build/assets/{index-CrV6WSJA.js → index-DP3iIrW1.js} +1 -1
- package/build/modules/frontend/build/assets/{index-Dw9KL0_Y.js → index-DTOsrOR8.js} +1 -1
- package/build/modules/frontend/build/assets/{index-B_2ngIUy.js → index-mZlk023O.js} +1 -1
- package/build/modules/frontend/build/assets/{index-CmIPv2Ax.js → index-mtt2zvbc.js} +1 -1
- package/build/modules/frontend/build/assets/{index-BZuw2ZBa.js → index-njWSimAr.js} +1 -1
- package/build/modules/frontend/build/assets/{index.es-CByLTiU3.js → index.es-Crgr0PmD.js} +1 -1
- package/build/modules/frontend/build/index.html +1 -1
- package/package.json +3 -3
- package/build/modules/frontend/build/assets/emitters-DU_Tmk3y.js +0 -1
- package/build/modules/frontend/build/assets/index-hPVBjcEy.js +0 -1
- package/build/modules/frontend/build/assets/markdownit-yJFGAsoA.js +0 -1
package/build/index.cjs
CHANGED
|
@@ -1254,7 +1254,21 @@ class StatusViewService {
|
|
|
1254
1254
|
portfolioCalmarRatio: currentHeat.portfolioCalmarRatio,
|
|
1255
1255
|
portfolioRecoveryFactor: currentHeat.portfolioRecoveryFactor,
|
|
1256
1256
|
portfolioExpectancy: currentHeat.portfolioExpectancy,
|
|
1257
|
-
|
|
1257
|
+
portfolioAvgPeakPnl: currentHeat.portfolioAvgPeakPnl,
|
|
1258
|
+
portfolioAvgFallPnl: currentHeat.portfolioAvgFallPnl,
|
|
1259
|
+
portfolioPeakProfitPnl: currentHeat.portfolioPeakProfitPnl,
|
|
1260
|
+
portfolioMaxDrawdownPnl: currentHeat.portfolioMaxDrawdownPnl,
|
|
1261
|
+
portfolioAvgDuration: currentHeat.portfolioAvgDuration,
|
|
1262
|
+
portfolioMedianPnl: currentHeat.portfolioMedianPnl,
|
|
1263
|
+
portfolioAvgConsecutiveWinPnl: currentHeat.portfolioAvgConsecutiveWinPnl,
|
|
1264
|
+
portfolioAvgConsecutiveLossPnl: currentHeat.portfolioAvgConsecutiveLossPnl,
|
|
1265
|
+
portfolioAvgWinDuration: currentHeat.portfolioAvgWinDuration,
|
|
1266
|
+
portfolioAvgLossDuration: currentHeat.portfolioAvgLossDuration,
|
|
1267
|
+
portfolioAnnualizedSharpeRatio: currentHeat.portfolioAnnualizedSharpeRatio,
|
|
1268
|
+
portfolioCertaintyRatio: currentHeat.portfolioCertaintyRatio,
|
|
1269
|
+
portfolioExpectedYearlyReturns: currentHeat.portfolioExpectedYearlyReturns,
|
|
1270
|
+
portfolioTradesPerYear: currentHeat.portfolioTradesPerYear,
|
|
1271
|
+
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades, sortinoRatio, calmarRatio, recoveryFactor, sharpeRatio, annualizedSharpeRatio, certaintyRatio, expectedYearlyReturns, tradesPerYear, avgPnl, stdDev, avgWin, avgLoss, maxWinStreak, maxLossStreak, avgPeakPnl, avgFallPnl, peakProfitPnl, maxDrawdownPnl, avgDuration, medianPnl, avgConsecutiveWinPnl, avgConsecutiveLossPnl, avgWinDuration, avgLossDuration, }) => ({
|
|
1258
1272
|
symbol,
|
|
1259
1273
|
totalPnl,
|
|
1260
1274
|
winRate,
|
|
@@ -1265,6 +1279,27 @@ class StatusViewService {
|
|
|
1265
1279
|
sortinoRatio,
|
|
1266
1280
|
calmarRatio,
|
|
1267
1281
|
recoveryFactor,
|
|
1282
|
+
sharpeRatio,
|
|
1283
|
+
annualizedSharpeRatio,
|
|
1284
|
+
certaintyRatio,
|
|
1285
|
+
expectedYearlyReturns,
|
|
1286
|
+
tradesPerYear,
|
|
1287
|
+
avgPnl,
|
|
1288
|
+
stdDev,
|
|
1289
|
+
avgWin,
|
|
1290
|
+
avgLoss,
|
|
1291
|
+
maxWinStreak,
|
|
1292
|
+
maxLossStreak,
|
|
1293
|
+
avgPeakPnl,
|
|
1294
|
+
avgFallPnl,
|
|
1295
|
+
peakProfitPnl,
|
|
1296
|
+
maxDrawdownPnl,
|
|
1297
|
+
avgDuration,
|
|
1298
|
+
medianPnl,
|
|
1299
|
+
avgConsecutiveWinPnl,
|
|
1300
|
+
avgConsecutiveLossPnl,
|
|
1301
|
+
avgWinDuration,
|
|
1302
|
+
avgLossDuration,
|
|
1268
1303
|
})),
|
|
1269
1304
|
backtest: true,
|
|
1270
1305
|
};
|
|
@@ -1292,7 +1327,21 @@ class StatusViewService {
|
|
|
1292
1327
|
portfolioCalmarRatio: currentHeat.portfolioCalmarRatio,
|
|
1293
1328
|
portfolioRecoveryFactor: currentHeat.portfolioRecoveryFactor,
|
|
1294
1329
|
portfolioExpectancy: currentHeat.portfolioExpectancy,
|
|
1295
|
-
|
|
1330
|
+
portfolioAvgPeakPnl: currentHeat.portfolioAvgPeakPnl,
|
|
1331
|
+
portfolioAvgFallPnl: currentHeat.portfolioAvgFallPnl,
|
|
1332
|
+
portfolioPeakProfitPnl: currentHeat.portfolioPeakProfitPnl,
|
|
1333
|
+
portfolioMaxDrawdownPnl: currentHeat.portfolioMaxDrawdownPnl,
|
|
1334
|
+
portfolioAvgDuration: currentHeat.portfolioAvgDuration,
|
|
1335
|
+
portfolioMedianPnl: currentHeat.portfolioMedianPnl,
|
|
1336
|
+
portfolioAvgConsecutiveWinPnl: currentHeat.portfolioAvgConsecutiveWinPnl,
|
|
1337
|
+
portfolioAvgConsecutiveLossPnl: currentHeat.portfolioAvgConsecutiveLossPnl,
|
|
1338
|
+
portfolioAvgWinDuration: currentHeat.portfolioAvgWinDuration,
|
|
1339
|
+
portfolioAvgLossDuration: currentHeat.portfolioAvgLossDuration,
|
|
1340
|
+
portfolioAnnualizedSharpeRatio: currentHeat.portfolioAnnualizedSharpeRatio,
|
|
1341
|
+
portfolioCertaintyRatio: currentHeat.portfolioCertaintyRatio,
|
|
1342
|
+
portfolioExpectedYearlyReturns: currentHeat.portfolioExpectedYearlyReturns,
|
|
1343
|
+
portfolioTradesPerYear: currentHeat.portfolioTradesPerYear,
|
|
1344
|
+
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades, sortinoRatio, calmarRatio, recoveryFactor, sharpeRatio, annualizedSharpeRatio, certaintyRatio, expectedYearlyReturns, tradesPerYear, avgPnl, stdDev, avgWin, avgLoss, maxWinStreak, maxLossStreak, avgPeakPnl, avgFallPnl, peakProfitPnl, maxDrawdownPnl, avgDuration, medianPnl, avgConsecutiveWinPnl, avgConsecutiveLossPnl, avgWinDuration, avgLossDuration, }) => ({
|
|
1296
1345
|
symbol,
|
|
1297
1346
|
totalPnl,
|
|
1298
1347
|
winRate,
|
|
@@ -1303,6 +1352,27 @@ class StatusViewService {
|
|
|
1303
1352
|
sortinoRatio,
|
|
1304
1353
|
calmarRatio,
|
|
1305
1354
|
recoveryFactor,
|
|
1355
|
+
sharpeRatio,
|
|
1356
|
+
annualizedSharpeRatio,
|
|
1357
|
+
certaintyRatio,
|
|
1358
|
+
expectedYearlyReturns,
|
|
1359
|
+
tradesPerYear,
|
|
1360
|
+
avgPnl,
|
|
1361
|
+
stdDev,
|
|
1362
|
+
avgWin,
|
|
1363
|
+
avgLoss,
|
|
1364
|
+
maxWinStreak,
|
|
1365
|
+
maxLossStreak,
|
|
1366
|
+
avgPeakPnl,
|
|
1367
|
+
avgFallPnl,
|
|
1368
|
+
peakProfitPnl,
|
|
1369
|
+
maxDrawdownPnl,
|
|
1370
|
+
avgDuration,
|
|
1371
|
+
medianPnl,
|
|
1372
|
+
avgConsecutiveWinPnl,
|
|
1373
|
+
avgConsecutiveLossPnl,
|
|
1374
|
+
avgWinDuration,
|
|
1375
|
+
avgLossDuration,
|
|
1306
1376
|
})),
|
|
1307
1377
|
backtest: false,
|
|
1308
1378
|
};
|
package/build/index.mjs
CHANGED
|
@@ -1233,7 +1233,21 @@ class StatusViewService {
|
|
|
1233
1233
|
portfolioCalmarRatio: currentHeat.portfolioCalmarRatio,
|
|
1234
1234
|
portfolioRecoveryFactor: currentHeat.portfolioRecoveryFactor,
|
|
1235
1235
|
portfolioExpectancy: currentHeat.portfolioExpectancy,
|
|
1236
|
-
|
|
1236
|
+
portfolioAvgPeakPnl: currentHeat.portfolioAvgPeakPnl,
|
|
1237
|
+
portfolioAvgFallPnl: currentHeat.portfolioAvgFallPnl,
|
|
1238
|
+
portfolioPeakProfitPnl: currentHeat.portfolioPeakProfitPnl,
|
|
1239
|
+
portfolioMaxDrawdownPnl: currentHeat.portfolioMaxDrawdownPnl,
|
|
1240
|
+
portfolioAvgDuration: currentHeat.portfolioAvgDuration,
|
|
1241
|
+
portfolioMedianPnl: currentHeat.portfolioMedianPnl,
|
|
1242
|
+
portfolioAvgConsecutiveWinPnl: currentHeat.portfolioAvgConsecutiveWinPnl,
|
|
1243
|
+
portfolioAvgConsecutiveLossPnl: currentHeat.portfolioAvgConsecutiveLossPnl,
|
|
1244
|
+
portfolioAvgWinDuration: currentHeat.portfolioAvgWinDuration,
|
|
1245
|
+
portfolioAvgLossDuration: currentHeat.portfolioAvgLossDuration,
|
|
1246
|
+
portfolioAnnualizedSharpeRatio: currentHeat.portfolioAnnualizedSharpeRatio,
|
|
1247
|
+
portfolioCertaintyRatio: currentHeat.portfolioCertaintyRatio,
|
|
1248
|
+
portfolioExpectedYearlyReturns: currentHeat.portfolioExpectedYearlyReturns,
|
|
1249
|
+
portfolioTradesPerYear: currentHeat.portfolioTradesPerYear,
|
|
1250
|
+
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades, sortinoRatio, calmarRatio, recoveryFactor, sharpeRatio, annualizedSharpeRatio, certaintyRatio, expectedYearlyReturns, tradesPerYear, avgPnl, stdDev, avgWin, avgLoss, maxWinStreak, maxLossStreak, avgPeakPnl, avgFallPnl, peakProfitPnl, maxDrawdownPnl, avgDuration, medianPnl, avgConsecutiveWinPnl, avgConsecutiveLossPnl, avgWinDuration, avgLossDuration, }) => ({
|
|
1237
1251
|
symbol,
|
|
1238
1252
|
totalPnl,
|
|
1239
1253
|
winRate,
|
|
@@ -1244,6 +1258,27 @@ class StatusViewService {
|
|
|
1244
1258
|
sortinoRatio,
|
|
1245
1259
|
calmarRatio,
|
|
1246
1260
|
recoveryFactor,
|
|
1261
|
+
sharpeRatio,
|
|
1262
|
+
annualizedSharpeRatio,
|
|
1263
|
+
certaintyRatio,
|
|
1264
|
+
expectedYearlyReturns,
|
|
1265
|
+
tradesPerYear,
|
|
1266
|
+
avgPnl,
|
|
1267
|
+
stdDev,
|
|
1268
|
+
avgWin,
|
|
1269
|
+
avgLoss,
|
|
1270
|
+
maxWinStreak,
|
|
1271
|
+
maxLossStreak,
|
|
1272
|
+
avgPeakPnl,
|
|
1273
|
+
avgFallPnl,
|
|
1274
|
+
peakProfitPnl,
|
|
1275
|
+
maxDrawdownPnl,
|
|
1276
|
+
avgDuration,
|
|
1277
|
+
medianPnl,
|
|
1278
|
+
avgConsecutiveWinPnl,
|
|
1279
|
+
avgConsecutiveLossPnl,
|
|
1280
|
+
avgWinDuration,
|
|
1281
|
+
avgLossDuration,
|
|
1247
1282
|
})),
|
|
1248
1283
|
backtest: true,
|
|
1249
1284
|
};
|
|
@@ -1271,7 +1306,21 @@ class StatusViewService {
|
|
|
1271
1306
|
portfolioCalmarRatio: currentHeat.portfolioCalmarRatio,
|
|
1272
1307
|
portfolioRecoveryFactor: currentHeat.portfolioRecoveryFactor,
|
|
1273
1308
|
portfolioExpectancy: currentHeat.portfolioExpectancy,
|
|
1274
|
-
|
|
1309
|
+
portfolioAvgPeakPnl: currentHeat.portfolioAvgPeakPnl,
|
|
1310
|
+
portfolioAvgFallPnl: currentHeat.portfolioAvgFallPnl,
|
|
1311
|
+
portfolioPeakProfitPnl: currentHeat.portfolioPeakProfitPnl,
|
|
1312
|
+
portfolioMaxDrawdownPnl: currentHeat.portfolioMaxDrawdownPnl,
|
|
1313
|
+
portfolioAvgDuration: currentHeat.portfolioAvgDuration,
|
|
1314
|
+
portfolioMedianPnl: currentHeat.portfolioMedianPnl,
|
|
1315
|
+
portfolioAvgConsecutiveWinPnl: currentHeat.portfolioAvgConsecutiveWinPnl,
|
|
1316
|
+
portfolioAvgConsecutiveLossPnl: currentHeat.portfolioAvgConsecutiveLossPnl,
|
|
1317
|
+
portfolioAvgWinDuration: currentHeat.portfolioAvgWinDuration,
|
|
1318
|
+
portfolioAvgLossDuration: currentHeat.portfolioAvgLossDuration,
|
|
1319
|
+
portfolioAnnualizedSharpeRatio: currentHeat.portfolioAnnualizedSharpeRatio,
|
|
1320
|
+
portfolioCertaintyRatio: currentHeat.portfolioCertaintyRatio,
|
|
1321
|
+
portfolioExpectedYearlyReturns: currentHeat.portfolioExpectedYearlyReturns,
|
|
1322
|
+
portfolioTradesPerYear: currentHeat.portfolioTradesPerYear,
|
|
1323
|
+
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades, sortinoRatio, calmarRatio, recoveryFactor, sharpeRatio, annualizedSharpeRatio, certaintyRatio, expectedYearlyReturns, tradesPerYear, avgPnl, stdDev, avgWin, avgLoss, maxWinStreak, maxLossStreak, avgPeakPnl, avgFallPnl, peakProfitPnl, maxDrawdownPnl, avgDuration, medianPnl, avgConsecutiveWinPnl, avgConsecutiveLossPnl, avgWinDuration, avgLossDuration, }) => ({
|
|
1275
1324
|
symbol,
|
|
1276
1325
|
totalPnl,
|
|
1277
1326
|
winRate,
|
|
@@ -1282,6 +1331,27 @@ class StatusViewService {
|
|
|
1282
1331
|
sortinoRatio,
|
|
1283
1332
|
calmarRatio,
|
|
1284
1333
|
recoveryFactor,
|
|
1334
|
+
sharpeRatio,
|
|
1335
|
+
annualizedSharpeRatio,
|
|
1336
|
+
certaintyRatio,
|
|
1337
|
+
expectedYearlyReturns,
|
|
1338
|
+
tradesPerYear,
|
|
1339
|
+
avgPnl,
|
|
1340
|
+
stdDev,
|
|
1341
|
+
avgWin,
|
|
1342
|
+
avgLoss,
|
|
1343
|
+
maxWinStreak,
|
|
1344
|
+
maxLossStreak,
|
|
1345
|
+
avgPeakPnl,
|
|
1346
|
+
avgFallPnl,
|
|
1347
|
+
peakProfitPnl,
|
|
1348
|
+
maxDrawdownPnl,
|
|
1349
|
+
avgDuration,
|
|
1350
|
+
medianPnl,
|
|
1351
|
+
avgConsecutiveWinPnl,
|
|
1352
|
+
avgConsecutiveLossPnl,
|
|
1353
|
+
avgWinDuration,
|
|
1354
|
+
avgLossDuration,
|
|
1285
1355
|
})),
|
|
1286
1356
|
backtest: false,
|
|
1287
1357
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as c,f as v}from"./index-
|
|
1
|
+
import{b as c,f as v}from"./index-BdqBIHCo.js";const h=c(v("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-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"}),"Article");export{h as A};
|
package/build/modules/frontend/build/assets/{Background-CTyijEIC.js → Background-BnRWKTD8.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as n,S as o}from"./index-
|
|
1
|
+
import{f as n,S as o}from"./index-BdqBIHCo.js";const d=()=>n(o,{children:"\n body {\n background-color: #ddd !important;\n }\n "});export{d as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{f as e,i as t,B as r,J as s}from"./index-
|
|
1
|
+
import{f as e,i as t,B as r,J as s}from"./index-BdqBIHCo.js";const o=({className:o,symbol:i,style:a,sx:n})=>e(s,{children:async()=>{try{const s=(await t.symbolGlobalService.getSymbolMap())[i],l=(null==s?void 0:s.logo)||(null==s?void 0:s.icon),c=(null==s?void 0:s.color)||"#ccc";return e(r,{className:o,sx:{position:"relative",width:24,height:24,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:l?"transparent":c,...n},style:a,children:l?e("img",{loading:"lazy",crossOrigin:"anonymous",src:l,alt:i,style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"contain"},onError:e=>{const t=e.target,r=t.parentElement;r&&(r.style.background=c,t.style.display="none")}}):e(r,{sx:{width:"60%",height:"60%",borderRadius:"50%",backgroundColor:"rgba(255, 255, 255, 0.2)"}})})}catch(s){return e(r,{className:o,sx:{position:"relative",width:24,height:24,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"#ccc",...n},style:a,children:e(r,{sx:{width:"60%",height:"60%",borderRadius:"50%",backgroundColor:"rgba(255, 255, 255, 0.2)"}})})}}});export{o as I};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as o,f as r}from"./index-
|
|
1
|
+
import{b as o,f as r}from"./index-BdqBIHCo.js";const a=o(r("path",{d:"M15.41 16.59 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"}),"KeyboardArrowLeft");export{a as K};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as h,f as c}from"./index-
|
|
1
|
+
import{b as h,f as c}from"./index-BdqBIHCo.js";const v=h(c("path",{d:"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H8V4h12v12zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm12 6V9c0-.55-.45-1-1-1h-2v5h2c.55 0 1-.45 1-1zm-2-3h1v3h-1V9zm4 2h1v-1h-1V9h1V8h-2v5h1zm-8 0h1c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H9v5h1v-2zm0-2h1v1h-1V9z"}),"PictureAsPdfOutlined");export{v as P};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bu as e,d as t,r as a,_ as s,f as i,bv as n,j as o,bw as r,k as d,bx as m,g as u,u as p,s as x,b as c}from"./index-
|
|
1
|
+
import{bu as e,d as t,r as a,_ as s,f as i,bv as n,j as o,bw as r,k as d,bx as m,g as u,u as p,s as x,b as c}from"./index-BdqBIHCo.js";const h=e(),b=["className","component","disableGutters","fixed","maxWidth","classes"],l=m(),f=h("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,t[`maxWidth${o(String(a.maxWidth))}`],a.fixed&&t.fixed,a.disableGutters&&t.disableGutters]}}),g=e=>r({props:e,name:"MuiContainer",defaultTheme:l});const W=function(e={}){const{createStyledComponent:r=f,useThemeProps:m=g,componentName:p="MuiContainer"}=e,x=r(({theme:e,ownerState:a})=>t({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!a.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up("sm")]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}),({theme:e,ownerState:t})=>t.fixed&&Object.keys(e.breakpoints.values).reduce((t,a)=>{const s=a,i=e.breakpoints.values[s];return 0!==i&&(t[e.breakpoints.up(s)]={maxWidth:`${i}${e.breakpoints.unit}`}),t},{}),({theme:e,ownerState:a})=>t({},"xs"===a.maxWidth&&{[e.breakpoints.up("xs")]:{maxWidth:Math.max(e.breakpoints.values.xs,444)}},a.maxWidth&&"xs"!==a.maxWidth&&{[e.breakpoints.up(a.maxWidth)]:{maxWidth:`${e.breakpoints.values[a.maxWidth]}${e.breakpoints.unit}`}}));return a.forwardRef(function(e,a){const r=m(e),{className:c,component:h="div",disableGutters:l=!1,fixed:f=!1,maxWidth:g="lg"}=r,W=s(r,b),k=t({},r,{component:h,disableGutters:l,fixed:f,maxWidth:g}),v=((e,t)=>{const{classes:a,fixed:s,disableGutters:i,maxWidth:n}=e,r={root:["root",n&&`maxWidth${o(String(n))}`,s&&"fixed",i&&"disableGutters"]};return d(r,e=>u(t,e),a)})(k,p);return i(x,t({as:h,ownerState:k,className:n(v.root,c),ref:a},W))})}({createStyledComponent:x("div",{name:"MuiContainer",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:a}=e;return[t.root,t[`maxWidth${o(String(a.maxWidth))}`],a.fixed&&t.fixed,a.disableGutters&&t.disableGutters]}}),useThemeProps:e=>p({props:e,name:"MuiContainer"})}),k=c(i("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"}),"Refresh");export{W as C,k as R};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a0 as o}from"./index-BdqBIHCo.js";const r=new o;export{r};
|
package/build/modules/frontend/build/assets/{hasRouteMatch-Dc8N1sUS.js → hasRouteMatch-CPxZqfwk.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as t,bs as a,bt as e}from"./index-
|
|
1
|
+
import{i as t,bs as a,bt as e}from"./index-BdqBIHCo.js";const s=(s,i=t.routerService.location.pathname)=>!!a(e.filter(({path:t})=>s.includes(t)),i);export{s as h};
|
package/build/modules/frontend/build/assets/{html2canvas-CdMsKjmO.js → html2canvas-CO_-LxFZ.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{by as e,
|
|
1
|
+
import{by as e,bz as t}from"./index-BdqBIHCo.js";function r(e,t){for(var r=0;r<t.length;r++){const o=t[r];if("string"!=typeof o&&!Array.isArray(o))for(const t in o)if("default"!==t&&!(t in e)){const r=Object.getOwnPropertyDescriptor(o,t);r&&Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>o[t]})}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var o=t();const n=r({__proto__:null,default:e(o)},[o]);export{n as h};
|
|
@@ -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-fNGFkBex.js";import{C as D,R as T}from"./Refresh-DrIpy78_.js";import{K as j}from"./KeyboardArrowLeft-Bl6qmlY1.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-BdqBIHCo.js";import{C as D,R as T}from"./Refresh-DgI0wCNO.js";import{K as B}from"./KeyboardArrowLeft-DA3tYiUJ.js";const j=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:j(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(B,{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 +1 @@
|
|
|
1
|
-
import{b as a,f as e,aU as t,B as o,Q as r,a1 as n,T as i,aq as s,N as c,F as l,aI as d,P as h,aJ as p,aW as u,aX as w,aA as b,a0 as f,i as x,aB as g,ad as y,aF as v,x as m,y as S,aY as k,aV as L,D as
|
|
1
|
+
import{b as a,f as e,aU as t,B as o,Q as r,a1 as n,T as i,aq as s,N as c,F as l,aI as d,P as h,aJ as p,aW as u,aX as w,aA as b,a0 as f,i as x,aB as g,ad as y,aF as v,x as m,y as S,aY as k,aV as L,D as A,E as j}from"./index-BdqBIHCo.js";import{A as z}from"./Article-DoMlsIo4.js";import{C as R,R as H}from"./Refresh-DgI0wCNO.js";import{K as B}from"./KeyboardArrowLeft-DA3tYiUJ.js";const C=a(e("path",{d:"M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"}),"BugReport"),E=a=>{const t={color:"white",fontSize:28};switch(a.type){case"debug":return e(C,{sx:t});case"info":return e(u,{sx:t});case"warn":return e(p,{sx:t});default:return e(z,{sx:t})}},F=t.virtualize(({data:a,sx:t})=>{const p=(a=>{switch(a.type){case"debug":default:return"#9E9E9E";case"info":return"#2196F3";case"warn":return"#FF9800";case"log":return"#4CAF50"}})(a);return e(h,{variant:"outlined",sx:{display:"flex",alignItems:"stretch",justifyContent:"stretch",...t},children:e(o,{sx:{flex:1,position:"relative",overflow:"clip",height:"100%",width:"100%",borderRadius:"12px"},children:[e(r,{direction:"row",spacing:2,sx:{p:2},children:[e(n,{sx:{width:56,height:56,background:p},children:E(a)}),e(r,{flex:1,spacing:1,children:[e(r,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",children:[e(i,{variant:"h6",sx:{fontWeight:600,wordBreak:"break-all"},children:a.topic}),e(i,{variant:"body2",color:"text.secondary",sx:{whiteSpace:"nowrap",ml:2},children:s(a.createdAt).format("HH:mm DD/MM/YYYY")})]}),e(r,{direction:"row",spacing:1,flexWrap:"wrap",children:e(c,{size:"small",label:a.type.toUpperCase(),sx:{background:p,color:"white",fontWeight:500}})}),a.args.length>0&&e(l,{children:[e(d,{sx:{my:1}}),e(o,{component:"pre",sx:{m:0,fontSize:"0.75rem",whiteSpace:"pre-wrap",wordBreak:"break-all",color:"text.secondary"},children:JSON.stringify(1===a.args.length?a.args[0]:a.args,null,2)})]})]})]}),e(o,{sx:{position:"absolute",top:0,left:0,bottom:0,width:6,zIndex:1,background:p}})]})})}),D=[{action:"download-action",label:"Download",icon:()=>e(j,{icon:A,color:"#4caf50"})},{divider:!0},{action:"update-now",label:"Refresh manually",icon:()=>e(j,{icon:H,color:"#4caf50"})}],M=[{type:S.Link,action:"back-action",label:e(B,{sx:{display:"block"}})},{type:S.Link,action:"back-action",label:"Main"},{type:S.Link,action:"back-action",label:"Logs"},{type:S.Button,icon:k,action:"search-action",label:"Search"}],Y=new f,I=()=>{const[a,o]=w(""),{data:r,hasMore:n,loading:i,onSkip:s}=b({handler:async(e,t)=>{const o=await x.logViewService.getList(),r=g(e,t);for(const n of o)if(new RegExp(a.current,"i").test(n.topic)&&r([n]).done)break;return r().rows},onLoadStart:()=>x.layoutService.setAppbarLoader(!0),onLoadEnd:()=>x.layoutService.setAppbarLoader(!1),reloadSubject:Y}),c=y(r),{execute:l}=v(async()=>{const a=new Blob([JSON.stringify(c.current,null,2)],{type:"application/json"}),e=URL.createObjectURL(a);x.layoutService.downloadFile(e,`logs_${Date.now()}.json`)},{onLoadStart:()=>x.layoutService.setAppbarLoader(!0),onLoadEnd:()=>x.layoutService.setAppbarLoader(!1)});return e(R,{children:[e(m,{items:M,actions:D,onAction:async a=>{"back-action"===a&&x.routerService.push("/"),"download-action"===a&&l(),"update-now"===a&&(o(""),await Y.next()),"search-action"===a&&(async()=>{const a=await x.layoutService.prompt("Search keyword");if(a)return o(a),void Y.next();o(""),Y.next()})()}}),e(t,{sx:{height:"calc(100vh - 155px)"},withScrollbar:!0,minHeight:72,loading:i,onDataRequest:s,bufferSize:L,hasMore:n,children:r.map(a=>e(F,{data:a,sx:{mb:1}},a.id))})]})};export{I as LogPage,I as default};
|