@orderly.network/ui-tpsl 2.6.3 → 2.7.0-alpha.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/dist/index.d.mts +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.js +23 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/index.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { useSymbolsInfo, usePositionStream, useLocalStorage, useTPSLOrder,
|
|
2
|
-
import {
|
|
1
|
+
import { utils, useSymbolsInfo, usePositionStream, useLocalStorage, useTPSLOrder, useMemoizedFn, useOrderEntry, useOrderStream, findPositionTPSLFromOrders, useMutation, useMarkPrice, useIndexPrice, useLeverageBySymbol, findTPSLFromOrder, findTPSLOrderPriceFromOrder } from '@orderly.network/hooks';
|
|
2
|
+
import { useTranslation, i18n, Trans } from '@orderly.network/i18n';
|
|
3
3
|
import { SDKError, AlgoOrderRootType, PositionType, OrderType, OrderSide, OrderStatus, AlgoOrderType } from '@orderly.network/types';
|
|
4
|
-
import {
|
|
4
|
+
import { Flex, Input, inputFormatter, cn as cn$1, Slider, Text, registerSimpleSheet, registerSimpleDialog, useScreen, ScrollArea, Grid, Button, ThrottledButton, Divider, Box, toast, TokenIcon, modal, Tooltip, ExclamationFillIcon, Select, Checkbox, ChevronDownIcon, Badge, textVariants, SimpleDropdownMenu, CaretDownIcon, useModal } from '@orderly.network/ui';
|
|
5
5
|
import { useOrderEntryFormErrorMsg } from '@orderly.network/react-app';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
6
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
7
|
+
import { memo, useRef, useState, useEffect, createContext, useMemo, Fragment as Fragment$1, useContext } from 'react';
|
|
8
|
+
import { Decimal, checkIsNaN, transSymbolformString, todpIfNeed } from '@orderly.network/utils';
|
|
9
9
|
import { AuthGuardDataTable } from '@orderly.network/ui-connector';
|
|
10
10
|
import { positions } from '@orderly.network/perp';
|
|
11
11
|
|
|
12
|
-
var H=e=>{let{t}=useTranslation(),{order:o}=e,{symbol:r,side:s}=o,i=useMarkPrice(r),l=useIndexPrice(r),n=useSymbolLeverage(r);return jsxs(Flex,{direction:"column",itemAlign:"start",className:cn$1("oui-w-full oui-gap-3 oui-font-semibold ",e.classNames?.root),children:[jsxs(Flex,{itemAlign:"center",className:cn$1("oui-gap-2 ",e.classNames?.symbol),children:[jsxs(Flex,{gap:1,itemAlign:"center",children:[jsx(TokenIcon,{symbol:r,className:"oui-w-5 oui-h-5"}),jsx(Text.formatted,{className:"oui-break-normal oui-whitespace-nowrap",rule:"symbol",formatString:"base-type",size:"sm",weight:"semibold",intensity:98,children:r})]}),jsxs(Text,{size:"2xs",className:"oui-text-base-contrast-36 oui-h-[18px] oui-px-2 oui-bg-base-7 oui-rounded oui-font-semibold",children:[n,"x"]})]}),jsxs(Grid,{cols:2,gapX:2,gapY:1,className:cn$1("oui-w-full oui-gap-x-2 ",e.classNames?.container),children:[jsxs(Flex,{justify:"between",className:" oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("tpsl.advanced.quantity")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.baseDP??2,children:Number(o.order_quantity)})]}),jsxs(Flex,{justify:"between",className:"oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("tpsl.advanced.lastPrice")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.quoteDP??2,children:l?.data})]}),jsxs(Flex,{justify:"between",className:"oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("tpsl.advanced.orderPrice")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.quoteDP??2,children:Number(o.order_price)})]}),jsxs(Flex,{justify:"between",className:"oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("common.markPrice")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.quoteDP??2,children:i?.data})]})]})]})};var ue=e=>{let{t}=useTranslation(),{tp_pnl:o,sl_pnl:r}=e,s=useMemo(()=>{let i=jsx(Text,{className:"oui-text-base-contrast-36",children:"-- x"});if(o===void 0||r===void 0||checkIsNaN(o)||checkIsNaN(r))return i;let l=new Decimal(o),n=new Decimal(r);if(n.isZero()||l.isZero())return i;let a=l.div(n).abs().toNumber().toFixed(2);return jsxs(Flex,{gap:1,itemAlign:"center",className:"oui-text-base-contrast-80",children:[jsx(Text,{children:a}),jsx(Text,{className:"oui-text-base-contrast-36",children:"x"})]})},[o,r]);return jsxs(Flex,{direction:"column",itemAlign:"start",className:cn$1("oui-w-full oui-gap-1 oui-text-2xs oui-text-base-contrast-36",e.className),children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:t("tpsl.totalEstTpPnl")}),jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-text-base-contrast-36 oui-ml-1",children:"USDC"}),rule:"price",coloring:true,visible:true,size:"2xs",dp:2,children:o?Number(o):"--"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:t("tpsl.totalEstSlPnl")}),r?jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-text-base-contrast-36 oui-ml-1",children:"USDC"}),coloring:true,visible:true,size:"2xs",dp:2,children:Number(r)}):jsx(Text,{size:"2xs",children:"-- USDC"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:t("tpsl.riskRewardRatio")}),jsx(Text,{className:"oui-text-base-contrast-80",size:"2xs",children:s})]})]})};var ot=e=>({disableOrderTypeSelector:e.disableOrderTypeSelector,values:e.values,onChange:e.onChange,type:e.type,quote_dp:e.quote_dp,positionType:e.positionType,errors:e.errors,hideOrderPrice:e.hideOrderPrice,rootOrderPrice:e.rootOrderPrice,symbol:e.symbol,disableEnableCheckbox:e.disableEnableCheckbox});var kt=e=>{let{type:t,values:o}=e,[r,s]=useLocalStorage("TP/SL_Mode","Offset%"),[i,l]=useState(true),{t:n}=useTranslation(),a=useMemo(()=>{switch(r){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[r]),m=useMemo(()=>o[r],[o,r]),f=useMemo(()=>[{label:n("tpsl.pnl"),value:"PnL",testId:"PnL_menu_item"},{label:n("tpsl.offset"),value:"Offset",testId:"Offset_mneu_item"},{label:`${n("tpsl.offset")}%`,value:"Offset%",testId:"Offset%_menu_item"}],[n]),u=useRef(""),c=p=>{e.onChange(a,p);},g=p=>{let{dp:y=2}=p;return {onRenderBefore:(d,_)=>(d=`${d}`,i&&t==="SL"&&r==="PnL"&&(d=d.startsWith("-")?d:"-"+d),d===""||d==="-"?"":r==="Offset%"?`${new Decimal(d.replace(new RegExp(u.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${u.current}`:(r==="Offset"&&(d=todpIfNeed(d,y)),`${d}`)),onSendBefore:d=>{if(/^\-?0{2,}$/.test(d))return "0";if(r==="Offset%"){if(d!==""){d=todpIfNeed(d,2);let _=d.match(/\.0{0,2}$/);_?u.current=_[0]:u.current="",d=new Decimal(d).div(100).toString(),d=`${d}${u.current}`;}}else r==="PnL"&&t==="SL"&&i?d=d.startsWith("-")?d:"-"+d:d=todpIfNeed(d,y);return d===""||d==="-"?"":d}}};return {mode:r,modes:f,type:e.type,formatter:g,onModeChange:p=>{s(p);},value:m,pnl:o.PnL,onValueChange:c,quote_dp:e.quote_dp,setFocus:l}};var Vt=e=>{let{mode:t,modes:o,onModeChange:r,onValueChange:s,quote:i,quote_dp:l,value:n,pnl:a}=e,{t:m}=useTranslation(),[f,u]=useState(t),[c,g]=useState(t==="Offset%"?"%":i),p=useMemo(()=>{let y=Number(a);if(isNaN(y)||y===0)return "";if(y>0)return "oui-text-trade-profit";if(y<0)return "oui-text-trade-loss"},[a]);return useEffect(()=>{let y=o.find(d=>d.value===t)?.label;u(y),g(t==="Offset%"?"%":i);},[t,o]),jsx(Input,{prefix:f,size:{initial:"lg",lg:"md"},placeholder:c,align:"right",value:n,"data-testid":e.testId,autoComplete:"off",onValueChange:s,formatters:[e.formatter({dp:l,mode:t}),inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],classNames:{input:cn$1("oui-text-2xs",p),prefix:"oui-text-base-contrast-54 oui-text-2xs",root:"oui-outline-line-12 focus-within:oui-outline-primary-light"},onFocus:()=>{g(""),e.setFocus(true);},onBlur:()=>{g(t==="Offset%"?"%":i),e.setFocus(false);},suffix:jsxs(Fragment,{children:[t==="Offset%"&&!!n&&jsx(Text,{size:"2xs",color:"inherit",className:cn$1("oui-ml-[2px]",p),children:"%"}),jsx(ho,{mode:t,modes:o,onModeChange:y=>r(y.value)})]})})},ho=e=>jsx(SimpleDropdownMenu,{currentValue:e.mode,menu:e.modes,align:"end",size:"xs",className:"oui-min-w-[80px]",onSelect:t=>e.onModeChange(t),children:jsx("button",{className:"oui-p-2",children:jsx(CaretDownIcon,{size:12,color:"white"})})});var zt=e=>{let{testId:t,quote:o,...r}=e,s=kt(r);return jsx(Vt,{...s,testId:t,quote:o})};var Wt=e=>{let{t}=useTranslation(),o=[{label:t("orderEntry.orderType.limitOrder"),value:OrderType.LIMIT},{label:t("orderEntry.orderType.marketOrder"),value:OrderType.MARKET}];return jsx(Select.options,{value:e.type,options:o,disabled:e.disabled,onValueChange:e.onChange,size:"xs",classNames:{trigger:"oui-bg-transparent oui-w-auto oui-outline-line-1 oui-input-root oui-bg-base-6 oui-h-10 lg:oui-h-8 oui-outline-line-12 "},valueFormatter:(r,s)=>{let i={[OrderType.LIMIT]:t("orderEntry.orderType.limit"),[OrderType.MARKET]:t("common.marketPrice")}[r];return jsx(Text,{size:"2xs",children:i})}})};var nt=e=>{let[t,o]=useState("USDC"),{t:r}=useTranslation();return jsx(Input.tooltip,{"data-testid":`oui-testid-tpsl-popUp-${e.type.toLowerCase()}-input`,prefix:e.label??r("common.markPrice"),size:{initial:"lg",lg:"md"},tooltip:e.error,placeholder:t,disabled:e.disabled,align:"right",autoComplete:"off",value:e.value,color:e.error?"danger":void 0,classNames:{input:"oui-text-2xs placeholder:oui-text-2xs",prefix:"oui-text-base-contrast-54 oui-text-2xs",root:"oui-w-full"},onValueChange:e.onValueChange,onFocus:()=>{o("");},onBlur:()=>{o("USDC");},formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(e.quote_dp),inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter]})};var lt=e=>{let{t}=useTranslation(),{getErrorMsg:o}=useOrderEntryFormErrorMsg(e.errors),{values:r,positionType:s}=e,i=useSymbolLeverage(e.symbol),l=useMemo(()=>{if(isNaN(Number(i)))return null;let n=null;if(!e.rootOrderPrice||!r.trigger_price&&!r.order_price)return null;let a=new Decimal(0);if(r.order_type===OrderType.MARKET){if(!r.trigger_price)return null;a=new Decimal(r.trigger_price);}else if(r.order_type===OrderType.LIMIT){if(!r.order_price)return null;a=new Decimal(r.order_price);}let m=new Decimal(e.rootOrderPrice);return n=a.minus(m).div(m).mul(i).abs().mul(100).mul(e.type==="tp"?1:-1).toNumber(),n},[r,e.rootOrderPrice,i,e.type]);return jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",className:"oui-w-full",children:[jsxs(Flex,{className:"oui-w-full",itemAlign:"center",justify:"start",children:[!e.disableEnableCheckbox&&jsx(Checkbox,{"data-testid":`oui-testid-orderEntry-${e.type}-enable-checkBox`,id:`enable_${e.type}`,color:"white",checked:r.enable,onCheckedChange:n=>{e.onChange(`${e.type}_enable`,!!n);}}),jsx("label",{htmlFor:`enable_${e.type}`,className:cn$1("oui-cursor-pointer oui-text-sm",e.disableEnableCheckbox?"oui-ml-0 oui-text-base-contrast":"oui-ml-1 oui-text-base-contrast-36"),children:e.type==="tp"?t("tpsl.advanced.TP.label"):t("tpsl.advanced.SL.label")})]}),jsxs(Flex,{direction:"column",gap:2,itemAlign:"start",className:cn$1("oui-w-full oui-pt-2",r.enable?"":"oui-hidden"),children:[jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-w-full oui-gap-0.5",children:[jsx(Text,{className:"oui-text-2xs oui-text-base-contrast-54",children:t("tpsl.advanced.triggerPrice")}),jsxs(Grid,{cols:2,gap:2,className:"oui-w-full oui-px-0.5",children:[jsx(nt,{type:`${e.type} price`,value:r.trigger_price,error:o(`${e.type}_trigger_price`),onValueChange:n=>{e.onChange(`${e.type}_trigger_price`,n);},quote_dp:e.quote_dp}),jsx(zt,{type:e.type==="tp"?"TP":"SL",onChange:(n,a)=>{e.onChange(n,a);},quote:"USDC",quote_dp:2,values:r})]})]}),jsxs(Flex,{direction:"column",className:cn$1("oui-w-full oui-gap-0.5",e.hideOrderPrice?"oui-hidden":""),itemAlign:"start",children:[jsx(Text,{className:"oui-text-2xs oui-text-base-contrast-54",children:t("tpsl.advanced.orderPrice")}),jsxs(Grid,{cols:2,gap:2,className:"oui-w-full oui-px-0.5",children:[jsx(nt,{disabled:s===PositionType.FULL||r.order_type===OrderType.MARKET,type:"order price",label:r.order_type===OrderType.LIMIT?t("tpsl.advanced.limit"):t("tpsl.advanced.market"),value:r.order_price,error:o(`${e.type}_order_price`),onValueChange:n=>{e.onChange(`${e.type}_order_price`,n);},quote_dp:e.quote_dp}),jsx(Wt,{disabled:s===PositionType.FULL||e.disableOrderTypeSelector,type:r.order_type,onChange:n=>{e.onChange(`${e.type}_order_type`,n);}})]})]})]}),jsx(Qo,{price:r.order_type===OrderType.MARKET?r.trigger_price:r.order_price,orderType:r.order_type,pnl:r.PnL,roi:l,dp:e.quote_dp,className:"oui-mt-1"})]})},Qo=e=>{let{t}=useTranslation(),{price:o,pnl:r,roi:s,dp:i,className:l,orderType:n}=e;return !s||!o||!r?null:jsx(Text,{className:cn$1("oui-text-2xs oui-text-base-contrast-36",l),children:jsx(Trans,{i18nKey:"tpsl.advanced.ROI",components:[jsx(Fragment$1,{children:jsx(Text.numeral,{className:"oui-px-1 oui-text-base-contrast",dp:i,suffix:jsx(Text,{className:"oui-pl-0.5",children:"USDC"}),children:o})},"price"),jsx(Fragment$1,{children:jsx(Text,{className:"oui-px-1 oui-text-base-contrast",children:n===OrderType.MARKET?t("common.market"):t("common.limit")})},"orderType"),jsx(Fragment$1,{children:jsx(Text.numeral,{coloring:true,className:"oui-whitespace-nowrap oui-px-1",dp:2,suffix:jsx(Text,{className:"oui-pl-0.5",children:"USDC"}),children:r})},"pnl"),jsx(Fragment$1,{children:jsx(Text.numeral,{coloring:true,className:"oui-whitespace-nowrap oui-px-1",dp:2,suffix:"%",children:s})},"roi")]})})};var G=e=>{let t=ot(e);return jsx(lt,{...t})};var jt=e=>({value:e.value,onChange:e.onChange,disableSelector:e.disableSelector});var Zo="position_type",Zt=e=>{let{t}=useTranslation(),o=[{label:t("tpsl.positionType.partial"),value:PositionType.PARTIAL},{label:t("tpsl.positionType.full"),value:PositionType.FULL}];return jsxs(Flex,{gap:1,itemAlign:"center",justify:"start",children:[jsx(Tooltip,{className:"oui-w-[280px] oui-p-3",content:e.value===PositionType.FULL?t("tpsl.positionType.full.tips"):t("tpsl.positionType.partial.tips"),children:jsx(ExclamationFillIcon,{className:"oui-cursor-pointer oui-text-base-contrast-54",size:12})}),e.disableSelector?e.value===PositionType.FULL?jsx(Text,{className:"oui-text-2xs oui-font-semibold oui-text-base-contrast-54",children:t("tpsl.positionType.full")}):jsx(Text,{className:"oui-text-2xs oui-font-semibold oui-text-base-contrast-54",children:t("tpsl.positionType.partial")}):jsx(Select.options,{value:e.value,options:o,onValueChange:r=>{e.onChange(Zo,r);},size:"xs",classNames:{trigger:" oui-bg-transparent oui-border-0 oui-w-auto oui-px-0"},contentProps:{className:" oui-bg-base-8 oui-border-0"}})]})};var Z=e=>{let t=jt(e);return jsx(Zt,{...t})};var Ue=e=>{let t=useRef(null),o=convertValueToPercentage(e.quantity,0,e.maxQty)/100,{t:r}=useTranslation(),s=l=>{let n=l;Number(l)>e.maxQty&&(n=e.maxQty.toString()),e.baseTick>0&&e.onQuantityChange?.(utils.formatNumber(n,e.baseTick)??l);},i=e.quantity.toString().length>0?e.errorMsg:void 0;return jsxs(Fragment,{children:[jsx(Flex,{gap:2,children:jsx("div",{className:"oui-flex-1",children:jsx(Input.tooltip,{"data-testid":"oui-testid-tpsl-popUp-quantity-input",ref:t,prefix:r("common.quantity"),size:{initial:"md",lg:"sm"},align:"right",value:e.quantity,autoComplete:"off",classNames:{prefix:"oui-text-base-contrast-54",root:cn$1("oui-bg-base-5 oui-outline-line-12",i&&"oui-outline-danger")},tooltipProps:{content:{className:"oui-bg-base-6 oui-text-base-contrast-80"},arrow:{className:"oui-fill-base-6"}},tooltip:i,color:i?"danger":void 0,formatters:[inputFormatter.dpFormatter(e.dp),inputFormatter.numberFormatter,inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],onValueChange:l=>{e.onQuantityChange?.(l);let n=Number(l);if(n&&n>e.maxQty){let a=e.maxQty;e.onQuantityChange?.(a),t.current?.blur();}},onBlur:l=>s(l.target.value),suffix:jsx("span",{className:"oui-text-2xs oui-text-base-contrast-54 oui-px-3",children:e.quote})})})}),jsx(Flex,{mt:2,itemAlign:"center",height:"15px",children:jsx(Slider.single,{markCount:5,color:"primary",max:e.maxQty,min:0,showTip:true,step:e.baseTick,value:e.quantity,onValueCommit:l=>{s(`${l}`);},onValueChange:l=>{e.onQuantityChange?.(l);}})}),jsxs(Flex,{justify:"between",children:[jsx(Text.numeral,{rule:"percentages",color:"primary",size:"2xs",children:o}),jsxs(Flex,{itemAlign:"center",gap:1,children:[jsx("button",{className:"oui-leading-none",style:{lineHeight:0},onClick:()=>{e.onQuantityChange?.(e.maxQty);},children:jsx(Text,{color:"primary",size:"2xs",children:r("common.max")})}),jsx(Text.numeral,{rule:"price",size:"2xs",intensity:54,tick:e.baseTick,children:e.maxQty})]})]})]})};var Xt=e=>{let{TPSL_OrderEntity:t,symbolInfo:o,onCancel:r,onComplete:s,status:i,position:l,setValues:n,onClose:a,isEditing:m}=e,{errors:f,validated:u}=e.metaState,{t:c}=useTranslation(),{isMobile:g}=useScreen(),{getErrorMsg:p}=useOrderEntryFormErrorMsg(f),y=()=>t.position_type===PositionType.FULL?null:jsx(Box,{className:"oui-px-0.5",children:jsx(Ue,{maxQty:e.maxQty,quantity:e.orderQuantity??e.maxQty,baseTick:o("base_tick"),dp:o("base_dp"),onQuantityChange:e.setQuantity,quote:o("base"),isEditing:e.isEditing,errorMsg:u?p("quantity"):void 0})});return jsxs("div",{id:"orderly-tp_sl-order-edit-content",children:[jsxs(ScrollArea,{className:cn$1(g&&"oui-h-[calc(100vh-200px)]"),children:[jsx(H,{baseDP:o("base_dp"),quoteDP:o("quote_dp"),classNames:{root:"oui-mb-3",container:"oui-gap-x-[30px]"},order:{symbol:l.symbol,order_quantity:l.position_qty.toString(),order_price:l.average_open_price.toString()}}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",gap:3,className:"oui-w-full oui-mb-3",children:[!m&&jsx(Z,{disableSelector:true,value:t.position_type??PositionType.PARTIAL,onChange:(d,_)=>{_===PositionType.FULL?n({position_type:_,quantity:Math.abs(l.position_qty).toString(),tp_order_price:"",tp_order_type:OrderType.MARKET,tp_trigger_price:"",sl_order_price:"",sl_order_type:OrderType.MARKET,sl_trigger_price:""}):n({position_type:_,quantity:"",tp_order_price:"",tp_order_type:OrderType.MARKET,tp_trigger_price:"",sl_order_price:"",sl_order_type:OrderType.MARKET,sl_trigger_price:""});}}),t.position_type===PositionType.FULL&&jsx(Text,{className:"oui-text-warning oui-text-2xs",children:c("tpsl.positionType.full.tips.market")})]}),y(),jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",gap:6,className:"oui-w-full oui-mt-3",children:[jsx(G,{symbol:l.symbol,rootOrderPrice:l.average_open_price.toString(),type:"tp",values:{enable:t.tp_enable??true,trigger_price:t.tp_trigger_price?.toString()??void 0,PnL:t.tp_pnl?.toString()??void 0,Offset:t.tp_offset?.toString()??void 0,"Offset%":t.tp_offset_percentage?.toString()??void 0,order_price:t.tp_order_price?.toString()??void 0,order_type:t.tp_order_type??OrderType.MARKET},hideOrderPrice:t.position_type===PositionType.FULL,errors:u?f:null,disableOrderTypeSelector:m,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,onChange:(d,_)=>{e.setOrderValue(d,_);}}),jsx(G,{symbol:l.symbol,rootOrderPrice:l.average_open_price.toString(),type:"sl",values:{enable:t.sl_enable??true,trigger_price:t.sl_trigger_price?.toString()??void 0,PnL:t.sl_pnl?.toString()??void 0,Offset:t.sl_offset?.toString()??void 0,"Offset%":t.sl_offset_percentage?.toString()??void 0,order_price:t.sl_order_price?.toString()??void 0,order_type:t.sl_order_type??OrderType.MARKET},hideOrderPrice:t.position_type===PositionType.FULL,errors:u?f:null,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,disableOrderTypeSelector:m,onChange:(d,_)=>{e.setOrderValue(d,_);}})]}),jsx(ue,{tp_pnl:t.tp_pnl,sl_pnl:t.sl_pnl,className:"oui-my-3"})]}),jsxs(Grid,{cols:2,gap:3,mt:4,children:[jsx(Button,{size:"md",color:"secondary","data-testid":"tpsl-cancel",onClick:()=>{e.close?.();},children:c("common.cancel")}),jsx(ThrottledButton,{size:"md","data-testid":"tpsl-confirm",disabled:i.isCreateMutating,loading:i.isCreateMutating||i.isUpdateMutating,onClick:()=>{e.onSubmit().then(()=>{e.close?.(),s?.();}).catch(d=>{});},children:c("common.confirm")})]})]})};var Oi=e=>{let{tpPrice:t,slPrice:o}=e,{t:r}=useTranslation();return t&&o?jsx(Badge,{size:"xs",color:"neutral",children:r("common.tpsl")}):t?jsx(Badge,{size:"xs",color:"neutral",children:r("tpsl.tp")}):o?jsx(Badge,{size:"xs",color:"neutral",children:r("tpsl.sl")}):null},Ne=e=>{let{symbol:t,tpPrice:o,slPrice:r,qty:s,maxQty:i,side:l,quoteDP:n,baseDP:a,isEditing:m,isPositionTPSL:f,orderInfo:u}=e,{t:c}=useTranslation(),[g,p]=useLocalStorage("orderly_order_confirm",true),y=()=>u.position_type===PositionType.FULL?jsx(Text,{children:c("tpsl.positionType.full")}):jsx(Text,{children:c("tpsl.positionType.partial")}),d=({price:h,isOrderPrice:O,isEnable:w,colorType:ie})=>w?!h&&O?jsx(Text,{className:"oui-text-base-contrast-36",children:c("common.market")}):jsx(Text.numeral,{unit:"USDC",rule:"price",className:cn$1("oui-text-base-contrast",ie==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:n,padding:false,children:h}):jsx(Text,{className:"oui-text-base-contrast-36",children:"-- USDC"}),_=f;return jsxs(Fragment,{children:[m&&jsx(Text,{as:"div",size:"2xs",intensity:80,className:"oui-mb-3",children:c("tpsl.agreement",{symbol:transSymbolformString(t)})}),jsxs(Flex,{pb:4,children:[jsx(Box,{grow:true,children:jsx(Text.formatted,{rule:"symbol",formatString:"base-type",size:"base",showIcon:true,as:"div",intensity:80,children:t})}),jsxs(Flex,{gap:1,children:[_&&jsx(Badge,{size:"xs",color:"primary",children:c("common.position")}),jsx(Oi,{tpPrice:o,slPrice:r}),l===OrderSide.SELL?jsx(Badge,{size:"xs",color:"success",children:c("common.buy")}):jsx(Badge,{size:"xs",color:"danger",children:c("common.sell")})]})]}),jsx(Divider,{}),u.tp_trigger_price||u.sl_trigger_price?jsxs(Fragment,{children:[jsx(Divider,{className:"oui-my-4"}),jsxs("div",{className:textVariants({size:"sm",intensity:54,className:"oui-space-y-1 oui-w-full oui-flex oui-flex-col oui-gap-3"}),children:[jsx(Text,{className:"oui-text-base-contrast",children:y()}),jsxs(Flex,{justify:"between",children:[jsx(Text,{children:c("common.orderQty")}),jsx(Text.numeral,{rule:"price",dp:a,padding:false,className:"oui-text-base-contrast",children:u.quantity??"-"})]}),jsxs(Flex,{direction:"column",justify:"between",itemAlign:"start",gap:1,className:"oui-w-full",children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:c("tpsl.tpTriggerPrice")})," ",d({price:u.tp_trigger_price??"",isOrderPrice:false,isEnable:!!u.tp_trigger_price,colorType:"TP"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:c("tpsl.tpOrderPrice")}),d({price:u.tp_order_price??"",isOrderPrice:true,isEnable:!!u.tp_trigger_price,colorType:"TP"})]})]}),jsxs(Flex,{direction:"column",justify:"between",itemAlign:"start",gap:1,className:"oui-w-full",children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:c("tpsl.slTriggerPrice")}),d({price:u.sl_trigger_price??"",isOrderPrice:false,isEnable:!!u.sl_trigger_price,colorType:"SL"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:c("tpsl.slOrderPrice")}),d({price:u.sl_order_price??"",isOrderPrice:true,isEnable:!!u.sl_trigger_price,colorType:"SL"})]})]})]})]}):null,jsx(Box,{pt:2,children:jsxs(Flex,{gap:1,children:[jsx(Checkbox,{id:"disabledConfirm",color:"white",checked:!g,onCheckedChange:h=>{p(!h);}}),jsx("label",{htmlFor:"disabledConfirm",className:textVariants({size:"xs",intensity:54,className:"oui-ml-1"}),children:c("orderEntry.disableOrderConfirm")})]})})]})};var ur=e=>{let{symbol:t,order:o,isEditing:r,positionType:s,triggerPrice:i,type:l,withTriggerPrice:n}=e,{t:a}=useTranslation();if(r&&!o)throw new SDKError("order is required when isEditing is true");let m=useSymbolsInfo();useRef(AlgoOrderRootType.TP_SL);let [{rows:u}]=usePositionStream(),[c]=useLocalStorage("orderly_order_confirm",true),g=u.find(x=>x.symbol===t);if(!g)throw new SDKError("position not found");let [p,{submit:y,deleteOrder:d,setValue:_,setValues:h,validate:O,metaState:w,errors:ie,isCreateMutating:Se,isUpdateMutating:se}]=useTPSLOrder({symbol:t,position_qty:g?.position_qty??0,average_open_price:g?.average_open_price??0},{defaultOrder:o,positionType:i?PositionType.PARTIAL:s,tpslEnable:{tp_enable:n?l==="tp":true,sl_enable:n?l==="sl":true},isEditing:r}),et=x=>{_("quantity",x);},k=(x,L)=>{_(x,L);},N=(x,L)=>{_(x,L);},Ft=useMemo(()=>Math.abs(Number(g.position_qty)),[g.position_qty]);useMemo(()=>{let x=o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL?Ft:o?.quantity,L=0;if((Number(p.quantity)!==x||!r&&p.quantity)&&(L=1),o&&r){let{tp_trigger_price:tt,sl_trigger_price:W}=utils.findTPSLFromOrder(o),{tp_order_price:wt,sl_order_price:Et}=utils.findTPSLOrderPriceFromOrder(o);tt!==Number(p.tp_trigger_price)&&typeof typeof p.tp_trigger_price<"u"&&(L=2),W!==Number(p.sl_trigger_price)&&typeof p.sl_trigger_price<"u"&&(L=3),typeof p.tp_order_price<"u"&&wt!==OrderType.MARKET&&wt!==Number(p.tp_order_price)&&(L=4),typeof p.sl_order_price<"u"&&Et!==OrderType.MARKET&&Et!==Number(p.sl_order_price)&&(L=5);}return L===1&&!p.tp_trigger_price&&!p.sl_trigger_price&&(L=-1),L},[p.tp_trigger_price,p.tp_order_price,p.sl_trigger_price,p.sl_order_price,p.quantity,o,r]);useEffect(()=>{n&&i&&(_(l==="tp"?"tp_trigger_price":"sl_trigger_price",i),e.qty&&_("quantity",e.qty));},[l,i,e.qty]);let oo=()=>o?.algo_order_id&&o?.symbol?d(o?.algo_order_id,o?.symbol):Promise.reject("order id or symbol is invalid"),io=(x,L)=>{if(!c)return Promise.resolve(true);let tt=Math.abs(Number(g.position_qty));return `${x.tp_trigger_price??""}`.length===0&&`${x.sl_trigger_price??""}`.length===0?modal.confirm({title:a("orders.cancelOrder"),content:a("tpsl.cancelOrder.description"),onOk:()=>L.cancel()}).then(()=>true,()=>Promise.reject(false)):modal.confirm({title:a("tpsl.confirmOrder"),onOk:async()=>{try{let W=await L.submit({accountId:g.account_id});return W.success?W:(W.message&&toast.error(W.message),!1)}catch(W){return W?.message&&toast.error(W.message),false}},classNames:{body:"!oui-pb-0"},content:jsx(Ne,{isPositionTPSL:s===PositionType.FULL,isEditing:r,symbol:x.symbol,qty:Number(x.quantity),maxQty:tt,tpPrice:Number(x.tp_trigger_price),slPrice:Number(x.sl_trigger_price),side:x.side,orderInfo:x,quoteDP:m[t]("quote_dp")??2,baseDP:m[t]("base_dp")??2})}).then(()=>true,()=>Promise.reject(false))},so=async()=>{try{if(await O())return c?io(p,{position:g,submit:y,cancel:oo}):y({accountId:g.account_id}).then(()=>!0).catch(L=>{throw L?.message&&toast.error(L.message),!1})}catch(x){return Promise.reject(x)}};return {isEditing:r,symbolInfo:m[t],maxQty:Ft,setQuantity:et,orderQuantity:p.quantity,TPSL_OrderEntity:p,setOrderValue:_,setPnL:N,setOrderPrice:k,onSubmit:so,metaState:w,errors:ie,status:{isCreateMutating:Se,isUpdateMutating:se},position:g,setValues:h}};var Ce=e=>{let{onCancel:t,onComplete:o,close:r,...s}=e,i=ur(s);return jsx(Xt,{...i,onCancel:t,onComplete:o,close:r})},Ve="TPSLSheetId",ye="TPSLDialogId";registerSimpleSheet(Ve,Ce);registerSimpleDialog(ye,Ce,{classNames:{content:"oui-w-[420px]"}});var Vi=e=>{let{position:t,order:o,baseDP:r,quoteDP:s,buttonProps:i,isEditing:l}=e,[n]=useLocalStorage("orderly_order_confirm",true),{t:a}=useTranslation(),m=l?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0;return jsx(Box,{onClick:()=>{modal.show(ye,{order:o,symbol:t.symbol,baseDP:r,quoteDP:s,positionType:m?PositionType.FULL:PositionType.PARTIAL,isEditing:l});},className:"oui-cursor-pointer",children:e.children||jsx(Button,{variant:"outlined",size:"sm",color:"secondary",...i,children:e.label})})};var Wi=e=>{let{position:t,order:o,symbolInfo:r,isEditing:s}=e,{resolve:i,hide:l,updateArgs:n}=useModal(),a=s?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0;return jsx(Fragment,{children:jsx(Ce,{...e,positionType:e.positionType??(a?PositionType.FULL:PositionType.PARTIAL),onCancel:()=>{l();}})})};var Tr=e=>{let{t}=useTranslation(),{errors:o,validated:r}=e.metaState,{formattedOrder:s,setValue:i,symbolInfo:l,setValues:n}=e,[a,m]=useState({enable:true,order_type:s.tp_order_type??OrderType.MARKET,order_price:s.tp_order_price??"",trigger_price:s.tp_trigger_price??"",PnL:s.tp_pnl??"",Offset:s.tp_offset??"","Offset%":s.tp_offset_percentage??"",ROI:s.tp_ROI??""}),[f,u]=useState({enable:true,order_type:s.sl_order_type??OrderType.MARKET,order_price:s.sl_order_price??"",trigger_price:s.sl_trigger_price??"",PnL:s.sl_pnl??"",Offset:s.sl_offset??"","Offset%":s.sl_offset_percentage??"",ROI:s.sl_ROI??""});return useEffect(()=>{m(c=>({...c,enable:s.tp_enable??true,order_type:s.tp_order_type??OrderType.MARKET,order_price:s.tp_order_price??"",trigger_price:s.tp_trigger_price??"",PnL:s.tp_pnl??"",Offset:s.tp_offset??"","Offset%":s.tp_offset_percentage??"",ROI:s.tp_ROI??""}));},[s]),useEffect(()=>{u(c=>({...c,enable:s.sl_enable??true,order_type:s.sl_order_type??OrderType.MARKET,order_price:s.sl_order_price??"",trigger_price:s.sl_trigger_price??"",PnL:s.sl_pnl??"",Offset:s.sl_offset??"","Offset%":s.sl_offset_percentage??"",ROI:s.sl_ROI??""}));},[s]),jsxs("div",{className:"oui-rounded-[16px] oui-py-3 oui-flex oui-flex-col oui-justify-between oui-h-full",children:[jsx("div",{className:"oui-px-3",children:jsxs(Flex,{className:"oui-mb-5 oui-cursor-pointer oui-text-base oui-text-base-contrast-80",gap:1,itemAlign:"center",onClick:e.onClose,children:[jsx(Hi,{className:" oui-text-base-contrast-80"}),jsx(Text,{children:t("tpsl.advanced.title")})]})}),jsxs(ScrollArea,{className:"oui-flex-1",children:[jsx("div",{className:"oui-px-3",children:jsx(H,{order:s,baseDP:l.base_dp,quoteDP:l.quote_dp})}),jsx(Divider,{className:"oui-my-3"}),jsxs("div",{className:"oui-px-3",children:[jsxs(Flex,{className:"oui-gap-[6px]",children:[jsx(Button,{onClick:()=>{i("side",OrderSide.BUY);},size:"sm",fullWidth:true,"data-type":OrderSide.BUY,className:cn$1(s.side===OrderSide.BUY?"oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-buy-button",children:t("common.buy")}),jsx(Button,{onClick:()=>{i("side",OrderSide.SELL);},"data-type":OrderSide.SELL,fullWidth:true,size:"sm",className:cn$1(s.side===OrderSide.SELL?"oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-sell-button",children:t("common.sell")})]}),jsxs("div",{className:"oui-py-3",children:[jsx(Z,{value:s.position_type??PositionType.PARTIAL,onChange:(c,g)=>{if(g===PositionType.FULL){n({position_type:PositionType.FULL,tp_order_type:OrderType.MARKET,tp_order_price:void 0,sl_order_type:OrderType.MARKET,sl_order_price:void 0});return}i("position_type",g);}}),s.position_type===PositionType.FULL&&jsxs(Flex,{justify:"start",itemAlign:"start",gap:2,className:"oui-mt-3 oui-w-full",children:[jsx("div",{className:"oui-relative oui-top-[7px] oui-size-1 oui-rounded-full oui-bg-[#D25f00]"}),jsx(Text,{className:"oui-text-2xs oui-text-[#D25f00]",children:t("tpsl.positionType.full.tips.market")})]})]}),jsxs(Flex,{direction:"column",gap:6,children:[jsx(G,{rootOrderPrice:s.order_price,symbol:l.symbol,type:"tp",values:a,errors:r?o:null,quote_dp:l.quote_dp,hideOrderPrice:s.position_type===PositionType.FULL,onChange:(c,g)=>{i(c,g);},positionType:s.position_type??PositionType.PARTIAL}),jsx(G,{rootOrderPrice:s.order_price,symbol:l.symbol,type:"sl",values:f,hideOrderPrice:s.position_type===PositionType.FULL,errors:r?o:null,quote_dp:l.quote_dp,positionType:s.position_type??PositionType.PARTIAL,onChange:(c,g)=>{i(c,g);}})]}),jsx(ue,{tp_pnl:s.tp_pnl,sl_pnl:s.sl_pnl,className:"oui-mt-6"})]})]}),jsxs(Flex,{className:"oui-mt-6 oui-px-3",gap:2,children:[jsx(Button,{size:"md",fullWidth:true,color:"gray",variant:"outlined",className:"oui-text-base-contrast-36",onClick:e.onClose,children:t("common.cancel")}),jsx(Button,{size:"md",fullWidth:true,color:"success",className:cn$1(s.side===OrderSide.SELL?"oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80":"oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80"),onClick:e.onSubmit,children:t("tpsl.advanced.submit")})]})]})},Hi=e=>jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",...e,children:jsx("path",{d:"M8.03752 2.9294C7.89169 2.95857 7.74527 3.03207 7.65661 3.16624L5.33145 6.66624C5.20137 6.86224 5.20137 7.12648 5.33145 7.32248L7.65661 10.8225C7.83452 11.0902 8.20669 11.1655 8.47385 10.9864C8.74044 10.8079 8.8151 10.434 8.63719 10.1662L6.53019 6.99408L8.63719 3.82249C8.8151 3.55416 8.74044 3.18082 8.47385 3.00232C8.34027 2.91249 8.18335 2.89965 8.03752 2.9294Z"})});var xr=(e,t)=>{if(e.tp_trigger_price||e.sl_trigger_price){if(t==="tp")return !!e.tp_trigger_price;if(t==="sl")return !!e.sl_trigger_price}return true},br=e=>{let{order:t,setOrderValue:o,onClose:r}=e,[s,i]=useState(null),{formattedOrder:l,setValue:n,setValues:a,helper:m,symbolInfo:f,metaState:u,...c}=useOrderEntry(t.symbol,{initialOrder:{symbol:t.symbol,order_type:t.order_type,side:t.side,order_price:t.order_price,order_quantity:t.order_quantity,position_type:t.position_type??PositionType.PARTIAL,trigger_price:t.trigger_price,tp_enable:xr(t,"tp"),sl_enable:xr(t,"sl"),tp_trigger_price:t.tp_trigger_price,sl_trigger_price:t.sl_trigger_price,tp_order_price:t.tp_order_price,sl_order_price:t.sl_order_price,tp_order_type:t.tp_order_type,sl_order_type:t.sl_order_type,sl_pnl:t.sl_pnl,sl_offset:t.sl_offset,sl_offset_percentage:t.sl_offset_percentage,tp_pnl:t.tp_pnl,tp_offset:t.tp_offset,tp_offset_percentage:t.tp_offset_percentage}});return {order:t,formattedOrder:l,symbolInfo:f,setValue:n,setValues:a,onSubmit:()=>{m.validate().then(()=>{e.onSubmit(l);}).catch(p=>{});},onClose:r,metaState:u}};var Or=e=>{let t=br({order:e.order,setOrderValue:e.setOrderValue,onSubmit:e.onSubmit,onClose:e.onClose});return jsx(Tr,{...t})},ts="TPSLAdvancedSheetId",rs="TPSLAdvancedDialogId";registerSimpleSheet(ts,Or,{title:()=>i18n.t("common.settings")});registerSimpleDialog(rs,Or,{title:()=>i18n.t("common.settings")});var Ir=e=>{let{position:t}=e,o=t.symbol,r=useSymbolsInfo()[o],{isMobile:s}=useScreen(),{t:i}=useTranslation(),[l,n]=useState([]),[a,m]=useState([]),[f,{cancelAlgoOrder:u,cancelPostionOrdersByTypes:c,refresh:g}]=useOrderStream({symbol:t.symbol,status:OrderStatus.INCOMPLETE,includes:[AlgoOrderRootType.POSITIONAL_TP_SL,AlgoOrderRootType.TP_SL],size:500},{keeplive:true}),p=async O=>await u(O.algo_order_id,O.symbol),y=async()=>await c(o,[AlgoOrderRootType.TP_SL]),d=({order:O,positionType:w,isEditing:ie})=>{let Se=s?Ve:ye;modal.show(Se,{order:O,symbol:t.symbol,positionType:w,isEditing:ie});},_=(O,w)=>{d({order:O,positionType:w,isEditing:true});},h=O=>{d({positionType:O,isEditing:false});};return useEffect(()=>{if(f){let{fullPositionOrder:O,partialPositionOrders:w}=findPositionTPSLFromOrders(f,o);n(O?[O]:[]),m(w??[]);}},[f,o]),{symbolInfo:r,position:t,symbol:o,fullPositionOrders:l,partialPositionOrders:a,cancelPostionOrdersByTypes:c,onCancelOrder:p,onCancelAllTPSLOrders:y,editTPSLOrder:_,addTPSLOrder:h}};var Ar=createContext({}),hr=e=>{let t=useSymbolsInfo()[e.symbol];return jsx(Ar.Provider,{value:{base_dp:t("base_dp"),quote_dp:t("quote_dp"),position:e.position},children:e.children})},J=()=>useContext(Ar);var C=e=>jsx(Flex,{direction:"column",justify:"center",itemAlign:"start",className:"oui-text-2xs oui-h-[36px]",children:e.children});var mt=({order:e})=>{let{position:t,base_dp:o,quote_dp:r}=J(),{tp_trigger_price:s,sl_trigger_price:i}=findTPSLFromOrder(e),l,n,a=new Decimal(e.quantity).eq(0)?t.position_qty:e.quantity;return s&&(l=new Decimal(positions.unrealizedPnL({qty:a,openPrice:t?.average_open_price,markPrice:s})).abs().toNumber()),i&&(n=new Decimal(positions.unrealizedPnL({qty:a,openPrice:t?.average_open_price,markPrice:i})).abs().mul(-1).toNumber()),jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[l&&jsx(C,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:l})}),n&&jsx(C,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:n})})]})};var gt=({order:e})=>{let{quote_dp:t}=J(),{tp_order_price:o,sl_order_price:r}=findTPSLOrderPriceFromOrder(e),{t:s}=useTranslation();return jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(C,{children:o===OrderType.MARKET?jsx(Text,{children:s("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})}),r&&jsx(C,{children:r===OrderType.MARKET?jsx(Text,{children:s("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})})]})};var ft=({order:e})=>{let{position:t,base_dp:o}=J(),{tp_trigger_price:r,sl_trigger_price:s}=findTPSLFromOrder(e);return jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",className:"oui-h-full oui-text-2xs",children:[jsx(C,{children:jsx(Text.numeral,{dp:o,rm:Decimal.ROUND_DOWN,padding:false,children:e.quantity===0?t.position_qty:e.quantity})}),r&&s&&jsx(C,{children:jsx("div",{})})]})};var Pt=({order:e})=>{let{quote_dp:t}=J(),{tp_trigger_price:o,sl_trigger_price:r}=findTPSLFromOrder(e),{t:s}=useTranslation();return jsxs(Flex,{gap:1,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(C,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:s("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})]})}),r&&jsx(C,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:s("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})]})})]})};var Tt=({order:e})=>{let{tp_trigger_price:t,sl_trigger_price:o}=findTPSLFromOrder(e),{t:r}=useTranslation();return jsxs(Flex,{direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[t&&jsx(C,{children:jsx(Text,{className:"oui-text-trade-profit",children:r("tpsl.tp")})}),o&&jsx(C,{children:jsx(Text,{className:"oui-text-trade-loss",children:r("tpsl.sl")})})]})};var je=e=>{let{t}=useTranslation(),{isMobile:o}=useScreen(),{onCancelOrder:r}=e;return useMemo(()=>{let i=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:"oui-py-2",render:(n,a)=>jsx(ft,{order:a})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(n,a)=>jsx(Tt,{order:a})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(n,a)=>jsx(Pt,{order:a})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-py-2",render:(n,a)=>jsx(gt,{order:a})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast",content:t("tpsl.tpslDetail.estPnl.tooltip"),children:jsx(Text,{className:"oui-underline oui-decoration-dashed oui-underline-offset-2",children:t("tpsl.tpslDetail.estPnl")})}),dataIndex:"estpnl",width:70,className:"!oui-pr-0 oui-py-2",render:(n,a)=>jsx(mt,{order:a})}],l=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:cn$1(" oui-py-2 !oui-pl-5"),render:(n,a)=>jsx(ft,{order:a})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(n,a)=>jsx(Tt,{order:a})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(n,a)=>jsx(Pt,{order:a})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-pl-1 oui-py-2",render:(n,a)=>jsx(gt,{order:a})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast",content:t("tpsl.tpslDetail.estPnl.tooltip"),children:jsx(Text,{className:"oui-underline oui-decoration-dashed oui-underline-offset-2",children:t("tpsl.tpslDetail.estPnl")})}),dataIndex:"estpnl",width:70,className:"oui-pl-1 oui-py-2",render:(n,a)=>jsx(mt,{order:a})},{title:"",dataIndex:"delete",width:50,className:cn$1("oui-py-2 !oui-pr-5"),render:(n,a)=>jsx(Qs,{order:a,onCancelOrder:r})}];return o?i:l},[t,o])};var zs=e=>{let{size:t=18}=e;return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 18 18",fill:"currentColor",...e,children:jsx("path",{d:"M5.48081 15.375C5.10681 15.375 4.78731 15.2426 4.52231 14.9777C4.25744 14.7127 4.125 14.3932 4.125 14.0192V4.50004H3.375V3.37505H6.75V2.71167H11.25V3.37505H14.625V4.50004H13.875V14.0192C13.875 14.3981 13.7438 14.7188 13.4813 14.9813C13.2188 15.2438 12.8981 15.375 12.5192 15.375H5.48081ZM12.75 4.50004H5.25V14.0192C5.25 14.0866 5.27162 14.1419 5.31487 14.1852C5.35812 14.2284 5.41344 14.25 5.48081 14.25H12.5192C12.5769 14.25 12.6298 14.226 12.6778 14.1779C12.7259 14.1299 12.75 14.077 12.75 14.0192V4.50004ZM7.053 12.75H8.17781V6.00004H7.053V12.75ZM9.82219 12.75H10.947V6.00004H9.82219V12.75Z"})})},Qs=e=>{let[t,o]=useState(false);return jsx(ThrottledButton,{size:"sm",loading:t,variant:"text",color:"gray",onClick:r=>{r.stopPropagation(),o(true),e.onCancelOrder?.(e.order).then(()=>{},s=>{toast.error(s.message);}).finally(()=>{o(false);});},children:jsx(zs,{className:"oui-text-base-contrast-54 hover:oui-text-base-contrast oui-cursor-pointer"})})};var bt=e=>{let{orders:t}=e,o=je({onCancelOrder:e.onCancelOrder});return jsx(AuthGuardDataTable,{columns:o,dataSource:t,className:"oui-bg-transparent oui-text-2xs",bordered:true,classNames:{root:cn$1(e.className),header:"!oui-bg-base-8",scroll:cn$1(!t||t.length===0?"!oui-min-h-[170px]":"!oui-min-h-[100px]")},onRow:r=>({className:cn$1("oui-h-[53px] oui-cursor-svg-edit !oui-border-none !oui-p-0"),onClick:()=>{e.editTPSLOrder(r);}})})};var St=e=>{let{t}=useTranslation(),{orders:o}=e,r=je({onCancelOrder:()=>Promise.resolve()}),s=useMemo(()=>o.reduce((i,l)=>(i[l.algo_order_id]=true,i),{}),[o]);return jsx(AuthGuardDataTable,{columns:r,dataSource:o,expanded:s,bordered:true,getRowCanExpand:()=>true,expandRowRender:i=>jsxs(Flex,{gap:2,justify:"end",children:[jsx(Button,{variant:"outlined",size:"sm",color:"gray",className:"oui-h-6 oui-text-2xs oui-text-base-contrast-54",onClick:()=>e.editTPSLOrder(i.original),children:t("common.edit")}),jsx(Js,{order:i.original,onCancelOrder:e.canCancelOrder})]}),className:"oui-bg-transparent oui-px-2 oui-text-2xs",classNames:{scroll:cn$1(!o||o.length===0?"!oui-min-h-[170px]":"!oui-min-h-[100px]")},onRow:()=>({className:cn$1("oui-h-[53px] oui-cursor-svg-edit !oui-border-none !oui-p-0")}),generatedRowKey:i=>i.algo_order_id})},Js=e=>{let[t,o]=useState(false),{t:r}=useTranslation();return jsx(ThrottledButton,{className:"oui-h-6 oui-text-2xs oui-text-base-contrast-54",size:"sm",loading:t,variant:"outlined",color:"gray",onClick:s=>{s.stopPropagation(),o(true),e.onCancelOrder?.(e.order).then(()=>{},i=>{toast.error(i.message);}).finally(()=>{o(false);});},children:r("common.delete")})};var Vr=e=>{let{isMobile:t}=useScreen(),{position:o,fullPositionOrders:r,partialPositionOrders:s,onCancelOrder:i,onCancelAllTPSLOrders:l,editTPSLOrder:n,addTPSLOrder:a,symbolInfo:m}=e;return jsx(Box,{children:jsxs(ScrollArea,{className:cn$1(t&&"oui-h-[calc(100vh-100px)]"),children:[jsx(H,{order:{symbol:o.symbol,order_quantity:o.position_qty.toString(),order_price:o.average_open_price.toString()},baseDP:m("base_dp"),quoteDP:m("quote_dp"),classNames:{root:cn$1("oui-mb-6 oui-gap-3 oui-px-5"),container:"oui-gap-x-[30px]"}}),jsx(ln,{position:o,orders:r,onCancelOrder:i,onCancelAllTPSLOrders:l,editTPSLOrder:n,addTPSLOrder:a}),jsx(an,{position:o,orders:s,onCancelOrder:i,onCancelAllTPSLOrders:l,editTPSLOrder:n,addTPSLOrder:a})]})})},ln=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:s}=useScreen();return jsxs(Box,{className:"oui-mt-6",children:[jsxs(Box,{className:cn$1("oui-flex oui-items-center oui-justify-between oui-px-5"),children:[jsx(zr,{positionType:PositionType.FULL,open:t,onOpenChange:o}),r&&r.length===0&&jsx(Flex,{gap:2,children:jsx(Qr,{positionType:PositionType.FULL,position:e.position,addTPSLOrder:e.addTPSLOrder})})]}),jsx(Box,{className:cn$1("oui-overflow-hidden oui-transition-[height] oui-duration-150",t?"oui-h-auto":"oui-h-0 oui-pb-4"),children:s?jsx(St,{orders:r,editTPSLOrder:i=>e.editTPSLOrder(i,PositionType.FULL),canCancelOrder:e.onCancelOrder}):jsx(bt,{orders:r,editTPSLOrder:i=>{e.editTPSLOrder(i,PositionType.FULL);},onCancelOrder:e.onCancelOrder})})]})},an=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:s}=useScreen();return jsxs(Box,{className:"oui-pt-6",children:[jsxs(Box,{className:cn$1("oui-flex oui-items-center oui-justify-between","oui-px-5",s?"oui-flex-col oui-items-start oui-justify-start oui-gap-[11px]":"oui-flex-row oui-items-center oui-justify-between"),children:[jsx(zr,{positionType:PositionType.PARTIAL,open:t,onOpenChange:o}),jsxs(Flex,{gap:2,children:[jsx(Qr,{positionType:PositionType.PARTIAL,position:e.position,addTPSLOrder:e.addTPSLOrder}),r&&r.length>0&&jsx(dn,{canCancelAll:r&&r.length>0,onCancelAllTPSLOrders:e.onCancelAllTPSLOrders})]})]}),jsx(Box,{className:cn$1("oui-overflow-hidden oui-transition-[height] oui-duration-150",t?"oui-h-auto":"oui-h-0 oui-pb-4"),children:s?jsx(St,{orders:r,editTPSLOrder:i=>e.editTPSLOrder(i,PositionType.PARTIAL),canCancelOrder:e.onCancelOrder}):jsx(bt,{className:"oui-h-[300px]",orders:r,editTPSLOrder:i=>{e.editTPSLOrder(i,PositionType.PARTIAL);},onCancelOrder:e.onCancelOrder})})]})},zr=e=>{let{t}=useTranslation();return jsxs(Flex,{gap:1,itemAlign:"center",justify:"start",className:"oui-text-2xs",children:[jsxs(Flex,{itemAlign:"center",justify:"start",gap:1,className:"oui-cursor-pointer",onClick:()=>e.onOpenChange(!e.open),children:[jsx(ChevronDownIcon,{size:12,color:"white",className:cn$1("oui-cursor-pointer oui-transition-transform",e.open&&"oui-rotate-180")}),e.positionType===PositionType.FULL?jsx(Text,{children:t("tpsl.positionType.full")}):jsx(Text,{children:t("tpsl.positionType.partial")})]}),jsx(Tooltip,{className:"oui-w-[280px] oui-p-3",content:e.positionType===PositionType.FULL?t("tpsl.positionType.full.tips"):t("tpsl.positionType.partial.tips"),children:jsx(ExclamationFillIcon,{className:"oui-cursor-pointer oui-text-base-contrast-54",size:12})})]})},Qr=e=>{let{t}=useTranslation();return jsx(ThrottledButton,{variant:"outlined",size:"sm",color:"gray",className:"oui-h-6 oui-w-[94px] oui-text-2xs",onClick:()=>{e.addTPSLOrder(e.positionType);},children:t("tpsl.add")})},dn=e=>{let[t,o]=useState(false),{t:r}=useTranslation();return jsx(ThrottledButton,{loading:t,variant:"outlined",disabled:!e.canCancelAll,size:"sm",color:"gray",className:"oui-h-6 oui-w-[94px] oui-text-2xs disabled:oui-border-base-contrast-16 disabled:oui-bg-transparent disabled:oui-text-base-contrast-20",onClick:()=>{o(true),e.onCancelAllTPSLOrders().then(()=>{},s=>{toast.error(s.message);}).finally(()=>{o(false);});},children:r("tpsl.cancelAll")})};var Kr=e=>{let t=Ir(e);return jsx(hr,{symbol:e.position.symbol,position:e.position,children:jsx(Vr,{...t})})},cn="TPSLDetailDialogId ",mn="TPSLDetailSheetId";registerSimpleDialog(cn,Kr,{classNames:{content:"oui-w-[420px] lg:oui-pt-4 lg:oui-pb-2 !oui-px-0",body:"lg:oui-py-0"}});registerSimpleSheet(mn,Kr,{classNames:{content:"!oui-p-0"}});var ht=e=>{let {type:t,triggerPrice:o,symbol:r}=e,s=useSymbolsInfo(),[{rows:i},l]=usePositionStream(r),n=i?.[0];useRef(AlgoOrderRootType.TP_SL);let [m]=useLocalStorage("orderly_order_confirm",true),{t:f}=useTranslation(),[u,{submit:c,deleteOrder:g,setValue:p,setValues:y,validate:d,errors:_,isCreateMutating:h,isUpdateMutating:O}]=useTPSLOrder({symbol:r,position_qty:n?.position_qty,average_open_price:n?.average_open_price},{defaultOrder:void 0,positionType:PositionType.PARTIAL,tpslEnable:{tp_enable:t==="tp",sl_enable:t==="sl"},isEditing:false}),w=k=>{p("quantity",k);},ie=(k,N)=>{p(k,N);},Se=(k,N)=>{p(k,N);},se=useMemo(()=>Math.abs(Number(n.position_qty)),[n.position_qty]);useEffect(()=>{se&&(p("quantity",se),p(t==="tp"?"tp_trigger_price":"sl_trigger_price",o??""));},[t,o,se]);let et=async()=>{try{if(await d())return m?modal.confirm({title:f("tpsl.confirmOrder"),onOk:async()=>{try{let N=await c({accountId:n.account_id});return N.success?N:(N.message&&toast.error(N.message),!1)}catch(N){return N?.message&&toast.error(N.message),!1}},classNames:{body:"!oui-pb-0"},content:jsx(Ne,{isPositionTPSL:!1,isEditing:!1,symbol:r,qty:Number(u.quantity),maxQty:se,tpPrice:Number(u.tp_trigger_price),slPrice:Number(u.sl_trigger_price),side:u.side,orderInfo:u,quoteDP:s[r]("quote_dp"),baseDP:s[r]("base_dp")})}).then(()=>!0,()=>Promise.reject(!1)):c({accountId:n.account_id}).then(()=>!0).catch(N=>{throw N?.message&&toast.error(N.message),!1})}catch(k){return Promise.reject(k)}};return {symbolInfo:s[r],maxQty:se,setQuantity:w,orderQuantity:u.quantity,isPosition:false,TPSL_OrderEntity:u,setOrderValue:p,setPnL:Se,setOrderPrice:ie,onSubmit:et,errors:_,status:{isCreateMutating:h,isUpdateMutating:O},position:n,setValues:y,type:t,triggerPrice:o}};var Nt=e=>{let{type:t,triggerPrice:o,errors:r,TPSL_OrderEntity:s}=e,{t:i}=useTranslation(),{getErrorMsg:l}=useOrderEntryFormErrorMsg(r),n=jsxs(Flex,{width:"100%",itemAlign:"center",gap:3,mt:4,children:[jsx(Button,{color:"gray",onClick:()=>{e.onComplete?.(),e.close?.();},fullWidth:true,className:"oui-text-sm",size:"md",children:i("common.cancel")},"secondary"),jsx(Button,{onClick:()=>{e.onSubmit().then(()=>{e.onComplete?.(),e.close?.();});},fullWidth:true,className:"oui-text-sm",size:"md",children:i("common.confirm")},"primary")]}),a=()=>{let f=l("tp_trigger_price"),u=l("sl_trigger_price"),c="";return f&&t==="tp"&&(c=f),u&&t==="sl"&&(c=u),c?jsxs(Flex,{justify:"start",itemAlign:"start",gap:2,className:"oui-mt-2 oui-w-full",children:[jsx("div",{className:"oui-relative oui-top-[7px] oui-size-1 oui-rounded-full oui-bg-danger"}),jsx(Text,{className:"oui-text-danger",children:c})]}):null},m=()=>{let{tp_pnl:f,sl_pnl:u}=s;return t==="sl"?jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:i("tpsl.totalEstSlPnl")}),u?jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-ml-1 oui-text-base-contrast-36",children:"USDC"}),coloring:true,visible:true,size:"2xs",dp:2,children:Number(u)}):jsx(Text,{size:"2xs",children:"-- USDC"})]}):jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:i("tpsl.totalEstTpPnl")}),jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-text-base-contrast-36 oui-ml-1",children:"USDC"}),rule:"price",coloring:true,visible:true,size:"2xs",dp:2,children:f?Number(f):"--"})]})};return jsxs(Box,{className:"oui-w-full oui-px-0.5",children:[jsx(Ue,{maxQty:e.maxQty,quantity:Number(e.orderQuantity??e.maxQty),baseTick:e.symbolInfo("base_tick"),dp:e.symbolInfo("base_dp"),quote:e.symbolInfo("base"),isEditing:false,errorMsg:l("quantity"),onQuantityChange:e.setQuantity}),jsxs(Flex,{direction:"column",itemAlign:"start",className:cn$1("oui-mt-4 oui-w-full oui-gap-1 oui-text-xs oui-text-base-contrast-36"),children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"xs",children:i("tpsl.advanced.triggerPrice")}),jsx(Text.numeral,{className:"oui-text-base-contrast",suffix:jsx(Text,{className:"oui-ml-1 oui-text-xs oui-text-base-contrast-36",children:"USDC"}),rule:"price",size:"xs",dp:e.symbolInfo("quote_dp"),children:o?Number(o):"--"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"xs",children:i("tpsl.advanced.orderPrice")}),jsx(Text,{className:"oui-text-base-contrast",size:"xs",children:i("tpsl.advanced.market")})]}),m()]}),a(),jsx(Divider,{className:"oui-my-3 oui-w-full"}),jsx(Flex,{itemAlign:"center",onClick:()=>{e.close?.(),e.showAdvancedTPSLDialog?.({qty:Number(s.quantity)});},className:"oui-pb-4",children:jsx(Text,{color:"primary",className:"oui-cursor-pointer oui-text-sm",children:i("tpsl.advancedSetting")})}),n]})};var Ct=e=>{let{close:t,onComplete:o,showAdvancedTPSLDialog:r}=e,s=ht(e);return jsx(Nt,{...s,close:t,onComplete:o,showAdvancedTPSLDialog:r})},Gr="TPSLSimpleSheetId",jr="TPSLSimpleDialogId";registerSimpleSheet(Gr,Ct,{classNames:{}});registerSimpleDialog(jr,Ct,{classNames:{content:"oui-w-[420px]"}});function Un(e){let t=e.child_orders[0],o=t.algo_type===AlgoOrderRootType.TP_SL?PositionType.PARTIAL:PositionType.FULL,r=t.child_orders.find(l=>l.algo_type===AlgoOrderType.TAKE_PROFIT&&l.trigger_price),s=t.child_orders.find(l=>l.algo_type===AlgoOrderType.STOP_LOSS&&l.trigger_price),i={};return r&&(i.tp_trigger_price=r.trigger_price?.toString(),i.tp_order_type=typeof r.type=="string"?r.type.replace("_ORDER",""):void 0,i.tp_order_type===OrderType.LIMIT&&(i.tp_order_price=r.price?.toString())),s&&(i.sl_trigger_price=s.trigger_price?.toString(),i.sl_order_type=typeof s.type=="string"?s.type.replace("_ORDER",""):void 0,i.sl_order_type===OrderType.LIMIT&&(i.sl_order_price=s.price?.toString())),{baseInfo:{symbol:e.symbol,order_type:e.type,side:e.side,order_price:e.price,order_quantity:e.quantity,position_type:o,tp_enable:!!r?.trigger_price,sl_enable:!!s?.trigger_price},tpslPriceInfo:i,tpInfo:{orderId:r?.algo_order_id},slInfo:{orderId:s?.algo_order_id}}}function Ye(e,t){if(t==null)return true;if(isNaN(Number(t)))return false;let o=new Decimal(Number(e));return !new Decimal(Number(t)).eq(o)}var Yr=e=>{if(!e.order)throw new SDKError("order is required for editBracketOrder");let{baseInfo:t,tpslPriceInfo:o,tpInfo:r,slInfo:s}=Un(e.order),[i,{isMutating:l}]=useMutation("/v1/algo/order","PUT"),{formattedOrder:n,setValue:a,setValues:m,metaState:f,symbolInfo:u,helper:c}=useOrderEntry(e.order.symbol,{initialOrder:t}),g=e.order.symbol,p=useMemo(()=>{let d=false,{tp_order_price:_,sl_order_price:h,tp_trigger_price:O,sl_trigger_price:w}=n;return o.tp_trigger_price&&(d=d||Ye(o.tp_trigger_price,O??0)),o.tp_order_price&&(d=d||Ye(o.tp_order_price,_??0)),o.sl_trigger_price&&(d=d||Ye(o.sl_trigger_price,w??0)),o.sl_order_price&&(d=d||Ye(o.sl_order_price,h??0)),d},[o,n.tp_order_price,n.sl_order_price,n.tp_trigger_price,n.sl_trigger_price]);return useEffect(()=>{m({...o});},[e.order,m]),{symbol:g,symbolInfo:u,formattedOrder:n,setValue:a,setValues:m,metaState:f,onSubmit:async()=>c.validate().then(()=>{let d={order_id:r.orderId,algo_type:AlgoOrderType.TAKE_PROFIT,trigger_price:n.tp_trigger_price,reduce_only:true};n.tp_order_type===OrderType.LIMIT&&(d.price=n.tp_order_price);let _={order_id:s.orderId,algo_type:AlgoOrderType.STOP_LOSS,trigger_price:n.sl_trigger_price,reduce_only:true};n.sl_order_type===OrderType.LIMIT&&(_.price=n.sl_order_price);let h=[];return r.orderId&&h.push(d),s.orderId&&h.push(_),i({order_id:e.order.algo_order_id,child_orders:[{order_id:e.order.child_orders[0].algo_order_id,child_orders:h}]})}),isMutating:l,isPriceChanged:p}};var to=e=>{let{t}=useTranslation(),{errors:o,validated:r}=e.metaState,{isMobile:s}=useScreen(),{formattedOrder:i,setValue:l,symbol:n,symbolInfo:a,setValues:m}=e,[f,u]=useState({enable:true,order_type:i.tp_order_type??OrderType.MARKET,order_price:i.tp_order_price??"",trigger_price:i.tp_trigger_price??"",PnL:i.tp_pnl??"",Offset:i.tp_offset??"","Offset%":i.tp_offset_percentage??"",ROI:i.tp_ROI??""}),[c,g]=useState({enable:true,order_type:i.sl_order_type??OrderType.MARKET,order_price:i.sl_order_price??"",trigger_price:i.sl_trigger_price??"",PnL:i.sl_pnl??"",Offset:i.sl_offset??"","Offset%":i.sl_offset_percentage??"",ROI:i.sl_ROI??""});return useEffect(()=>{u(p=>({...p,enable:i.tp_enable??true,order_type:i.tp_order_type??OrderType.MARKET,order_price:i.tp_order_price??"",trigger_price:i.tp_trigger_price??"",PnL:i.tp_pnl??"",Offset:i.tp_offset??"","Offset%":i.tp_offset_percentage??"",ROI:i.tp_ROI??""}));},[i]),useEffect(()=>{g(p=>({...p,enable:i.sl_enable??true,order_type:i.sl_order_type??OrderType.MARKET,order_price:i.sl_order_price??"",trigger_price:i.sl_trigger_price??"",PnL:i.sl_pnl??"",Offset:i.sl_offset??"","Offset%":i.sl_offset_percentage??"",ROI:i.sl_ROI??""}));},[i]),jsxs("div",{children:[jsxs(ScrollArea,{className:cn$1("oui-flex-1",s&&"oui-h-[calc(100vh-200px)]"),children:[jsx("div",{className:"",children:jsx(H,{order:{symbol:n,order_quantity:i.order_quantity,order_price:i.order_price},baseDP:a.base_dp,quoteDP:a.quote_dp})}),jsx(Divider,{className:"oui-my-3"}),jsxs("div",{className:"",children:[jsxs("div",{className:"oui-py-3",children:[jsx(Z,{value:i.position_type??PositionType.PARTIAL,disableSelector:true,onChange:(p,y)=>{if(y===PositionType.FULL){m({position_type:PositionType.FULL,tp_order_type:OrderType.MARKET,tp_order_price:void 0,sl_order_type:OrderType.MARKET,sl_order_price:void 0});return}l("position_type",y);}}),i.position_type===PositionType.FULL&&jsxs(Flex,{justify:"start",itemAlign:"start",gap:2,className:"oui-mt-3 oui-w-full",children:[jsx("div",{className:"oui-relative oui-top-[7px] oui-size-1 oui-rounded-full oui-bg-[#D25f00]"}),jsx(Text,{className:"oui-text-2xs oui-text-[#D25f00]",children:t("tpsl.positionType.full.tips.market")})]})]}),jsxs(Flex,{direction:"column",gap:6,children:[i.tp_enable&&jsx(G,{disableEnableCheckbox:true,disableOrderTypeSelector:true,rootOrderPrice:i.order_price,symbol:a.symbol,type:"tp",values:f,errors:r?o:null,quote_dp:a.quote_dp,hideOrderPrice:i.position_type===PositionType.FULL,onChange:(p,y)=>{l(p,y);},positionType:i.position_type??PositionType.PARTIAL}),i.sl_enable&&i.tp_enable&&jsx(Divider,{className:"oui-w-full"}),i.sl_enable&&jsx(G,{disableEnableCheckbox:true,disableOrderTypeSelector:true,rootOrderPrice:i.order_price,symbol:a.symbol,type:"sl",values:c,hideOrderPrice:i.position_type===PositionType.FULL,errors:r?o:null,quote_dp:a.quote_dp,positionType:i.position_type??PositionType.PARTIAL,onChange:(p,y)=>{l(p,y);}})]}),jsx(ue,{tp_pnl:i.tp_pnl,sl_pnl:i.sl_pnl,className:"oui-mt-6"})]})]}),jsx(Flex,{itemAlign:"center",gap:3,mt:5,width:"100%",justify:"center",children:jsx(ThrottledButton,{className:"oui-w-[184px]","data-testid":"tpsl-confirm",disabled:!e.isPriceChanged,loading:e.isMutating,onClick:()=>{e.onSubmit().then(()=>{e.onClose?.();}).catch(p=>{});},children:t("common.confirm")})})]})};var ro=e=>{let t=Yr({order:e.order});return jsx(to,{...t,onClose:e.close})},Hn="EditBracketOrderSheetId",Zn="EditBracketOrderDialogId";registerSimpleSheet(Hn,ro);registerSimpleDialog(Zn,ro,{classNames:{content:"oui-w-[420px]"}});
|
|
12
|
+
var H=e=>{let{t}=useTranslation(),{order:o,symbolLeverage:r}=e,{symbol:s}=o,i=useMarkPrice(s),n=useIndexPrice(s),a=useLeverageBySymbol(r?void 0:s),l=r||a;return jsxs(Flex,{direction:"column",itemAlign:"start",className:cn$1("oui-w-full oui-gap-3 oui-font-semibold ",e.classNames?.root),children:[jsxs(Flex,{itemAlign:"center",className:cn$1("oui-gap-2 ",e.classNames?.symbol),children:[jsxs(Flex,{gap:1,itemAlign:"center",children:[jsx(TokenIcon,{symbol:s,className:"oui-size-5"}),jsx(Text.formatted,{className:"oui-whitespace-nowrap oui-break-normal",rule:"symbol",formatString:"base-type",size:"sm",weight:"semibold",intensity:98,children:s})]}),jsxs(Text,{size:"2xs",className:"oui-h-[18px] oui-rounded oui-bg-base-7 oui-px-2 oui-font-semibold oui-text-base-contrast-36",children:[l,"x"]})]}),jsxs(Grid,{cols:2,gapX:2,gapY:1,className:cn$1("oui-w-full oui-gap-x-2 ",e.classNames?.container),children:[jsxs(Flex,{justify:"between",className:" oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("tpsl.advanced.quantity")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.baseDP??2,children:Number(o.order_quantity)})]}),jsxs(Flex,{justify:"between",className:"oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("tpsl.advanced.lastPrice")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.quoteDP??2,children:n?.data})]}),jsxs(Flex,{justify:"between",className:"oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("tpsl.advanced.orderPrice")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.quoteDP??2,children:Number(o.order_price)})]}),jsxs(Flex,{justify:"between",className:"oui-text-base-contrast-36",children:[jsx(Text,{size:"2xs",children:t("common.markPrice")}),jsx(Text.numeral,{rule:"price",className:"oui-text-base-contrast-80",size:"2xs",dp:e.quoteDP??2,children:i?.data})]})]})]})};var ue=e=>{let{t}=useTranslation(),{tp_pnl:o,sl_pnl:r}=e,s=useMemo(()=>{let i=jsx(Text,{className:"oui-text-base-contrast-36",children:"-- x"});if(o===void 0||r===void 0||checkIsNaN(o)||checkIsNaN(r))return i;let n=new Decimal(o),a=new Decimal(r);if(a.isZero()||n.isZero())return i;let l=n.div(a).abs().toNumber().toFixed(2);return jsxs(Flex,{gap:1,itemAlign:"center",className:"oui-text-base-contrast-80",children:[jsx(Text,{children:l}),jsx(Text,{className:"oui-text-base-contrast-36",children:"x"})]})},[o,r]);return jsxs(Flex,{direction:"column",itemAlign:"start",className:cn$1("oui-w-full oui-gap-1 oui-text-2xs oui-text-base-contrast-36",e.className),children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:t("tpsl.totalEstTpPnl")}),jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-text-base-contrast-36 oui-ml-1",children:"USDC"}),rule:"price",coloring:true,visible:true,size:"2xs",dp:2,children:o?Number(o):"--"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:t("tpsl.totalEstSlPnl")}),r?jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-text-base-contrast-36 oui-ml-1",children:"USDC"}),coloring:true,visible:true,size:"2xs",dp:2,children:Number(r)}):jsx(Text,{size:"2xs",children:"-- USDC"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:t("tpsl.riskRewardRatio")}),jsx(Text,{className:"oui-text-base-contrast-80",size:"2xs",children:s})]})]})};var ot=e=>({disableOrderTypeSelector:e.disableOrderTypeSelector,values:e.values,onChange:e.onChange,type:e.type,quote_dp:e.quote_dp,positionType:e.positionType,errors:e.errors,hideOrderPrice:e.hideOrderPrice,rootOrderPrice:e.rootOrderPrice,symbol:e.symbol,disableEnableCheckbox:e.disableEnableCheckbox,symbolLeverage:e.symbolLeverage});var Mt=e=>{let{type:t,values:o}=e,[r,s]=useLocalStorage("TP/SL_Mode","Offset%"),[i,n]=useState(true),{t:a}=useTranslation(),l=useMemo(()=>{switch(r){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[r]),g=useMemo(()=>o[r],[o,r]),f=useMemo(()=>[{label:a("tpsl.pnl"),value:"PnL",testId:"PnL_menu_item"},{label:a("tpsl.offset"),value:"Offset",testId:"Offset_mneu_item"},{label:`${a("tpsl.offset")}%`,value:"Offset%",testId:"Offset%_menu_item"}],[a]),c=useRef(""),d=u=>{e.onChange(l,u);},m=u=>{let{dp:y=2}=u;return {onRenderBefore:(p,P)=>(p=`${p}`,i&&t==="SL"&&r==="PnL"&&(p=p.startsWith("-")?p:"-"+p),p===""||p==="-"?"":r==="Offset%"?`${new Decimal(p.replace(new RegExp(c.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${c.current}`:(r==="Offset"&&(p=todpIfNeed(p,y)),`${p}`)),onSendBefore:p=>{if(/^\-?0{2,}$/.test(p))return "0";if(r==="Offset%"){if(p!==""){p=todpIfNeed(p,2);let P=p.match(/\.0{0,2}$/);P?c.current=P[0]:c.current="",p=new Decimal(p).div(100).toString(),p=`${p}${c.current}`;}}else r==="PnL"&&t==="SL"&&i?p=p.startsWith("-")?p:"-"+p:p=todpIfNeed(p,y);return p===""||p==="-"?"":p}}};return {mode:r,modes:f,type:e.type,formatter:m,onModeChange:u=>{s(u);},value:g,pnl:o.PnL,onValueChange:d,quote_dp:e.quote_dp,setFocus:n}};var Vt=e=>{let{mode:t,modes:o,onModeChange:r,onValueChange:s,quote:i,quote_dp:n,value:a,pnl:l}=e,{t:g}=useTranslation(),[f,c]=useState(t),[d,m]=useState(t==="Offset%"?"%":i),u=useMemo(()=>{let y=Number(l);if(isNaN(y)||y===0)return "";if(y>0)return "oui-text-trade-profit";if(y<0)return "oui-text-trade-loss"},[l]);return useEffect(()=>{let y=o.find(p=>p.value===t)?.label;c(y),m(t==="Offset%"?"%":i);},[t,o]),jsx(Input,{prefix:f,size:{initial:"lg",lg:"md"},placeholder:d,align:"right",value:a,"data-testid":e.testId,autoComplete:"off",onValueChange:s,formatters:[e.formatter({dp:n,mode:t}),inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],classNames:{input:cn$1("oui-text-2xs",u),prefix:"oui-text-base-contrast-54 oui-text-2xs",root:"oui-outline-line-12 focus-within:oui-outline-primary-light"},onFocus:()=>{m(""),e.setFocus(true);},onBlur:()=>{m(t==="Offset%"?"%":i),e.setFocus(false);},suffix:jsxs(Fragment,{children:[t==="Offset%"&&!!a&&jsx(Text,{size:"2xs",color:"inherit",className:cn$1("oui-ml-[2px]",u),children:"%"}),jsx(No,{mode:t,modes:o,onModeChange:y=>r(y.value)})]})})},No=e=>jsx(SimpleDropdownMenu,{currentValue:e.mode,menu:e.modes,align:"end",size:"xs",className:"oui-min-w-[80px]",onSelect:t=>e.onModeChange(t),children:jsx("button",{className:"oui-p-2",children:jsx(CaretDownIcon,{size:12,color:"white"})})});var zt=e=>{let{testId:t,quote:o,...r}=e,s=Mt(r);return jsx(Vt,{...s,testId:t,quote:o})};var Wt=e=>{let{t}=useTranslation(),o=[{label:t("orderEntry.orderType.limitOrder"),value:OrderType.LIMIT},{label:t("orderEntry.orderType.marketOrder"),value:OrderType.MARKET}];return jsx(Select.options,{value:e.type,options:o,disabled:e.disabled,onValueChange:e.onChange,size:"xs",classNames:{trigger:"oui-bg-transparent oui-w-auto oui-outline-line-1 oui-input-root oui-bg-base-6 oui-h-10 lg:oui-h-8 oui-outline-line-12 "},valueFormatter:(r,s)=>{let i={[OrderType.LIMIT]:t("orderEntry.orderType.limit"),[OrderType.MARKET]:t("common.marketPrice")}[r];return jsx(Text,{size:"2xs",children:i})}})};var nt=e=>{let[t,o]=useState("USDC"),{t:r}=useTranslation();return jsx(Input.tooltip,{"data-testid":`oui-testid-tpsl-popUp-${e.type.toLowerCase()}-input`,prefix:e.label??r("common.markPrice"),size:{initial:"lg",lg:"md"},tooltip:e.error,placeholder:t,disabled:e.disabled,align:"right",autoComplete:"off",value:e.value,color:e.error?"danger":void 0,classNames:{input:"oui-text-2xs placeholder:oui-text-2xs",prefix:"oui-text-base-contrast-54 oui-text-2xs",root:"oui-w-full"},onValueChange:e.onValueChange,onFocus:()=>{o("");},onBlur:()=>{o("USDC");},formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(e.quote_dp),inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter]})};var lt=e=>{let{t}=useTranslation(),{getErrorMsg:o}=useOrderEntryFormErrorMsg(e.errors),{values:r,positionType:s}=e,i=useLeverageBySymbol(e.symbolLeverage?void 0:e.symbol),n=e.symbolLeverage||i,a=useMemo(()=>{if(!n||isNaN(Number(n)))return null;let l=null;if(!e.rootOrderPrice||!r.trigger_price&&!r.order_price)return null;let g=new Decimal(0);if(r.order_type===OrderType.MARKET){if(!r.trigger_price)return null;g=new Decimal(r.trigger_price);}else if(r.order_type===OrderType.LIMIT){if(!r.order_price)return null;g=new Decimal(r.order_price);}let f=new Decimal(e.rootOrderPrice);return l=g.minus(f).div(f).mul(n).abs().mul(100).mul(e.type==="tp"?1:-1).toNumber(),l},[r,e.rootOrderPrice,n,e.type]);return jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",className:"oui-w-full",children:[jsxs(Flex,{className:"oui-w-full",itemAlign:"center",justify:"start",children:[!e.disableEnableCheckbox&&jsx(Checkbox,{"data-testid":`oui-testid-orderEntry-${e.type}-enable-checkBox`,id:`enable_${e.type}`,color:"white",checked:r.enable,onCheckedChange:l=>{e.onChange(`${e.type}_enable`,!!l);}}),jsx("label",{htmlFor:`enable_${e.type}`,className:cn$1("oui-cursor-pointer oui-text-sm",e.disableEnableCheckbox?"oui-ml-0 oui-text-base-contrast":"oui-ml-1 oui-text-base-contrast-36"),children:e.type==="tp"?t("tpsl.advanced.TP.label"):t("tpsl.advanced.SL.label")})]}),jsxs(Flex,{direction:"column",gap:2,itemAlign:"start",className:cn$1("oui-w-full oui-pt-2",r.enable?"":"oui-hidden"),children:[jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-w-full oui-gap-0.5",children:[jsx(Text,{className:"oui-text-2xs oui-text-base-contrast-54",children:t("tpsl.advanced.triggerPrice")}),jsxs(Grid,{cols:2,gap:2,className:"oui-w-full oui-px-0.5",children:[jsx(nt,{type:`${e.type} price`,value:r.trigger_price,error:o(`${e.type}_trigger_price`),onValueChange:l=>{e.onChange(`${e.type}_trigger_price`,l);},quote_dp:e.quote_dp}),jsx(zt,{type:e.type==="tp"?"TP":"SL",onChange:(l,g)=>{e.onChange(l,g);},quote:"USDC",quote_dp:2,values:r})]})]}),jsxs(Flex,{direction:"column",className:cn$1("oui-w-full oui-gap-0.5",e.hideOrderPrice?"oui-hidden":""),itemAlign:"start",children:[jsx(Text,{className:"oui-text-2xs oui-text-base-contrast-54",children:t("tpsl.advanced.orderPrice")}),jsxs(Grid,{cols:2,gap:2,className:"oui-w-full oui-px-0.5",children:[jsx(nt,{disabled:s===PositionType.FULL||r.order_type===OrderType.MARKET,type:"order price",label:r.order_type===OrderType.LIMIT?t("tpsl.advanced.limit"):t("tpsl.advanced.market"),value:r.order_price,error:o(`${e.type}_order_price`),onValueChange:l=>{e.onChange(`${e.type}_order_price`,l);},quote_dp:e.quote_dp}),jsx(Wt,{disabled:s===PositionType.FULL||e.disableOrderTypeSelector,type:r.order_type,onChange:l=>{e.onChange(`${e.type}_order_type`,l);}})]})]})]}),jsx(Wo,{price:r.order_type===OrderType.MARKET?r.trigger_price:r.order_price,orderType:r.order_type,pnl:r.PnL,roi:a,dp:e.quote_dp,className:"oui-mt-1"})]})},Wo=e=>{let{t}=useTranslation(),{price:o,pnl:r,roi:s,dp:i,className:n,orderType:a}=e;return !s||!o||!r?null:jsx(Text,{className:cn$1("oui-text-2xs oui-text-base-contrast-36",n),children:jsx(Trans,{i18nKey:"tpsl.advanced.ROI",components:[jsx(Fragment$1,{children:jsx(Text.numeral,{className:"oui-px-1 oui-text-base-contrast",dp:i,suffix:jsx(Text,{className:"oui-pl-0.5",children:"USDC"}),children:o})},"price"),jsx(Fragment$1,{children:jsx(Text,{className:"oui-px-1 oui-text-base-contrast",children:a===OrderType.MARKET?t("common.market"):t("common.limit")})},"orderType"),jsx(Fragment$1,{children:jsx(Text.numeral,{coloring:true,className:"oui-whitespace-nowrap oui-px-1",dp:2,suffix:jsx(Text,{className:"oui-pl-0.5",children:"USDC"}),children:r})},"pnl"),jsx(Fragment$1,{children:jsx(Text.numeral,{coloring:true,className:"oui-whitespace-nowrap oui-px-1",dp:2,suffix:"%",children:s})},"roi")]})})};var $=e=>{let t=ot(e);return jsx(lt,{...t})};var jt=e=>({value:e.value,onChange:e.onChange,disableSelector:e.disableSelector});var Yo="position_type",Zt=e=>{let{t}=useTranslation(),o=[{label:t("tpsl.positionType.partial"),value:PositionType.PARTIAL},{label:t("tpsl.positionType.full"),value:PositionType.FULL}];return jsxs(Flex,{gap:1,itemAlign:"center",justify:"start",children:[jsx(Tooltip,{className:"oui-w-[280px] oui-p-3",content:e.value===PositionType.FULL?t("tpsl.positionType.full.tips"):t("tpsl.positionType.partial.tips"),children:jsx(ExclamationFillIcon,{className:"oui-cursor-pointer oui-text-base-contrast-54",size:12})}),e.disableSelector?e.value===PositionType.FULL?jsx(Text,{className:"oui-text-2xs oui-font-semibold oui-text-base-contrast-54",children:t("tpsl.positionType.full")}):jsx(Text,{className:"oui-text-2xs oui-font-semibold oui-text-base-contrast-54",children:t("tpsl.positionType.partial")}):jsx(Select.options,{value:e.value,options:o,onValueChange:r=>{e.onChange(Yo,r);},size:"xs",classNames:{trigger:" oui-bg-transparent oui-border-0 oui-w-auto oui-px-0"},contentProps:{className:" oui-bg-base-8 oui-border-0"}})]})};var Z=e=>{let t=jt(e);return jsx(Zt,{...t})};var Ue=memo(e=>{let{maxQty:t,base_dp:o,baseTick:r,quantity:s}=e,i=useRef(null),{t:n}=useTranslation(),[a,l]=useState(0),g=d=>{let m=d;Number(d)>t&&(m=t.toString()),r>0&&e.onQuantityChange?.(utils.formatNumber(m,r)??d);},f=d=>{l(d);let m=new Decimal(d).div(100).mul(t).toFixed(o,Decimal.ROUND_DOWN);g(m);};useEffect(()=>{let d=Math.min(Number(s||0),t),m=new Decimal(d).div(t).mul(100).toDecimalPlaces(2,Decimal.ROUND_DOWN).toNumber();l(m);},[s,t]);let c=e.quantity.toString().length>0?e.errorMsg:void 0;return jsxs(Fragment,{children:[jsx(Flex,{gap:2,children:jsx("div",{className:"oui-flex-1",children:jsx(Input.tooltip,{"data-testid":"oui-testid-tpsl-popUp-quantity-input",ref:i,prefix:n("common.quantity"),size:{initial:"md",lg:"sm"},align:"right",value:e.quantity,autoComplete:"off",classNames:{prefix:"oui-text-base-contrast-54",root:cn$1("oui-bg-base-5 oui-outline-line-12",c&&"oui-outline-danger")},tooltipProps:{content:{className:"oui-bg-base-6 oui-text-base-contrast-80"},arrow:{className:"oui-fill-base-6"}},tooltip:c,color:c?"danger":void 0,formatters:[inputFormatter.dpFormatter(e.base_dp),inputFormatter.numberFormatter,inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],onValueChange:d=>{e.onQuantityChange?.(d);let m=Number(d);if(m&&m>e.maxQty){let u=e.maxQty;e.onQuantityChange?.(u),i.current?.blur();}},onBlur:d=>g(d.target.value),suffix:jsx("span",{className:"oui-px-3 oui-text-2xs oui-text-base-contrast-54",children:e.base})})})}),jsx(Flex,{mt:2,itemAlign:"center",height:"15px",children:jsx(Slider,{min:0,max:100,markCount:5,showTip:true,value:[a],color:"primary",onValueChange:d=>{f(d[0]);}})}),jsxs(Flex,{justify:"between",children:[jsx(Text.numeral,{color:"primary",size:"2xs",suffix:"%",children:a}),jsxs(Flex,{itemAlign:"center",gap:1,children:[jsx("button",{className:"oui-leading-none",style:{lineHeight:0},onClick:()=>{e.onQuantityChange?.(e.maxQty);},children:jsx(Text,{color:"primary",size:"2xs",children:n("common.max")})}),jsx(Text.numeral,{rule:"price",size:"2xs",intensity:54,tick:e.baseTick,children:e.maxQty})]})]})]})});var Jt=e=>{let{TPSL_OrderEntity:t,symbolInfo:o,onCancel:r,onComplete:s,status:i,position:n,setValues:a,onClose:l,isEditing:g}=e,{errors:f,validated:c}=e.metaState,{t:d}=useTranslation(),{isMobile:m}=useScreen(),{getErrorMsg:u}=useOrderEntryFormErrorMsg(f),y=()=>t.position_type===PositionType.FULL?null:jsx(Box,{className:"oui-px-0.5",children:jsx(Ue,{maxQty:e.maxQty,quantity:e.orderQuantity??e.maxQty,baseTick:o("base_tick"),base_dp:o("base_dp"),onQuantityChange:e.setQuantity,base:o("base"),isEditing:e.isEditing,errorMsg:c?u("quantity"):void 0})});return jsxs("div",{id:"orderly-tp_sl-order-edit-content",children:[jsx(ScrollArea,{className:cn$1(m&&"oui-h-[calc(100vh-200px)]"),children:jsxs("div",{className:"oui-px-2",children:[jsx(H,{baseDP:o("base_dp"),quoteDP:o("quote_dp"),classNames:{root:"oui-mb-3",container:"oui-gap-x-[30px]"},order:{symbol:n.symbol,order_quantity:n.position_qty.toString(),order_price:n.average_open_price.toString()},symbolLeverage:n.leverage}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",gap:3,className:"oui-mb-3 oui-w-full",children:[!g&&jsx(Z,{disableSelector:true,value:t.position_type??PositionType.PARTIAL,onChange:(p,P)=>{e.setOrderValue(p,P);}}),t.position_type===PositionType.FULL&&jsx(Text,{className:"oui-text-2xs oui-text-warning",children:d("tpsl.positionType.full.tips.market")})]}),y(),jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",gap:6,className:"oui-mt-3 oui-w-full",children:[jsx($,{symbol:n.symbol,rootOrderPrice:n.average_open_price.toString(),type:"tp",values:{enable:t.tp_enable??true,trigger_price:t.tp_trigger_price?.toString()??void 0,PnL:t.tp_pnl?.toString()??void 0,Offset:t.tp_offset?.toString()??void 0,"Offset%":t.tp_offset_percentage?.toString()??void 0,order_price:t.tp_order_price?.toString()??void 0,order_type:t.tp_order_type??OrderType.MARKET},hideOrderPrice:t.position_type===PositionType.FULL,errors:c?f:null,disableOrderTypeSelector:g,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,onChange:(p,P)=>{e.setOrderValue(p,P);},symbolLeverage:n.leverage}),jsx($,{symbol:n.symbol,rootOrderPrice:n.average_open_price.toString(),type:"sl",values:{enable:t.sl_enable??true,trigger_price:t.sl_trigger_price?.toString()??void 0,PnL:t.sl_pnl?.toString()??void 0,Offset:t.sl_offset?.toString()??void 0,"Offset%":t.sl_offset_percentage?.toString()??void 0,order_price:t.sl_order_price?.toString()??void 0,order_type:t.sl_order_type??OrderType.MARKET},hideOrderPrice:t.position_type===PositionType.FULL,errors:c?f:null,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,disableOrderTypeSelector:g,onChange:(p,P)=>{e.setOrderValue(p,P);},symbolLeverage:n.leverage})]}),jsx(ue,{tp_pnl:t.tp_pnl,sl_pnl:t.sl_pnl,className:"oui-my-3"})]})}),jsxs(Grid,{px:2,cols:2,gap:3,mt:4,children:[jsx(Button,{size:"md",color:"secondary","data-testid":"tpsl-cancel",onClick:()=>{e.close?.();},children:d("common.cancel")}),jsx(ThrottledButton,{size:"md","data-testid":"tpsl-confirm",disabled:i.isCreateMutating,loading:i.isCreateMutating||i.isUpdateMutating,onClick:()=>{e.onSubmit().then(()=>{e.close?.(),s?.();}).catch(p=>{});},children:d("common.confirm")})]})]})};var hi=e=>{let{tpPrice:t,slPrice:o}=e,{t:r}=useTranslation();return t&&o?jsx(Badge,{size:"xs",color:"neutral",children:r("common.tpsl")}):t?jsx(Badge,{size:"xs",color:"neutral",children:r("tpsl.tp")}):o?jsx(Badge,{size:"xs",color:"neutral",children:r("tpsl.sl")}):null},Ae=e=>{let{symbol:t,tpPrice:o,slPrice:r,qty:s,maxQty:i,side:n,quoteDP:a,baseDP:l,isEditing:g,isPositionTPSL:f,orderInfo:c}=e,{t:d}=useTranslation(),[m,u]=useLocalStorage("orderly_order_confirm",true),y=()=>c.position_type===PositionType.FULL?jsx(Text,{children:d("tpsl.positionType.full")}):jsx(Text,{children:d("tpsl.positionType.partial")}),p=({price:A,isOrderPrice:O,isEnable:w,colorType:oe})=>w?!A&&O?jsx(Text,{className:"oui-text-base-contrast-36",children:d("common.market")}):jsx(Text.numeral,{unit:"USDC",rule:"price",className:cn$1("oui-text-base-contrast",oe==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:a,padding:false,children:A}):jsx(Text,{className:"oui-text-base-contrast-36",children:"-- USDC"}),P=f;return jsxs(Fragment,{children:[g&&jsx(Text,{as:"div",size:"2xs",intensity:80,className:"oui-mb-3",children:d("tpsl.agreement",{symbol:transSymbolformString(t)})}),jsxs(Flex,{pb:4,children:[jsx(Box,{grow:true,children:jsx(Text.formatted,{rule:"symbol",formatString:"base-type",size:"base",showIcon:true,as:"div",intensity:80,children:t})}),jsxs(Flex,{gap:1,children:[P&&jsx(Badge,{size:"xs",color:"primary",children:d("common.position")}),jsx(hi,{tpPrice:o,slPrice:r}),n===OrderSide.SELL?jsx(Badge,{size:"xs",color:"success",children:d("common.buy")}):jsx(Badge,{size:"xs",color:"danger",children:d("common.sell")})]})]}),jsx(Divider,{}),c.tp_trigger_price||c.sl_trigger_price?jsxs(Fragment,{children:[jsx(Divider,{className:"oui-my-4"}),jsxs("div",{className:textVariants({size:"sm",intensity:54,className:"oui-space-y-1 oui-w-full oui-flex oui-flex-col oui-gap-3"}),children:[jsx(Text,{className:"oui-text-base-contrast",children:y()}),jsxs(Flex,{justify:"between",children:[jsx(Text,{children:d("common.orderQty")}),jsx(Text.numeral,{rule:"price",dp:l,padding:false,className:"oui-text-base-contrast",children:c.quantity??"-"})]}),jsxs(Flex,{direction:"column",justify:"between",itemAlign:"start",gap:1,className:"oui-w-full",children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:d("tpsl.tpTriggerPrice")})," ",p({price:c.tp_trigger_price??"",isOrderPrice:false,isEnable:!!c.tp_trigger_price,colorType:"TP"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:d("tpsl.tpOrderPrice")}),p({price:c.tp_order_price??"",isOrderPrice:true,isEnable:!!c.tp_trigger_price,colorType:"TP"})]})]}),jsxs(Flex,{direction:"column",justify:"between",itemAlign:"start",gap:1,className:"oui-w-full",children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:d("tpsl.slTriggerPrice")}),p({price:c.sl_trigger_price??"",isOrderPrice:false,isEnable:!!c.sl_trigger_price,colorType:"SL"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:d("tpsl.slOrderPrice")}),p({price:c.sl_order_price??"",isOrderPrice:true,isEnable:!!c.sl_trigger_price,colorType:"SL"})]})]})]})]}):null,jsx(Box,{pt:2,children:jsxs(Flex,{gap:1,children:[jsx(Checkbox,{id:"disabledConfirm",color:"white",checked:!m,onCheckedChange:A=>{u(!A);}}),jsx("label",{htmlFor:"disabledConfirm",className:textVariants({size:"xs",intensity:54,className:"oui-ml-1"}),children:d("orderEntry.disableOrderConfirm")})]})})]})};var cr=e=>{let{symbol:t,order:o,isEditing:r,positionType:s,triggerPrice:i,type:n,withTriggerPrice:a}=e,{t:l}=useTranslation();if(r&&!o)throw new SDKError("order is required when isEditing is true");let g=useSymbolsInfo();useRef(AlgoOrderRootType.TP_SL);let [{rows:c}]=usePositionStream(),[d]=useLocalStorage("orderly_order_confirm",true),m=c.find(x=>x.symbol===t);if(!m)throw new SDKError("position not found");let [u,{submit:y,deleteOrder:p,setValue:P,setValues:A,validate:O,metaState:w,errors:oe,isCreateMutating:be,isUpdateMutating:ie}]=useTPSLOrder({symbol:t,position_qty:m?.position_qty??0,average_open_price:m?.average_open_price??0},{defaultOrder:o,positionType:i?PositionType.PARTIAL:s,tpslEnable:{tp_enable:a?n==="tp":true,sl_enable:a?n==="sl":true},isEditing:r}),et=x=>{P("quantity",x);},k=(x,L)=>{P(x,L);},N=(x,L)=>{P(x,L);},Ft=useMemo(()=>Math.abs(Number(m.position_qty)),[m.position_qty]);useMemo(()=>{let x=o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL?Ft:o?.quantity,L=0;if((Number(u.quantity)!==x||!r&&u.quantity)&&(L=1),o&&r){let{tp_trigger_price:tt,sl_trigger_price:W}=utils.findTPSLFromOrder(o),{tp_order_price:wt,sl_order_price:Dt}=utils.findTPSLOrderPriceFromOrder(o);tt!==Number(u.tp_trigger_price)&&typeof typeof u.tp_trigger_price<"u"&&(L=2),W!==Number(u.sl_trigger_price)&&typeof u.sl_trigger_price<"u"&&(L=3),typeof u.tp_order_price<"u"&&wt!==OrderType.MARKET&&wt!==Number(u.tp_order_price)&&(L=4),typeof u.sl_order_price<"u"&&Dt!==OrderType.MARKET&&Dt!==Number(u.sl_order_price)&&(L=5);}return L===1&&!u.tp_trigger_price&&!u.sl_trigger_price&&(L=-1),L},[u.tp_trigger_price,u.tp_order_price,u.sl_trigger_price,u.sl_order_price,u.quantity,o,r]);useEffect(()=>{a&&i&&(P(n==="tp"?"tp_trigger_price":"sl_trigger_price",i),e.qty&&P("quantity",e.qty));},[n,i,e.qty]);let io=()=>o?.algo_order_id&&o?.symbol?p(o?.algo_order_id,o?.symbol):Promise.reject("order id or symbol is invalid"),so=(x,L)=>{if(!d)return Promise.resolve(true);let tt=Math.abs(Number(m.position_qty));return `${x.tp_trigger_price??""}`.length===0&&`${x.sl_trigger_price??""}`.length===0?modal.confirm({title:l("orders.cancelOrder"),content:l("tpsl.cancelOrder.description"),onOk:()=>L.cancel()}).then(()=>true,()=>Promise.reject(false)):modal.confirm({title:l("tpsl.confirmOrder"),onOk:async()=>{try{let W=await L.submit({accountId:m.account_id});return W.success?W:(W.message&&toast.error(W.message),!1)}catch(W){return W?.message&&toast.error(W.message),false}},classNames:{body:"!oui-pb-0"},content:jsx(Ae,{isPositionTPSL:s===PositionType.FULL,isEditing:r,symbol:x.symbol,qty:Number(x.quantity),maxQty:tt,tpPrice:Number(x.tp_trigger_price),slPrice:Number(x.sl_trigger_price),side:x.side,orderInfo:x,quoteDP:g[t]("quote_dp")??2,baseDP:g[t]("base_dp")??2})}).then(()=>true,()=>Promise.reject(false))},no=async()=>{try{if(await O())return d?so(u,{position:m,submit:y,cancel:io}):y({accountId:m.account_id}).then(()=>!0).catch(L=>{throw L?.message&&toast.error(L.message),!1})}catch(x){return Promise.reject(x)}};return {isEditing:r,symbolInfo:g[t],maxQty:Ft,setQuantity:useMemoizedFn(et),orderQuantity:u.quantity,TPSL_OrderEntity:u,setOrderValue:P,setPnL:N,setOrderPrice:k,onSubmit:no,metaState:w,errors:oe,status:{isCreateMutating:be,isUpdateMutating:ie},position:m,setValues:A}};var Ne=e=>{let{onCancel:t,onComplete:o,close:r,...s}=e,i=cr(s);return jsx(Jt,{...i,onCancel:t,onComplete:o,close:r})},Ve="TPSLSheetId",fe="TPSLDialogId";registerSimpleSheet(Ve,Ne);registerSimpleDialog(fe,Ne,{classNames:{content:"oui-w-[420px]"}});var Ki=e=>{let{position:t,order:o,baseDP:r,quoteDP:s,buttonProps:i,isEditing:n}=e,[a]=useLocalStorage("orderly_order_confirm",true),{t:l}=useTranslation(),g=n?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0;return jsx(Box,{onClick:()=>{modal.show(fe,{order:o,symbol:t.symbol,baseDP:r,quoteDP:s,positionType:g?PositionType.FULL:PositionType.PARTIAL,isEditing:n});},className:"oui-cursor-pointer",children:e.children||jsx(Button,{variant:"outlined",size:"sm",color:"secondary",...i,children:e.label})})};var ji=e=>{let{position:t,order:o,symbolInfo:r,isEditing:s}=e,{resolve:i,hide:n,updateArgs:a}=useModal(),l=s?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0;return jsx(Fragment,{children:jsx(Ne,{...e,positionType:e.positionType??(l?PositionType.FULL:PositionType.PARTIAL),onCancel:()=>{n();}})})};var xr=e=>{let{t}=useTranslation(),{errors:o,validated:r}=e.metaState,{formattedOrder:s,setValue:i,symbolInfo:n,setValues:a}=e,[l,g]=useState({enable:true,order_type:s.tp_order_type??OrderType.MARKET,order_price:s.tp_order_price??"",trigger_price:s.tp_trigger_price??"",PnL:s.tp_pnl??"",Offset:s.tp_offset??"","Offset%":s.tp_offset_percentage??"",ROI:s.tp_ROI??""}),[f,c]=useState({enable:true,order_type:s.sl_order_type??OrderType.MARKET,order_price:s.sl_order_price??"",trigger_price:s.sl_trigger_price??"",PnL:s.sl_pnl??"",Offset:s.sl_offset??"","Offset%":s.sl_offset_percentage??"",ROI:s.sl_ROI??""});return useEffect(()=>{g(d=>({...d,enable:s.tp_enable??true,order_type:s.tp_order_type??OrderType.MARKET,order_price:s.tp_order_price??"",trigger_price:s.tp_trigger_price??"",PnL:s.tp_pnl??"",Offset:s.tp_offset??"","Offset%":s.tp_offset_percentage??"",ROI:s.tp_ROI??""}));},[s]),useEffect(()=>{c(d=>({...d,enable:s.sl_enable??true,order_type:s.sl_order_type??OrderType.MARKET,order_price:s.sl_order_price??"",trigger_price:s.sl_trigger_price??"",PnL:s.sl_pnl??"",Offset:s.sl_offset??"","Offset%":s.sl_offset_percentage??"",ROI:s.sl_ROI??""}));},[s]),jsxs("div",{className:"oui-rounded-[16px] oui-py-3 oui-flex oui-flex-col oui-justify-between oui-h-full",children:[jsx("div",{className:"oui-px-3",children:jsxs(Flex,{className:"oui-mb-5 oui-cursor-pointer oui-text-base oui-text-base-contrast-80",gap:1,itemAlign:"center",onClick:e.onClose,children:[jsx(Ji,{className:" oui-text-base-contrast-80"}),jsx(Text,{children:t("tpsl.advanced.title")})]})}),jsxs(ScrollArea,{className:"oui-flex-1",children:[jsx("div",{className:"oui-px-3",children:jsx(H,{order:s,baseDP:n.base_dp,quoteDP:n.quote_dp,symbolLeverage:e.symbolLeverage})}),jsx(Divider,{className:"oui-my-3"}),jsxs("div",{className:"oui-px-3",children:[jsxs(Flex,{className:"oui-gap-[6px]",children:[jsx(Button,{onClick:()=>{i("side",OrderSide.BUY);},size:"sm",fullWidth:true,"data-type":OrderSide.BUY,className:cn$1(s.side===OrderSide.BUY?"oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-buy-button",children:t("common.buy")}),jsx(Button,{onClick:()=>{i("side",OrderSide.SELL);},"data-type":OrderSide.SELL,fullWidth:true,size:"sm",className:cn$1(s.side===OrderSide.SELL?"oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80":"oui-bg-base-7 oui-text-base-contrast-36 hover:oui-bg-base-6 active:oui-bg-base-6"),"data-testid":"oui-testid-orderEntry-side-sell-button",children:t("common.sell")})]}),jsxs("div",{className:"oui-py-3",children:[jsx(Z,{value:s.position_type??PositionType.PARTIAL,onChange:(d,m)=>{if(m===PositionType.FULL){a({position_type:PositionType.FULL,tp_order_type:OrderType.MARKET,tp_order_price:void 0,sl_order_type:OrderType.MARKET,sl_order_price:void 0});return}i("position_type",m);}}),s.position_type===PositionType.FULL&&jsxs(Flex,{justify:"start",itemAlign:"start",gap:2,className:"oui-mt-3 oui-w-full",children:[jsx("div",{className:"oui-relative oui-top-[7px] oui-size-1 oui-rounded-full oui-bg-[#D25f00]"}),jsx(Text,{className:"oui-text-2xs oui-text-[#D25f00]",children:t("tpsl.positionType.full.tips.market")})]})]}),jsxs(Flex,{direction:"column",gap:6,children:[jsx($,{rootOrderPrice:s.order_price,symbol:n.symbol,type:"tp",values:l,errors:r?o:null,quote_dp:n.quote_dp,hideOrderPrice:s.position_type===PositionType.FULL,onChange:(d,m)=>{i(d,m);},positionType:s.position_type??PositionType.PARTIAL,symbolLeverage:e.symbolLeverage}),jsx($,{rootOrderPrice:s.order_price,symbol:n.symbol,type:"sl",values:f,hideOrderPrice:s.position_type===PositionType.FULL,errors:r?o:null,quote_dp:n.quote_dp,positionType:s.position_type??PositionType.PARTIAL,onChange:(d,m)=>{i(d,m);},symbolLeverage:e.symbolLeverage})]}),jsx(ue,{tp_pnl:s.tp_pnl,sl_pnl:s.sl_pnl,className:"oui-mt-6"})]})]}),jsxs(Flex,{className:"oui-mt-6 oui-px-3",gap:2,children:[jsx(Button,{size:"md",fullWidth:true,color:"gray",variant:"outlined",className:"oui-text-base-contrast-36",onClick:e.onClose,children:t("common.cancel")}),jsx(Button,{size:"md",fullWidth:true,color:"success",className:cn$1(s.side===OrderSide.SELL?"oui-bg-danger-darken hover:oui-bg-danger-darken/80 active:oui-bg-danger-darken/80":"oui-bg-success-darken hover:oui-bg-success-darken/80 active:oui-bg-success-darken/80"),onClick:e.onSubmit,children:t("tpsl.advanced.submit")})]})]})},Ji=e=>jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",...e,children:jsx("path",{d:"M8.03752 2.9294C7.89169 2.95857 7.74527 3.03207 7.65661 3.16624L5.33145 6.66624C5.20137 6.86224 5.20137 7.12648 5.33145 7.32248L7.65661 10.8225C7.83452 11.0902 8.20669 11.1655 8.47385 10.9864C8.74044 10.8079 8.8151 10.434 8.63719 10.1662L6.53019 6.99408L8.63719 3.82249C8.8151 3.55416 8.74044 3.18082 8.47385 3.00232C8.34027 2.91249 8.18335 2.89965 8.03752 2.9294Z"})});var br=(e,t)=>{if(e.tp_trigger_price||e.sl_trigger_price){if(t==="tp")return !!e.tp_trigger_price;if(t==="sl")return !!e.sl_trigger_price}return true},Sr=e=>{let{order:t,setOrderValue:o,onClose:r}=e,[s,i]=useState(null),{formattedOrder:n,setValue:a,setValues:l,helper:g,symbolInfo:f,metaState:c,...d}=useOrderEntry(t.symbol,{initialOrder:{symbol:t.symbol,order_type:t.order_type,side:t.side,order_price:t.order_price,order_quantity:t.order_quantity,position_type:t.position_type??PositionType.PARTIAL,trigger_price:t.trigger_price,tp_enable:br(t,"tp"),sl_enable:br(t,"sl"),tp_trigger_price:t.tp_trigger_price,sl_trigger_price:t.sl_trigger_price,tp_order_price:t.tp_order_price,sl_order_price:t.sl_order_price,tp_order_type:t.tp_order_type,sl_order_type:t.sl_order_type,sl_pnl:t.sl_pnl,sl_offset:t.sl_offset,sl_offset_percentage:t.sl_offset_percentage,tp_pnl:t.tp_pnl,tp_offset:t.tp_offset,tp_offset_percentage:t.tp_offset_percentage}});return {order:t,formattedOrder:n,symbolInfo:f,setValue:a,setValues:l,onSubmit:()=>{g.validate().then(()=>{e.onSubmit(n);}).catch(u=>{});},onClose:r,metaState:c,symbolLeverage:e.symbolLeverage}};var Lr=e=>{let t=Sr({order:e.order,setOrderValue:e.setOrderValue,onSubmit:e.onSubmit,onClose:e.onClose,symbolLeverage:e.symbolLeverage});return jsx(xr,{...t})},ss="TPSLAdvancedSheetId",ns="TPSLAdvancedDialogId";registerSimpleSheet(ss,Lr,{title:()=>i18n.t("common.settings")});registerSimpleDialog(ns,Lr,{title:()=>i18n.t("common.settings")});var hr=e=>{let{position:t}=e,o=t.symbol,r=useSymbolsInfo()[o],{isMobile:s}=useScreen(),{t:i}=useTranslation(),[n,a]=useState([]),[l,g]=useState([]),[f,{cancelAlgoOrder:c,cancelPostionOrdersByTypes:d,refresh:m}]=useOrderStream({symbol:t.symbol,status:OrderStatus.INCOMPLETE,includes:[AlgoOrderRootType.POSITIONAL_TP_SL,AlgoOrderRootType.TP_SL],size:500},{keeplive:true}),u=async O=>await c(O.algo_order_id,O.symbol),y=async()=>await d(o,[AlgoOrderRootType.TP_SL]),p=({order:O,positionType:w,isEditing:oe})=>{let be=s?Ve:fe;modal.show(be,{order:O,symbol:t.symbol,positionType:w,isEditing:oe});},P=(O,w)=>{p({order:O,positionType:w,isEditing:true});},A=O=>{p({positionType:O,isEditing:false});};return useEffect(()=>{if(f){let{fullPositionOrder:O,partialPositionOrders:w}=findPositionTPSLFromOrders(f,o);a(O?[O]:[]),g(w??[]);}},[f,o]),{symbolInfo:r,position:t,symbol:o,fullPositionOrders:n,partialPositionOrders:l,cancelPostionOrdersByTypes:d,onCancelOrder:u,onCancelAllTPSLOrders:y,editTPSLOrder:P,addTPSLOrder:A}};var Ar=createContext({}),Nr=e=>{let t=useSymbolsInfo()[e.symbol];return jsx(Ar.Provider,{value:{base_dp:t("base_dp"),quote_dp:t("quote_dp"),position:e.position},children:e.children})},X=()=>useContext(Ar);var C=e=>jsx(Flex,{direction:"column",justify:"center",itemAlign:"start",className:"oui-text-2xs oui-h-[36px]",children:e.children});var mt=({order:e})=>{let{position:t,base_dp:o,quote_dp:r}=X(),{tp_trigger_price:s,sl_trigger_price:i}=findTPSLFromOrder(e),n,a,l=new Decimal(e.quantity).eq(0)?t.position_qty:e.quantity;return s&&(n=new Decimal(positions.unrealizedPnL({qty:l,openPrice:t?.average_open_price,markPrice:s})).abs().toNumber()),i&&(a=new Decimal(positions.unrealizedPnL({qty:l,openPrice:t?.average_open_price,markPrice:i})).abs().mul(-1).toNumber()),jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[n&&jsx(C,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:n})}),a&&jsx(C,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:a})})]})};var gt=({order:e})=>{let{quote_dp:t}=X(),{tp_order_price:o,sl_order_price:r}=findTPSLOrderPriceFromOrder(e),{t:s}=useTranslation();return jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(C,{children:o===OrderType.MARKET?jsx(Text,{children:s("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})}),r&&jsx(C,{children:r===OrderType.MARKET?jsx(Text,{children:s("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})})]})};var ft=({order:e})=>{let{position:t,base_dp:o}=X(),{tp_trigger_price:r,sl_trigger_price:s}=findTPSLFromOrder(e);return jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",className:"oui-h-full oui-text-2xs",children:[jsx(C,{children:jsx(Text.numeral,{dp:o,rm:Decimal.ROUND_DOWN,padding:false,children:e.quantity===0?t.position_qty:e.quantity})}),r&&s&&jsx(C,{children:jsx("div",{})})]})};var _t=({order:e})=>{let{quote_dp:t}=X(),{tp_trigger_price:o,sl_trigger_price:r}=findTPSLFromOrder(e),{t:s}=useTranslation();return jsxs(Flex,{gap:1,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(C,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:s("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})]})}),r&&jsx(C,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:s("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})]})})]})};var Tt=({order:e})=>{let{tp_trigger_price:t,sl_trigger_price:o}=findTPSLFromOrder(e),{t:r}=useTranslation();return jsxs(Flex,{direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[t&&jsx(C,{children:jsx(Text,{className:"oui-text-trade-profit",children:r("tpsl.tp")})}),o&&jsx(C,{children:jsx(Text,{className:"oui-text-trade-loss",children:r("tpsl.sl")})})]})};var je=e=>{let{t}=useTranslation(),{isMobile:o}=useScreen(),{onCancelOrder:r}=e;return useMemo(()=>{let i=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:"oui-py-2",render:(a,l)=>jsx(ft,{order:l})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(a,l)=>jsx(Tt,{order:l})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(a,l)=>jsx(_t,{order:l})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-py-2",render:(a,l)=>jsx(gt,{order:l})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast",content:t("tpsl.tpslDetail.estPnl.tooltip"),children:jsx(Text,{className:"oui-underline oui-decoration-dashed oui-underline-offset-2",children:t("tpsl.tpslDetail.estPnl")})}),dataIndex:"estpnl",width:70,className:"!oui-pr-0 oui-py-2",render:(a,l)=>jsx(mt,{order:l})}],n=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:cn$1(" oui-py-2 !oui-pl-5"),render:(a,l)=>jsx(ft,{order:l})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(a,l)=>jsx(Tt,{order:l})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(a,l)=>jsx(_t,{order:l})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-pl-1 oui-py-2",render:(a,l)=>jsx(gt,{order:l})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast",content:t("tpsl.tpslDetail.estPnl.tooltip"),children:jsx(Text,{className:"oui-underline oui-decoration-dashed oui-underline-offset-2",children:t("tpsl.tpslDetail.estPnl")})}),dataIndex:"estpnl",width:70,className:"oui-pl-1 oui-py-2",render:(a,l)=>jsx(mt,{order:l})},{title:"",dataIndex:"delete",width:50,className:cn$1("oui-py-2 !oui-pr-5"),render:(a,l)=>jsx($s,{order:l,onCancelOrder:r})}];return o?i:n},[t,o])};var Gs=e=>{let{size:t=18}=e;return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:t,height:t,viewBox:"0 0 18 18",fill:"currentColor",...e,children:jsx("path",{d:"M5.48081 15.375C5.10681 15.375 4.78731 15.2426 4.52231 14.9777C4.25744 14.7127 4.125 14.3932 4.125 14.0192V4.50004H3.375V3.37505H6.75V2.71167H11.25V3.37505H14.625V4.50004H13.875V14.0192C13.875 14.3981 13.7438 14.7188 13.4813 14.9813C13.2188 15.2438 12.8981 15.375 12.5192 15.375H5.48081ZM12.75 4.50004H5.25V14.0192C5.25 14.0866 5.27162 14.1419 5.31487 14.1852C5.35812 14.2284 5.41344 14.25 5.48081 14.25H12.5192C12.5769 14.25 12.6298 14.226 12.6778 14.1779C12.7259 14.1299 12.75 14.077 12.75 14.0192V4.50004ZM7.053 12.75H8.17781V6.00004H7.053V12.75ZM9.82219 12.75H10.947V6.00004H9.82219V12.75Z"})})},$s=e=>{let[t,o]=useState(false);return jsx(ThrottledButton,{size:"sm",loading:t,variant:"text",color:"gray",onClick:r=>{r.stopPropagation(),o(true),e.onCancelOrder?.(e.order).then(()=>{},s=>{toast.error(s.message);}).finally(()=>{o(false);});},children:jsx(Gs,{className:"oui-text-base-contrast-54 hover:oui-text-base-contrast oui-cursor-pointer"})})};var bt=e=>{let{orders:t}=e,o=je({onCancelOrder:e.onCancelOrder});return jsx(AuthGuardDataTable,{columns:o,dataSource:t,className:"oui-bg-transparent oui-text-2xs",bordered:true,classNames:{root:cn$1(e.className),header:"!oui-bg-base-8",scroll:cn$1(!t||t.length===0?"!oui-min-h-[170px]":"!oui-min-h-[100px]")},onRow:r=>({className:cn$1("oui-h-[53px] oui-cursor-svg-edit !oui-border-none !oui-p-0"),onClick:()=>{e.editTPSLOrder(r);}})})};var St=e=>{let{t}=useTranslation(),{orders:o}=e,r=je({onCancelOrder:()=>Promise.resolve()}),s=useMemo(()=>o.reduce((i,n)=>(i[n.algo_order_id]=true,i),{}),[o]);return jsx(AuthGuardDataTable,{columns:r,dataSource:o,expanded:s,bordered:true,getRowCanExpand:()=>true,expandRowRender:i=>jsxs(Flex,{gap:2,justify:"end",children:[jsx(Button,{variant:"outlined",size:"sm",color:"gray",className:"oui-h-6 oui-text-2xs oui-text-base-contrast-54",onClick:()=>e.editTPSLOrder(i.original),children:t("common.edit")}),jsx(on,{order:i.original,onCancelOrder:e.canCancelOrder})]}),className:"oui-bg-transparent oui-px-2 oui-text-2xs",classNames:{scroll:cn$1(!o||o.length===0?"!oui-min-h-[170px]":"!oui-min-h-[100px]")},onRow:()=>({className:cn$1("oui-h-[53px] oui-cursor-svg-edit !oui-border-none !oui-p-0")}),generatedRowKey:i=>i.algo_order_id})},on=e=>{let[t,o]=useState(false),{t:r}=useTranslation();return jsx(ThrottledButton,{className:"oui-h-6 oui-text-2xs oui-text-base-contrast-54",size:"sm",loading:t,variant:"outlined",color:"gray",onClick:s=>{s.stopPropagation(),o(true),e.onCancelOrder?.(e.order).then(()=>{},i=>{toast.error(i.message);}).finally(()=>{o(false);});},children:r("common.delete")})};var zr=e=>{let{isMobile:t}=useScreen(),{position:o,fullPositionOrders:r,partialPositionOrders:s,onCancelOrder:i,onCancelAllTPSLOrders:n,editTPSLOrder:a,addTPSLOrder:l,symbolInfo:g}=e;return jsx(Box,{children:jsxs(ScrollArea,{className:cn$1(t&&"oui-h-[calc(100vh-100px)]"),children:[jsx(H,{order:{symbol:o.symbol,order_quantity:o.position_qty.toString(),order_price:o.average_open_price.toString()},symbolLeverage:o.leverage,baseDP:g("base_dp"),quoteDP:g("quote_dp"),classNames:{root:cn$1("oui-mb-6 oui-gap-3 oui-px-5"),container:"oui-gap-x-[30px]"}}),jsx(un,{position:o,orders:r,onCancelOrder:i,onCancelAllTPSLOrders:n,editTPSLOrder:a,addTPSLOrder:l}),jsx(cn,{position:o,orders:s,onCancelOrder:i,onCancelAllTPSLOrders:n,editTPSLOrder:a,addTPSLOrder:l})]})})},un=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:s}=useScreen();return jsxs(Box,{className:"oui-mt-6",children:[jsxs(Box,{className:cn$1("oui-flex oui-items-center oui-justify-between oui-px-5"),children:[jsx(Qr,{positionType:PositionType.FULL,open:t,onOpenChange:o}),r&&r.length===0&&jsx(Flex,{gap:2,children:jsx(Wr,{positionType:PositionType.FULL,position:e.position,addTPSLOrder:e.addTPSLOrder})})]}),jsx(Box,{className:cn$1("oui-overflow-hidden oui-transition-[height] oui-duration-150",t?"oui-h-auto":"oui-h-0 oui-pb-4"),children:s?jsx(St,{orders:r,editTPSLOrder:i=>e.editTPSLOrder(i,PositionType.FULL),canCancelOrder:e.onCancelOrder}):jsx(bt,{orders:r,editTPSLOrder:i=>{e.editTPSLOrder(i,PositionType.FULL);},onCancelOrder:e.onCancelOrder})})]})},cn=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:s}=useScreen();return jsxs(Box,{className:"oui-pt-6",children:[jsxs(Box,{className:cn$1("oui-flex oui-items-center oui-justify-between","oui-px-5",s?"oui-flex-col oui-items-start oui-justify-start oui-gap-[11px]":"oui-flex-row oui-items-center oui-justify-between"),children:[jsx(Qr,{positionType:PositionType.PARTIAL,open:t,onOpenChange:o}),jsxs(Flex,{gap:2,children:[jsx(Wr,{positionType:PositionType.PARTIAL,position:e.position,addTPSLOrder:e.addTPSLOrder}),r&&r.length>0&&jsx(mn,{canCancelAll:r&&r.length>0,onCancelAllTPSLOrders:e.onCancelAllTPSLOrders})]})]}),jsx(Box,{className:cn$1("oui-overflow-hidden oui-transition-[height] oui-duration-150",t?"oui-h-auto":"oui-h-0 oui-pb-4"),children:s?jsx(St,{orders:r,editTPSLOrder:i=>e.editTPSLOrder(i,PositionType.PARTIAL),canCancelOrder:e.onCancelOrder}):jsx(bt,{className:"oui-h-[300px]",orders:r,editTPSLOrder:i=>{e.editTPSLOrder(i,PositionType.PARTIAL);},onCancelOrder:e.onCancelOrder})})]})},Qr=e=>{let{t}=useTranslation();return jsxs(Flex,{gap:1,itemAlign:"center",justify:"start",className:"oui-text-2xs",children:[jsxs(Flex,{itemAlign:"center",justify:"start",gap:1,className:"oui-cursor-pointer",onClick:()=>e.onOpenChange(!e.open),children:[jsx(ChevronDownIcon,{size:12,color:"white",className:cn$1("oui-cursor-pointer oui-transition-transform",e.open&&"oui-rotate-180")}),e.positionType===PositionType.FULL?jsx(Text,{children:t("tpsl.positionType.full")}):jsx(Text,{children:t("tpsl.positionType.partial")})]}),jsx(Tooltip,{className:"oui-w-[280px] oui-p-3",content:e.positionType===PositionType.FULL?t("tpsl.positionType.full.tips"):t("tpsl.positionType.partial.tips"),children:jsx(ExclamationFillIcon,{className:"oui-cursor-pointer oui-text-base-contrast-54",size:12})})]})},Wr=e=>{let{t}=useTranslation();return jsx(ThrottledButton,{variant:"outlined",size:"sm",color:"gray",className:"oui-h-6 oui-w-[94px] oui-text-2xs",onClick:()=>{e.addTPSLOrder(e.positionType);},children:t("tpsl.add")})},mn=e=>{let[t,o]=useState(false),{t:r}=useTranslation();return jsx(ThrottledButton,{loading:t,variant:"outlined",disabled:!e.canCancelAll,size:"sm",color:"gray",className:"oui-h-6 oui-w-[94px] oui-text-2xs disabled:oui-border-base-contrast-16 disabled:oui-bg-transparent disabled:oui-text-base-contrast-20",onClick:()=>{o(true),e.onCancelAllTPSLOrders().then(()=>{},s=>{toast.error(s.message);}).finally(()=>{o(false);});},children:r("tpsl.cancelAll")})};var Gr=e=>{let t=hr(e);return jsx(Nr,{symbol:e.position.symbol,position:e.position,children:jsx(zr,{...t})})},yn="TPSLDetailDialogId ",Pn="TPSLDetailSheetId";registerSimpleDialog(yn,Gr,{classNames:{content:"oui-w-[420px] lg:oui-pt-4 lg:oui-pb-2 !oui-px-0",body:"lg:oui-py-0"}});registerSimpleSheet(Pn,Gr,{classNames:{content:"!oui-p-0"}});var At=e=>{let {type:t,triggerPrice:o,symbol:r}=e,s=useSymbolsInfo(),[{rows:i},n]=usePositionStream(r),a=i?.[0];useRef(AlgoOrderRootType.TP_SL);let [g]=useLocalStorage("orderly_order_confirm",true),{t:f}=useTranslation(),[c,{submit:d,deleteOrder:m,setValue:u,setValues:y,validate:p,errors:P,isCreateMutating:A,isUpdateMutating:O}]=useTPSLOrder({symbol:r,position_qty:a?.position_qty,average_open_price:a?.average_open_price},{defaultOrder:void 0,positionType:PositionType.PARTIAL,tpslEnable:{tp_enable:t==="tp",sl_enable:t==="sl"},isEditing:false}),w=k=>{u("quantity",k);},oe=(k,N)=>{u(k,N);},be=(k,N)=>{u(k,N);},ie=useMemo(()=>Math.abs(Number(a.position_qty)),[a.position_qty]);useEffect(()=>{ie&&(u("quantity",ie),u(t==="tp"?"tp_trigger_price":"sl_trigger_price",o??""));},[t,o,ie]);let et=async()=>{try{if(await p())return g?modal.confirm({title:f("tpsl.confirmOrder"),onOk:async()=>{try{let N=await d({accountId:a.account_id});return N.success?N:(N.message&&toast.error(N.message),!1)}catch(N){return N?.message&&toast.error(N.message),!1}},classNames:{body:"!oui-pb-0"},content:jsx(Ae,{isPositionTPSL:!1,isEditing:!1,symbol:r,qty:Number(c.quantity),maxQty:ie,tpPrice:Number(c.tp_trigger_price),slPrice:Number(c.sl_trigger_price),side:c.side,orderInfo:c,quoteDP:s[r]("quote_dp"),baseDP:s[r]("base_dp")})}).then(()=>!0,()=>Promise.reject(!1)):d({accountId:a.account_id}).then(()=>!0).catch(N=>{throw N?.message&&toast.error(N.message),!1})}catch(k){return Promise.reject(k)}};return {symbolInfo:s[r],maxQty:ie,setQuantity:useMemoizedFn(w),orderQuantity:c.quantity,isPosition:false,TPSL_OrderEntity:c,setOrderValue:u,setPnL:be,setOrderPrice:oe,onSubmit:et,errors:P,status:{isCreateMutating:A,isUpdateMutating:O},position:a,setValues:y,type:t,triggerPrice:o}};var Nt=e=>{let{type:t,triggerPrice:o,errors:r,TPSL_OrderEntity:s}=e,{t:i}=useTranslation(),{getErrorMsg:n}=useOrderEntryFormErrorMsg(r),a=jsxs(Flex,{width:"100%",itemAlign:"center",gap:3,mt:4,children:[jsx(Button,{color:"gray",onClick:()=>{e.onComplete?.(),e.close?.();},fullWidth:true,className:"oui-text-sm",size:"md",children:i("common.cancel")},"secondary"),jsx(Button,{onClick:()=>{e.onSubmit().then(()=>{e.onComplete?.(),e.close?.();});},fullWidth:true,className:"oui-text-sm",size:"md",children:i("common.confirm")},"primary")]}),l=()=>{let f=n("tp_trigger_price"),c=n("sl_trigger_price"),d="";return f&&t==="tp"&&(d=f),c&&t==="sl"&&(d=c),d?jsxs(Flex,{justify:"start",itemAlign:"start",gap:2,className:"oui-mt-2 oui-w-full",children:[jsx("div",{className:"oui-relative oui-top-[7px] oui-size-1 oui-rounded-full oui-bg-danger"}),jsx(Text,{className:"oui-text-danger",children:d})]}):null},g=()=>{let{tp_pnl:f,sl_pnl:c}=s;return t==="sl"?jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:i("tpsl.totalEstSlPnl")}),c?jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-ml-1 oui-text-base-contrast-36",children:"USDC"}),coloring:true,visible:true,size:"2xs",dp:2,children:Number(c)}):jsx(Text,{size:"2xs",children:"-- USDC"})]}):jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:i("tpsl.totalEstTpPnl")}),jsx(Text.numeral,{suffix:jsx(Text,{className:"oui-text-base-contrast-36 oui-ml-1",children:"USDC"}),rule:"price",coloring:true,visible:true,size:"2xs",dp:2,children:f?Number(f):"--"})]})};return jsxs(Box,{className:"oui-w-full oui-px-0.5",children:[jsx(Ue,{maxQty:e.maxQty,quantity:Number(e.orderQuantity??e.maxQty),baseTick:e.symbolInfo("base_tick"),base_dp:e.symbolInfo("base_dp"),base:e.symbolInfo("base"),isEditing:false,errorMsg:n("quantity"),onQuantityChange:e.setQuantity}),jsxs(Flex,{direction:"column",itemAlign:"start",className:cn$1("oui-mt-4 oui-w-full oui-gap-1 oui-text-xs oui-text-base-contrast-36"),children:[jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"xs",children:i("tpsl.advanced.triggerPrice")}),jsx(Text.numeral,{className:"oui-text-base-contrast",suffix:jsx(Text,{className:"oui-ml-1 oui-text-xs oui-text-base-contrast-36",children:"USDC"}),rule:"price",size:"xs",dp:e.symbolInfo("quote_dp"),children:o?Number(o):"--"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"xs",children:i("tpsl.advanced.orderPrice")}),jsx(Text,{className:"oui-text-base-contrast",size:"xs",children:i("tpsl.advanced.market")})]}),g()]}),l(),jsx(Divider,{className:"oui-my-3 oui-w-full"}),jsx(Flex,{itemAlign:"center",onClick:()=>{e.close?.(),e.showAdvancedTPSLDialog?.({qty:Number(s.quantity)});},className:"oui-pb-4",children:jsx(Text,{color:"primary",className:"oui-cursor-pointer oui-text-sm",children:i("tpsl.advancedSetting")})}),a]})};var Ct=e=>{let{close:t,onComplete:o,showAdvancedTPSLDialog:r}=e,s=At(e);return jsx(Nt,{...s,close:t,onComplete:o,showAdvancedTPSLDialog:r})},jr="TPSLSimpleSheetId",Hr="TPSLSimpleDialogId";registerSimpleSheet(jr,Ct,{classNames:{}});registerSimpleDialog(Hr,Ct,{classNames:{content:"oui-w-[420px]"}});function Kn(e){let t=e.child_orders[0],o=t.algo_type===AlgoOrderRootType.TP_SL?PositionType.PARTIAL:PositionType.FULL,r=t.child_orders.find(n=>n.algo_type===AlgoOrderType.TAKE_PROFIT&&n.trigger_price),s=t.child_orders.find(n=>n.algo_type===AlgoOrderType.STOP_LOSS&&n.trigger_price),i={};return r&&(i.tp_trigger_price=r.trigger_price?.toString(),i.tp_order_type=typeof r.type=="string"?r.type.replace("_ORDER",""):void 0,i.tp_order_type===OrderType.LIMIT&&(i.tp_order_price=r.price?.toString())),s&&(i.sl_trigger_price=s.trigger_price?.toString(),i.sl_order_type=typeof s.type=="string"?s.type.replace("_ORDER",""):void 0,i.sl_order_type===OrderType.LIMIT&&(i.sl_order_price=s.price?.toString())),{baseInfo:{symbol:e.symbol,order_type:e.type,side:e.side,order_price:e.price,order_quantity:e.quantity,position_type:o,tp_enable:!!r?.trigger_price,sl_enable:!!s?.trigger_price},tpslPriceInfo:i,tpInfo:{orderId:r?.algo_order_id},slInfo:{orderId:s?.algo_order_id}}}function Ye(e,t){if(t==null)return true;if(isNaN(Number(t)))return false;let o=new Decimal(Number(e));return !new Decimal(Number(t)).eq(o)}var Xr=e=>{if(!e.order)throw new SDKError("order is required for editBracketOrder");let{baseInfo:t,tpslPriceInfo:o,tpInfo:r,slInfo:s}=Kn(e.order),[i,{isMutating:n}]=useMutation("/v1/algo/order","PUT"),{formattedOrder:a,setValue:l,setValues:g,metaState:f,symbolInfo:c,helper:d}=useOrderEntry(e.order.symbol,{initialOrder:t}),m=e.order.symbol,u=useMemo(()=>{let p=false,{tp_order_price:P,sl_order_price:A,tp_trigger_price:O,sl_trigger_price:w}=a;return o.tp_trigger_price&&(p=p||Ye(o.tp_trigger_price,O??0)),o.tp_order_price&&(p=p||Ye(o.tp_order_price,P??0)),o.sl_trigger_price&&(p=p||Ye(o.sl_trigger_price,w??0)),o.sl_order_price&&(p=p||Ye(o.sl_order_price,A??0)),p},[o,a.tp_order_price,a.sl_order_price,a.tp_trigger_price,a.sl_trigger_price]);return useEffect(()=>{g({...o});},[e.order,g]),{symbol:m,symbolInfo:c,formattedOrder:a,setValue:l,setValues:g,metaState:f,onSubmit:async()=>d.validate().then(()=>{let p={order_id:r.orderId,algo_type:AlgoOrderType.TAKE_PROFIT,trigger_price:a.tp_trigger_price,reduce_only:true};a.tp_order_type===OrderType.LIMIT&&(p.price=a.tp_order_price);let P={order_id:s.orderId,algo_type:AlgoOrderType.STOP_LOSS,trigger_price:a.sl_trigger_price,reduce_only:true};a.sl_order_type===OrderType.LIMIT&&(P.price=a.sl_order_price);let A=[];return r.orderId&&A.push(p),s.orderId&&A.push(P),i({order_id:e.order.algo_order_id,child_orders:[{order_id:e.order.child_orders[0].algo_order_id,child_orders:A}]})}),isMutating:n,isPriceChanged:u}};var ro=e=>{let{t}=useTranslation(),{errors:o,validated:r}=e.metaState,{isMobile:s}=useScreen(),{formattedOrder:i,setValue:n,symbol:a,symbolInfo:l,setValues:g}=e,[f,c]=useState({enable:true,order_type:i.tp_order_type??OrderType.MARKET,order_price:i.tp_order_price??"",trigger_price:i.tp_trigger_price??"",PnL:i.tp_pnl??"",Offset:i.tp_offset??"","Offset%":i.tp_offset_percentage??"",ROI:i.tp_ROI??""}),[d,m]=useState({enable:true,order_type:i.sl_order_type??OrderType.MARKET,order_price:i.sl_order_price??"",trigger_price:i.sl_trigger_price??"",PnL:i.sl_pnl??"",Offset:i.sl_offset??"","Offset%":i.sl_offset_percentage??"",ROI:i.sl_ROI??""});return useEffect(()=>{c(u=>({...u,enable:i.tp_enable??true,order_type:i.tp_order_type??OrderType.MARKET,order_price:i.tp_order_price??"",trigger_price:i.tp_trigger_price??"",PnL:i.tp_pnl??"",Offset:i.tp_offset??"","Offset%":i.tp_offset_percentage??"",ROI:i.tp_ROI??""}));},[i]),useEffect(()=>{m(u=>({...u,enable:i.sl_enable??true,order_type:i.sl_order_type??OrderType.MARKET,order_price:i.sl_order_price??"",trigger_price:i.sl_trigger_price??"",PnL:i.sl_pnl??"",Offset:i.sl_offset??"","Offset%":i.sl_offset_percentage??"",ROI:i.sl_ROI??""}));},[i]),jsxs("div",{children:[jsxs(ScrollArea,{className:cn$1("oui-flex-1",s&&"oui-h-[calc(100vh-200px)]"),children:[jsx("div",{className:"",children:jsx(H,{order:{symbol:a,order_quantity:i.order_quantity,order_price:i.order_price},baseDP:l.base_dp,quoteDP:l.quote_dp})}),jsx(Divider,{className:"oui-my-3"}),jsxs("div",{className:"",children:[jsxs("div",{className:"oui-py-3",children:[jsx(Z,{value:i.position_type??PositionType.PARTIAL,disableSelector:true,onChange:(u,y)=>{if(y===PositionType.FULL){g({position_type:PositionType.FULL,tp_order_type:OrderType.MARKET,tp_order_price:void 0,sl_order_type:OrderType.MARKET,sl_order_price:void 0});return}n("position_type",y);}}),i.position_type===PositionType.FULL&&jsxs(Flex,{justify:"start",itemAlign:"start",gap:2,className:"oui-mt-3 oui-w-full",children:[jsx("div",{className:"oui-relative oui-top-[7px] oui-size-1 oui-rounded-full oui-bg-[#D25f00]"}),jsx(Text,{className:"oui-text-2xs oui-text-[#D25f00]",children:t("tpsl.positionType.full.tips.market")})]})]}),jsxs(Flex,{direction:"column",gap:6,children:[i.tp_enable&&jsx($,{disableEnableCheckbox:true,disableOrderTypeSelector:true,rootOrderPrice:i.order_price,symbol:l.symbol,type:"tp",values:f,errors:r?o:null,quote_dp:l.quote_dp,hideOrderPrice:i.position_type===PositionType.FULL,onChange:(u,y)=>{n(u,y);},positionType:i.position_type??PositionType.PARTIAL}),i.sl_enable&&i.tp_enable&&jsx(Divider,{className:"oui-w-full"}),i.sl_enable&&jsx($,{disableEnableCheckbox:true,disableOrderTypeSelector:true,rootOrderPrice:i.order_price,symbol:l.symbol,type:"sl",values:d,hideOrderPrice:i.position_type===PositionType.FULL,errors:r?o:null,quote_dp:l.quote_dp,positionType:i.position_type??PositionType.PARTIAL,onChange:(u,y)=>{n(u,y);}})]}),jsx(ue,{tp_pnl:i.tp_pnl,sl_pnl:i.sl_pnl,className:"oui-mt-6"})]})]}),jsx(Flex,{itemAlign:"center",gap:3,mt:5,width:"100%",justify:"center",children:jsx(ThrottledButton,{className:"oui-w-[184px]","data-testid":"tpsl-confirm",disabled:!e.isPriceChanged,loading:e.isMutating,onClick:()=>{e.onSubmit().then(()=>{e.onClose?.();}).catch(u=>{});},children:t("common.confirm")})})]})};var oo=e=>{let t=Xr({order:e.order});return jsx(ro,{...t,onClose:e.close})},el="EditBracketOrderSheetId",tl="EditBracketOrderDialogId";registerSimpleSheet(el,oo);registerSimpleDialog(tl,oo,{classNames:{content:"oui-w-[420px]"}});
|
|
13
13
|
|
|
14
|
-
export {
|
|
14
|
+
export { Ji as ArrowRightIcon, tl as EditBracketOrderDialogId, el as EditBracketOrderSheetId, oo as EditBracketOrderWidget, Ae as PositionTPSLConfirm, Ki as PositionTPSLPopover, ji as PositionTPSLSheet, Jt as TPSL, ns as TPSLAdvancedDialogId, ss as TPSLAdvancedSheetId, xr as TPSLAdvancedUI, Lr as TPSLAdvancedWidget, yn as TPSLDetailDialogId, Pn as TPSLDetailSheetId, Gr as TPSLDetailWidget, fe as TPSLDialogId, Z as TPSLPositionTypeWidget, Ve as TPSLSheetId, Hr as TPSLSimpleDialogId, Nt as TPSLSimpleDialogUI, Ct as TPSLSimpleDialogWidget, jr as TPSLSimpleSheetId, Ne as TPSLWidget, Sr as useTPSLAdvanced, cr as useTPSLBuilder, At as useTPSLSimpleDialog };
|
|
15
15
|
//# sourceMappingURL=out.js.map
|
|
16
16
|
//# sourceMappingURL=index.mjs.map
|