@orderly.network/ui-tpsl 2.12.2 → 2.12.3
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/dist/index.d.mts +13 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.js +66 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +66 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/index.mjs
CHANGED
|
@@ -17,6 +17,7 @@ var SymbolBadge = (props) => {
|
|
|
17
17
|
const badge = brokerName ?? brokerId ?? void 0;
|
|
18
18
|
return /* @__PURE__ */ jsx(SymbolBadge$1, { badge, fullName: brokerNameRaw });
|
|
19
19
|
};
|
|
20
|
+
var LIQ_DISTANCE_THRESHOLD = 10;
|
|
20
21
|
var OrderInfo = (props) => {
|
|
21
22
|
const { t } = useTranslation();
|
|
22
23
|
const { order: order2, symbolLeverage } = props;
|
|
@@ -29,6 +30,8 @@ var OrderInfo = (props) => {
|
|
|
29
30
|
props.marginMode
|
|
30
31
|
);
|
|
31
32
|
const currentLeverage = symbolLeverage || leverage;
|
|
33
|
+
const markPriceValue = markPrice?.data;
|
|
34
|
+
const estLiqPrice = props.estLiqPrice === 0 || !markPriceValue || markPriceValue === 0 || Math.abs((props.estLiqPrice ?? 0) - markPriceValue) / markPriceValue >= LIQ_DISTANCE_THRESHOLD ? "--" : props.estLiqPrice ?? "--";
|
|
32
35
|
return /* @__PURE__ */ jsxs(
|
|
33
36
|
Flex,
|
|
34
37
|
{
|
|
@@ -152,7 +155,7 @@ var OrderInfo = (props) => {
|
|
|
152
155
|
className: "oui-text-warning",
|
|
153
156
|
size: "2xs",
|
|
154
157
|
dp: props.quoteDP ?? 2,
|
|
155
|
-
children:
|
|
158
|
+
children: estLiqPrice
|
|
156
159
|
}
|
|
157
160
|
)
|
|
158
161
|
] })
|
|
@@ -285,6 +288,10 @@ var usePNLInputBuilder = (props) => {
|
|
|
285
288
|
return `${type.toLowerCase()}_offset`;
|
|
286
289
|
case "Offset%" /* PERCENTAGE */:
|
|
287
290
|
return `${type.toLowerCase()}_offset_percentage`;
|
|
291
|
+
case "OffsetFromMark" /* OFFSET_FROM_MARK */:
|
|
292
|
+
return `${type.toLowerCase()}_offset_from_mark`;
|
|
293
|
+
case "PercentageFromMark" /* PERCENTAGE_FROM_MARK */:
|
|
294
|
+
return `${type.toLowerCase()}_offset_percentage_from_mark`;
|
|
288
295
|
default:
|
|
289
296
|
return `${type.toLowerCase()}_pnl`;
|
|
290
297
|
}
|
|
@@ -302,15 +309,34 @@ var usePNLInputBuilder = (props) => {
|
|
|
302
309
|
{
|
|
303
310
|
label: t("tpsl.offset"),
|
|
304
311
|
value: "Offset" /* OFFSET */,
|
|
305
|
-
testId: `${"Offset" /* OFFSET */}
|
|
312
|
+
testId: `${"Offset" /* OFFSET */}_menu_item`
|
|
306
313
|
},
|
|
307
314
|
{
|
|
308
|
-
label:
|
|
315
|
+
label: t("tpsl.offsetPercent"),
|
|
309
316
|
value: "Offset%" /* PERCENTAGE */,
|
|
310
317
|
testId: `${"Offset%" /* PERCENTAGE */}_menu_item`
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
label: t("tpsl.offsetMark"),
|
|
321
|
+
value: "OffsetFromMark" /* OFFSET_FROM_MARK */,
|
|
322
|
+
testId: `${"OffsetFromMark" /* OFFSET_FROM_MARK */}_menu_item`
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
label: t("tpsl.offsetPercentMark"),
|
|
326
|
+
value: "PercentageFromMark" /* PERCENTAGE_FROM_MARK */,
|
|
327
|
+
testId: `${"PercentageFromMark" /* PERCENTAGE_FROM_MARK */}_menu_item`
|
|
311
328
|
}
|
|
312
329
|
];
|
|
313
330
|
}, [t]);
|
|
331
|
+
const modeLabelMap = useMemo(() => {
|
|
332
|
+
return {
|
|
333
|
+
["PnL" /* PnL */]: t("tpsl.pnl"),
|
|
334
|
+
["Offset" /* OFFSET */]: t("tpsl.offsetHolder"),
|
|
335
|
+
["Offset%" /* PERCENTAGE */]: t("tpsl.offsetHolder"),
|
|
336
|
+
["OffsetFromMark" /* OFFSET_FROM_MARK */]: t("tpsl.offsetHolder"),
|
|
337
|
+
["PercentageFromMark" /* PERCENTAGE_FROM_MARK */]: t("tpsl.offsetHolder")
|
|
338
|
+
};
|
|
339
|
+
}, [t]);
|
|
314
340
|
const percentageSuffix = useRef("");
|
|
315
341
|
const onValueChange = (value2) => {
|
|
316
342
|
props.onChange(key, value2);
|
|
@@ -321,7 +347,7 @@ var usePNLInputBuilder = (props) => {
|
|
|
321
347
|
onRenderBefore: (value2, options2) => {
|
|
322
348
|
value2 = `${value2}`;
|
|
323
349
|
if (value2 === "" || value2 === "-") return "";
|
|
324
|
-
if (mode === "Offset%" /* PERCENTAGE */) {
|
|
350
|
+
if (mode === "Offset%" /* PERCENTAGE */ || mode === "PercentageFromMark" /* PERCENTAGE_FROM_MARK */) {
|
|
325
351
|
try {
|
|
326
352
|
return `${new Decimal(
|
|
327
353
|
value2.replace(
|
|
@@ -332,7 +358,7 @@ var usePNLInputBuilder = (props) => {
|
|
|
332
358
|
} catch {
|
|
333
359
|
return "";
|
|
334
360
|
}
|
|
335
|
-
} else if (mode === "Offset" /* OFFSET */) {
|
|
361
|
+
} else if (mode === "Offset" /* OFFSET */ || mode === "OffsetFromMark" /* OFFSET_FROM_MARK */) {
|
|
336
362
|
value2 = todpIfNeed(value2, dp);
|
|
337
363
|
} else ;
|
|
338
364
|
return `${value2}`;
|
|
@@ -341,7 +367,7 @@ var usePNLInputBuilder = (props) => {
|
|
|
341
367
|
if (/^\-?0{2,}$/.test(value2)) {
|
|
342
368
|
return "0";
|
|
343
369
|
}
|
|
344
|
-
if (mode === "Offset%" /* PERCENTAGE */) {
|
|
370
|
+
if (mode === "Offset%" /* PERCENTAGE */ || mode === "PercentageFromMark" /* PERCENTAGE_FROM_MARK */) {
|
|
345
371
|
if (value2 !== "") {
|
|
346
372
|
value2 = todpIfNeed(value2, 2);
|
|
347
373
|
const endStr = value2.match(/\.0{0,2}$/);
|
|
@@ -370,6 +396,7 @@ var usePNLInputBuilder = (props) => {
|
|
|
370
396
|
return {
|
|
371
397
|
mode,
|
|
372
398
|
modes,
|
|
399
|
+
modeLabelMap,
|
|
373
400
|
type: props.type,
|
|
374
401
|
formatter,
|
|
375
402
|
onModeChange: (mode2) => {
|
|
@@ -386,6 +413,7 @@ var PNLInput = (props) => {
|
|
|
386
413
|
const {
|
|
387
414
|
mode,
|
|
388
415
|
modes,
|
|
416
|
+
modeLabelMap,
|
|
389
417
|
onModeChange,
|
|
390
418
|
onValueChange,
|
|
391
419
|
quote,
|
|
@@ -393,26 +421,19 @@ var PNLInput = (props) => {
|
|
|
393
421
|
value,
|
|
394
422
|
pnl
|
|
395
423
|
} = props;
|
|
396
|
-
const
|
|
397
|
-
const [prefix, setPrefix] = useState(mode);
|
|
398
|
-
const [placeholder, setPlaceholder] = useState(
|
|
399
|
-
mode === "Offset%" /* PERCENTAGE */ ? "%" : quote
|
|
400
|
-
);
|
|
424
|
+
const [isInputFocused, setIsInputFocused] = useState(false);
|
|
401
425
|
const color = useMemo(() => {
|
|
402
426
|
const num = Number(pnl);
|
|
403
427
|
if (isNaN(num) || num === 0) return "";
|
|
404
428
|
if (num > 0) return "oui-text-trade-profit";
|
|
405
429
|
if (num < 0) return "oui-text-trade-loss";
|
|
406
430
|
}, [pnl]);
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
setPrefix(label);
|
|
410
|
-
setPlaceholder(mode === "Offset%" /* PERCENTAGE */ ? "%" : quote);
|
|
411
|
-
}, [mode, modes]);
|
|
431
|
+
const prefixLabel = String(modeLabelMap[mode] ?? mode ?? "");
|
|
432
|
+
const placeholder = isInputFocused ? "" : mode === "Offset%" /* PERCENTAGE */ || mode === "PercentageFromMark" /* PERCENTAGE_FROM_MARK */ ? "%" : quote;
|
|
412
433
|
return /* @__PURE__ */ jsx(
|
|
413
434
|
Input,
|
|
414
435
|
{
|
|
415
|
-
prefix,
|
|
436
|
+
prefix: prefixLabel,
|
|
416
437
|
size: {
|
|
417
438
|
initial: "lg",
|
|
418
439
|
lg: "md"
|
|
@@ -435,15 +456,15 @@ var PNLInput = (props) => {
|
|
|
435
456
|
root: "oui-outline-line-12 focus-within:oui-outline-primary-light"
|
|
436
457
|
},
|
|
437
458
|
onFocus: () => {
|
|
438
|
-
|
|
459
|
+
setIsInputFocused(true);
|
|
439
460
|
props.setFocus(true);
|
|
440
461
|
},
|
|
441
462
|
onBlur: () => {
|
|
442
|
-
|
|
463
|
+
setIsInputFocused(false);
|
|
443
464
|
props.setFocus(false);
|
|
444
465
|
},
|
|
445
466
|
suffix: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
446
|
-
mode === "Offset%" /* PERCENTAGE */ && !!value && /* @__PURE__ */ jsx(
|
|
467
|
+
(mode === "Offset%" /* PERCENTAGE */ || mode === "PercentageFromMark" /* PERCENTAGE_FROM_MARK */) && !!value && /* @__PURE__ */ jsx(
|
|
447
468
|
Text,
|
|
448
469
|
{
|
|
449
470
|
size: "2xs",
|
|
@@ -472,7 +493,7 @@ var PNLMenus = (props) => {
|
|
|
472
493
|
menu: props.modes,
|
|
473
494
|
align: "end",
|
|
474
495
|
size: "xs",
|
|
475
|
-
className: "oui-min-w-[
|
|
496
|
+
className: "oui-min-w-[120px]",
|
|
476
497
|
onSelect: (item) => props.onModeChange(item),
|
|
477
498
|
children: /* @__PURE__ */ jsx("button", { className: "oui-p-2", children: /* @__PURE__ */ jsx(CaretDownIcon, { size: 12, color: "white" }) })
|
|
478
499
|
}
|
|
@@ -1025,6 +1046,8 @@ var TPSL = (props) => {
|
|
|
1025
1046
|
PnL: TPSL_OrderEntity.tp_pnl?.toString() ?? void 0,
|
|
1026
1047
|
Offset: TPSL_OrderEntity.tp_offset?.toString() ?? void 0,
|
|
1027
1048
|
"Offset%": TPSL_OrderEntity.tp_offset_percentage?.toString() ?? void 0,
|
|
1049
|
+
OffsetFromMark: TPSL_OrderEntity.tp_offset_from_mark?.toString() ?? void 0,
|
|
1050
|
+
PercentageFromMark: TPSL_OrderEntity.tp_offset_percentage_from_mark?.toString() ?? void 0,
|
|
1028
1051
|
order_price: TPSL_OrderEntity.tp_order_price?.toString() ?? void 0,
|
|
1029
1052
|
order_type: TPSL_OrderEntity.tp_order_type ?? OrderType.MARKET
|
|
1030
1053
|
},
|
|
@@ -1062,6 +1085,8 @@ var TPSL = (props) => {
|
|
|
1062
1085
|
PnL: TPSL_OrderEntity.sl_pnl?.toString() ?? void 0,
|
|
1063
1086
|
Offset: TPSL_OrderEntity.sl_offset?.toString() ?? void 0,
|
|
1064
1087
|
"Offset%": TPSL_OrderEntity.sl_offset_percentage?.toString() ?? void 0,
|
|
1088
|
+
OffsetFromMark: TPSL_OrderEntity.sl_offset_from_mark?.toString() ?? void 0,
|
|
1089
|
+
PercentageFromMark: TPSL_OrderEntity.sl_offset_percentage_from_mark?.toString() ?? void 0,
|
|
1065
1090
|
order_price: TPSL_OrderEntity.sl_order_price?.toString() ?? void 0,
|
|
1066
1091
|
order_type: TPSL_OrderEntity.sl_order_type ?? OrderType.MARKET
|
|
1067
1092
|
},
|
|
@@ -1686,6 +1711,8 @@ var TPSLAdvancedUI = (props) => {
|
|
|
1686
1711
|
PnL: formattedOrder.tp_pnl ?? "",
|
|
1687
1712
|
Offset: formattedOrder.tp_offset ?? "",
|
|
1688
1713
|
"Offset%": formattedOrder.tp_offset_percentage ?? "",
|
|
1714
|
+
OffsetFromMark: formattedOrder.tp_offset_from_mark ?? "",
|
|
1715
|
+
PercentageFromMark: formattedOrder.tp_offset_percentage_from_mark ?? "",
|
|
1689
1716
|
ROI: formattedOrder.tp_ROI ?? ""
|
|
1690
1717
|
});
|
|
1691
1718
|
const [slValues, setSlValues] = useState({
|
|
@@ -1696,6 +1723,8 @@ var TPSLAdvancedUI = (props) => {
|
|
|
1696
1723
|
PnL: formattedOrder.sl_pnl ?? "",
|
|
1697
1724
|
Offset: formattedOrder.sl_offset ?? "",
|
|
1698
1725
|
"Offset%": formattedOrder.sl_offset_percentage ?? "",
|
|
1726
|
+
OffsetFromMark: formattedOrder.sl_offset_from_mark ?? "",
|
|
1727
|
+
PercentageFromMark: formattedOrder.sl_offset_percentage_from_mark ?? "",
|
|
1699
1728
|
ROI: formattedOrder.sl_ROI ?? ""
|
|
1700
1729
|
});
|
|
1701
1730
|
useEffect(() => {
|
|
@@ -1708,6 +1737,8 @@ var TPSLAdvancedUI = (props) => {
|
|
|
1708
1737
|
PnL: formattedOrder.tp_pnl ?? "",
|
|
1709
1738
|
Offset: formattedOrder.tp_offset ?? "",
|
|
1710
1739
|
"Offset%": formattedOrder.tp_offset_percentage ?? "",
|
|
1740
|
+
OffsetFromMark: formattedOrder.tp_offset_from_mark ?? "",
|
|
1741
|
+
PercentageFromMark: formattedOrder.tp_offset_percentage_from_mark ?? "",
|
|
1711
1742
|
ROI: formattedOrder.tp_ROI ?? ""
|
|
1712
1743
|
}));
|
|
1713
1744
|
}, [formattedOrder]);
|
|
@@ -1721,6 +1752,8 @@ var TPSLAdvancedUI = (props) => {
|
|
|
1721
1752
|
PnL: formattedOrder.sl_pnl ?? "",
|
|
1722
1753
|
Offset: formattedOrder.sl_offset ?? "",
|
|
1723
1754
|
"Offset%": formattedOrder.sl_offset_percentage ?? "",
|
|
1755
|
+
OffsetFromMark: formattedOrder.sl_offset_from_mark ?? "",
|
|
1756
|
+
PercentageFromMark: formattedOrder.sl_offset_percentage_from_mark ?? "",
|
|
1724
1757
|
ROI: formattedOrder.sl_ROI ?? ""
|
|
1725
1758
|
}));
|
|
1726
1759
|
}, [formattedOrder]);
|
|
@@ -1951,9 +1984,13 @@ var useTPSLAdvanced = (props) => {
|
|
|
1951
1984
|
sl_pnl: order2.sl_pnl,
|
|
1952
1985
|
sl_offset: order2.sl_offset,
|
|
1953
1986
|
sl_offset_percentage: order2.sl_offset_percentage,
|
|
1987
|
+
sl_offset_from_mark: order2.sl_offset_from_mark,
|
|
1988
|
+
sl_offset_percentage_from_mark: order2.sl_offset_percentage_from_mark,
|
|
1954
1989
|
tp_pnl: order2.tp_pnl,
|
|
1955
1990
|
tp_offset: order2.tp_offset,
|
|
1956
1991
|
tp_offset_percentage: order2.tp_offset_percentage,
|
|
1992
|
+
tp_offset_from_mark: order2.tp_offset_from_mark,
|
|
1993
|
+
tp_offset_percentage_from_mark: order2.tp_offset_percentage_from_mark,
|
|
1957
1994
|
margin_mode: order2.margin_mode
|
|
1958
1995
|
}
|
|
1959
1996
|
});
|
|
@@ -2637,7 +2674,6 @@ var TPSLDetailUI = (props) => {
|
|
|
2637
2674
|
symbolInfo
|
|
2638
2675
|
} = props;
|
|
2639
2676
|
const { estLiqPrice } = useTPSLDetailContext();
|
|
2640
|
-
console.log("----- position", position);
|
|
2641
2677
|
return /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsxs(ScrollArea, { className: cn(isMobile && "oui-h-[calc(100vh-100px)]"), children: [
|
|
2642
2678
|
/* @__PURE__ */ jsx(
|
|
2643
2679
|
OrderInfo,
|
|
@@ -3476,6 +3512,8 @@ var EditBracketOrderUI = (props) => {
|
|
|
3476
3512
|
PnL: formattedOrder.tp_pnl ?? "",
|
|
3477
3513
|
Offset: formattedOrder.tp_offset ?? "",
|
|
3478
3514
|
"Offset%": formattedOrder.tp_offset_percentage ?? "",
|
|
3515
|
+
OffsetFromMark: formattedOrder.tp_offset_from_mark ?? "",
|
|
3516
|
+
PercentageFromMark: formattedOrder.tp_offset_percentage_from_mark ?? "",
|
|
3479
3517
|
ROI: formattedOrder.tp_ROI ?? ""
|
|
3480
3518
|
});
|
|
3481
3519
|
const [slValues, setSlValues] = useState({
|
|
@@ -3486,6 +3524,8 @@ var EditBracketOrderUI = (props) => {
|
|
|
3486
3524
|
PnL: formattedOrder.sl_pnl ?? "",
|
|
3487
3525
|
Offset: formattedOrder.sl_offset ?? "",
|
|
3488
3526
|
"Offset%": formattedOrder.sl_offset_percentage ?? "",
|
|
3527
|
+
OffsetFromMark: formattedOrder.sl_offset_from_mark ?? "",
|
|
3528
|
+
PercentageFromMark: formattedOrder.sl_offset_percentage_from_mark ?? "",
|
|
3489
3529
|
ROI: formattedOrder.sl_ROI ?? ""
|
|
3490
3530
|
});
|
|
3491
3531
|
useEffect(() => {
|
|
@@ -3498,6 +3538,8 @@ var EditBracketOrderUI = (props) => {
|
|
|
3498
3538
|
PnL: formattedOrder.tp_pnl ?? "",
|
|
3499
3539
|
Offset: formattedOrder.tp_offset ?? "",
|
|
3500
3540
|
"Offset%": formattedOrder.tp_offset_percentage ?? "",
|
|
3541
|
+
OffsetFromMark: formattedOrder.tp_offset_from_mark ?? "",
|
|
3542
|
+
PercentageFromMark: formattedOrder.tp_offset_percentage_from_mark ?? "",
|
|
3501
3543
|
ROI: formattedOrder.tp_ROI ?? ""
|
|
3502
3544
|
}));
|
|
3503
3545
|
}, [formattedOrder]);
|
|
@@ -3511,6 +3553,8 @@ var EditBracketOrderUI = (props) => {
|
|
|
3511
3553
|
PnL: formattedOrder.sl_pnl ?? "",
|
|
3512
3554
|
Offset: formattedOrder.sl_offset ?? "",
|
|
3513
3555
|
"Offset%": formattedOrder.sl_offset_percentage ?? "",
|
|
3556
|
+
OffsetFromMark: formattedOrder.sl_offset_from_mark ?? "",
|
|
3557
|
+
PercentageFromMark: formattedOrder.sl_offset_percentage_from_mark ?? "",
|
|
3514
3558
|
ROI: formattedOrder.sl_ROI ?? ""
|
|
3515
3559
|
}));
|
|
3516
3560
|
}, [formattedOrder]);
|