@orderly.network/ui-tpsl 2.6.0 → 2.6.1
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 +111 -7
- package/dist/index.d.ts +111 -7
- package/dist/index.js +19 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
package/dist/index.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { registerSimpleSheet, registerSimpleDialog, useScreen, ScrollArea, cn
|
|
2
|
-
import { createContext, useRef, useMemo,
|
|
3
|
-
import { useSymbolsInfo, useLocalStorage, useTPSLOrder, utils, useOrderEntry, useOrderStream, findPositionTPSLFromOrders, useMarkPrice, useIndexPrice, useSymbolLeverage, findTPSLFromOrder, findTPSLOrderPriceFromOrder } from '@orderly.network/hooks';
|
|
1
|
+
import { registerSimpleSheet, registerSimpleDialog, useScreen, ScrollArea, cn, Flex, Text, Grid, Button, ThrottledButton, Divider, Box, toast, TokenIcon, modal, convertValueToPercentage, Input, inputFormatter, Slider, Tooltip, ExclamationFillIcon, Select, Checkbox, ChevronDownIcon, Badge, textVariants, SimpleDropdownMenu, CaretDownIcon, useModal } from '@orderly.network/ui';
|
|
2
|
+
import { createContext, useRef, useMemo, useEffect, useState, Fragment as Fragment$1, useContext } from 'react';
|
|
3
|
+
import { useSymbolsInfo, usePositionStream, useLocalStorage, useTPSLOrder, utils, useOrderEntry, useOrderStream, findPositionTPSLFromOrders, useMarkPrice, useIndexPrice, useSymbolLeverage, findTPSLFromOrder, findTPSLOrderPriceFromOrder } from '@orderly.network/hooks';
|
|
4
4
|
import { i18n, useTranslation, Trans } from '@orderly.network/i18n';
|
|
5
5
|
import { useOrderEntryFormErrorMsg } from '@orderly.network/react-app';
|
|
6
|
-
import { SDKError, AlgoOrderRootType,
|
|
6
|
+
import { SDKError, AlgoOrderRootType, PositionType, OrderType, OrderSide, OrderStatus } from '@orderly.network/types';
|
|
7
7
|
import { Decimal, transSymbolformString, todpIfNeed } from '@orderly.network/utils';
|
|
8
8
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
9
|
import { AuthGuardDataTable } from '@orderly.network/ui-connector';
|
|
10
10
|
import { positions } from '@orderly.network/perp';
|
|
11
11
|
|
|
12
|
-
var ee=e=>{let{t}=useTranslation(),{order:o}=e,{symbol:r,side:i}=o,n=useMarkPrice(r),l=useIndexPrice(r),a=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:[a,"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:n?.data})]})]})]})};var _e=e=>{let{t}=useTranslation(),{tp_pnl:o,sl_pnl:r}=e,i=useMemo(()=>{if(o&&r){let n=new Decimal(o).div(r).abs().toNumber().toFixed(2);return jsxs(Flex,{gap:1,itemAlign:"center",className:"oui-text-base-contrast-80",children:[jsx(Text,{children:n}),jsx(Text,{className:"oui-text-base-contrast-36",children:"x"})]})}return 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:i})]})]})};var Me=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});var yt=e=>{let{type:t,values:o}=e,[r,i]=useLocalStorage("TP/SL_Mode","Offset%"),[n,l]=useState(true),{t:a}=useTranslation(),s=useMemo(()=>{switch(r){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[r]),d=useMemo(()=>o[r],[o,r]),O=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(""),m=T=>{e.onChange(s,T);},f=T=>{let{dp:g=2}=T;return {onRenderBefore:(u,x)=>(u=`${u}`,n&&t==="SL"&&r==="PnL"&&(u=u.startsWith("-")?u:"-"+u),u===""||u==="-"?"":r==="Offset%"?`${new Decimal(u.replace(new RegExp(c.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${c.current}`:(r==="Offset"&&(u=todpIfNeed(u,g)),`${u}`)),onSendBefore:u=>{if(/^\-?0{2,}$/.test(u))return "0";if(r==="Offset%"){if(u!==""){u=todpIfNeed(u,2);let x=u.match(/\.0{0,2}$/);x?c.current=x[0]:c.current="",u=new Decimal(u).div(100).toString(),u=`${u}${c.current}`;}}else r==="PnL"&&t==="SL"&&n?u=u.startsWith("-")?u:"-"+u:u=todpIfNeed(u,g);return u===""||u==="-"?"":u}}};return {mode:r,modes:O,type:e.type,formatter:f,onModeChange:T=>{i(T);},value:d,pnl:o.PnL,onValueChange:m,quote_dp:e.quote_dp,setFocus:l}};var bt=e=>{let{mode:t,modes:o,onModeChange:r,onValueChange:i,quote:n,quote_dp:l,value:a,pnl:s}=e,{t:d}=useTranslation(),[O,c]=useState(t),[m,f]=useState(t==="Offset%"?"%":n),T=useMemo(()=>{let g=Number(s);if(isNaN(g)||g===0)return "";if(g>0)return "oui-text-trade-profit";if(g<0)return "oui-text-trade-loss"},[s]);return useEffect(()=>{let g=o.find(u=>u.value===t)?.label;c(g),f(t==="Offset%"?"%":n);},[t,o]),jsx(Input,{prefix:O,size:{initial:"lg",lg:"md"},placeholder:m,align:"right",value:a,"data-testid":e.testId,autoComplete:"off",onValueChange:i,formatters:[e.formatter({dp:l,mode:t}),inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],classNames:{input:cn$1("oui-text-2xs",T),prefix:"oui-text-base-contrast-54 oui-text-2xs",root:"oui-outline-line-12 focus-within:oui-outline-primary-light"},onFocus:()=>{f(""),e.setFocus(true);},onBlur:()=>{f(t==="Offset%"?"%":n),e.setFocus(false);},suffix:jsxs(Fragment,{children:[t==="Offset%"&&!!a&&jsx(Text,{size:"2xs",color:"inherit",className:cn$1("oui-ml-[2px]",T),children:"%"}),jsx(Qr,{mode:t,modes:o,onModeChange:g=>r(g.value)})]})})},Qr=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 Ot=e=>{let{testId:t,quote:o,...r}=e,i=yt(r);return jsx(bt,{...i,testId:t,quote:o})};var Lt=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,i)=>{let n={[OrderType.LIMIT]:t("orderEntry.orderType.limit"),[OrderType.MARKET]:t("common.marketPrice")}[r];return jsx(Text,{size:"2xs",children:n})}})};var ze=e=>{let{t}=useTranslation(),{parseErrorMsg:o}=useOrderEntryFormErrorMsg(e.errors),{values:r,positionType:i}=e,n=useSymbolLeverage(e.symbol),l=useMemo(()=>{let a=null;if(!e.rootOrderPrice||!r.trigger_price&&!r.order_price)return null;let s=new Decimal(0);if(r.order_type===OrderType.MARKET){if(!r.trigger_price)return null;s=new Decimal(r.trigger_price);}else if(r.order_type===OrderType.LIMIT){if(!r.order_price)return null;s=new Decimal(r.order_price);}let d=new Decimal(e.rootOrderPrice);return a=s.minus(d).div(d).mul(n).abs().mul(100).mul(e.type==="tp"?1:-1).toNumber(),a},[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:[jsx(Checkbox,{"data-testid":`oui-testid-orderEntry-${e.type}-enable-checkBox`,id:`enable_${e.type}`,color:"white",checked:r.enable,onCheckedChange:a=>{e.onChange(`${e.type}_enable`,!!a);}}),jsx("label",{htmlFor:`enable_${e.type}`,className:"oui-ml-1 oui-cursor-pointer oui-text-sm 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(Ue,{type:`${e.type} price`,value:r.trigger_price,error:o(`${e.type}_trigger_price`),onValueChange:a=>{e.onChange(`${e.type}_trigger_price`,a);},quote_dp:e.quote_dp}),jsx(Ot,{type:e.type==="tp"?"TP":"SL",onChange:(a,s)=>{e.onChange(a,s);},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(Ue,{disabled:i===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:a=>{e.onChange(`${e.type}_order_price`,a);},quote_dp:e.quote_dp}),jsx(Lt,{disabled:i===PositionType.FULL||e.disableOrderTypeSelector,type:r.order_type,onChange:a=>{e.onChange(`${e.type}_order_type`,a);}})]})]})]}),jsx(to,{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"})]})},to=e=>{let{t}=useTranslation(),{price:o,pnl:r,roi:i,dp:n,className:l,orderType:a}=e;return !i||!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:n,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:i})},"roi")]})})};var oe=e=>{let t=Me(e);return jsx(ze,{...t})};var ht=e=>({value:e.value,onChange:e.onChange,disableSelector:e.disableSelector});var ao="position_type",vt=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(ao,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 ie=e=>{let t=ht(e);return jsx(vt,{...t})};var Et=e=>{let{TPSL_OrderEntity:t,symbolInfo:o,onCancel:r,onComplete:i,status:n,errors:l,valid:a,position:s,setValues:d,onClose:O,isEditing:c}=e,{t:m}=useTranslation(),{isMobile:f}=useScreen(),{parseErrorMsg:T}=useOrderEntryFormErrorMsg(l),g=()=>t.position_type===PositionType.FULL?null:jsx(Box,{className:"oui-px-0.5",children:jsx(No,{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:T("quantity")})});return jsxs("div",{id:"orderly-tp_sl-order-edit-content",children:[jsxs(ScrollArea,{className:cn$1(f&&"oui-h-[calc(100vh-200px)]"),children:[jsx(ee,{baseDP:o("base_dp"),quoteDP:o("quote_dp"),classNames:{root:"oui-mb-3",container:"oui-gap-x-[30px]"},order:{symbol:s.symbol,order_quantity:s.position_qty.toString(),order_price:s.average_open_price.toString()}}),jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",gap:3,className:"oui-w-full oui-mb-3",children:[!c&&jsx(ie,{disableSelector:true,value:t.position_type??PositionType.PARTIAL,onChange:(u,x)=>{x===PositionType.FULL?d({position_type:x,quantity:Math.abs(s.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:""}):d({position_type:x,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:m("tpsl.positionType.full.tips.market")})]}),g(),jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",gap:6,className:"oui-w-full oui-mt-3",children:[jsx(oe,{symbol:s.symbol,rootOrderPrice:s.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:l,disableOrderTypeSelector:c,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,onChange:(u,x)=>{e.setOrderValue(u,x);}}),jsx(oe,{symbol:s.symbol,rootOrderPrice:s.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:l,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,disableOrderTypeSelector:c,onChange:(u,x)=>{e.setOrderValue(u,x);}})]}),jsx(_e,{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:m("common.cancel")}),jsx(ThrottledButton,{size:"md","data-testid":"tpsl-confirm",disabled:!e.valid||n.isCreateMutating,loading:n.isCreateMutating||n.isUpdateMutating,onClick:()=>{e.onSubmit().then(()=>{e.close?.(),i?.();}).catch(u=>{});},children:m("common.confirm")})]})]})},No=e=>{let t=useRef(null),o=convertValueToPercentage(e.quantity,0,e.maxQty)/100,{t:r}=useTranslation(),i=l=>{let a=l;Number(l)>e.maxQty&&(a=e.maxQty.toString()),e.baseTick>0&&e.onQuantityChange?.(utils.formatNumber(a,e.baseTick)??l);},n=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",n&&"oui-outline-danger")},tooltipProps:{content:{className:"oui-bg-base-6 oui-text-base-contrast-80"},arrow:{className:"oui-fill-base-6"}},tooltip:n,color:n?"danger":void 0,formatters:[inputFormatter.dpFormatter(e.dp),inputFormatter.numberFormatter,inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],onValueChange:l=>{e.onQuantityChange?.(l);let a=Number(l);if(a&&a>e.maxQty){let s=e.maxQty;e.onQuantityChange?.(s),t.current?.blur();}},onBlur:l=>i(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=>{i(`${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})]})]})]})},Ue=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]})},H=e=>{let{symbol:t,tpPrice:o,slPrice:r,qty:i,maxQty:n,side:l,quoteDP:a,baseDP:s,isEditing:d,isPositionTPSL:O,orderInfo:c}=e,{t:m}=useTranslation(),[f,T]=useLocalStorage("orderly_order_confirm",true),g=()=>c.position_type===PositionType.FULL?jsx(Text,{children:m("tpsl.positionType.full")}):jsx(Text,{children:m("tpsl.positionType.partial")}),u=({price:E,isOrderPrice:C,isEnable:h,colorType:v})=>h?!E&&C?jsx(Text,{className:"oui-text-base-contrast-36",children:m("common.market")}):jsx(Text.numeral,{unit:"USDC",rule:"price",className:cn$1("oui-text-base-contrast",v==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:a,padding:false,children:E}):jsx(Text,{className:"oui-text-base-contrast-36",children:"-- USDC"}),x=O;return jsxs(Fragment,{children:[d&&jsx(Text,{as:"div",size:"2xs",intensity:80,className:"oui-mb-3",children:m("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:[x&&jsx(Badge,{size:"xs",color:"primary",children:m("common.position")}),jsx(ho,{tpPrice:o,slPrice:r}),l===OrderSide.SELL?jsx(Badge,{size:"xs",color:"success",children:m("common.buy")}):jsx(Badge,{size:"xs",color:"danger",children:m("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:g()}),jsxs(Flex,{justify:"between",children:[jsx(Text,{children:m("common.orderQty")}),jsx(Text.numeral,{rule:"price",dp:s,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:m("tpsl.tpTriggerPrice")})," ",u({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:m("tpsl.tpOrderPrice")}),u({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:m("tpsl.slTriggerPrice")}),u({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:m("tpsl.slOrderPrice")}),u({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:!f,onCheckedChange:E=>{T(!E);}}),jsx("label",{htmlFor:"disabledConfirm",className:textVariants({size:"xs",intensity:54,className:"oui-ml-1"}),children:m("orderEntry.disableOrderConfirm")})]})})]})},ho=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};var Mt=e=>{let{position:t,order:o,isEditing:r,positionType:i}=e;if(r&&!o)throw new SDKError("order is required when isEditing is true");let n=r?o.symbol:t.symbol,l=useSymbolsInfo();useRef(AlgoOrderRootType.TP_SL);let [s]=useLocalStorage("orderly_order_confirm",true),[d,{submit:O,deleteOrder:c,setValue:m,setValues:f,validate:T,errors:g,isCreateMutating:u,isUpdateMutating:x}]=useTPSLOrder({symbol:n,position_qty:t.position_qty,average_open_price:t.average_open_price},{defaultOrder:o,positionType:i,tpslEnable:{tp_enable:true,sl_enable:true},isEditing:r}),E=F=>{m("quantity",F);},C=(F,P)=>{m(F,P);},h=(F,P)=>{m(F,P);},v=useMemo(()=>Math.abs(Number(t.position_qty)),[t.position_qty]),J=useMemo(()=>{let F=o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL?v:o?.quantity,P=0;if((Number(d.quantity)!==F||!r&&d.quantity)&&(P=1),o&&r){let{tp_trigger_price:_r,sl_trigger_price:br}=utils.findTPSLFromOrder(o),{tp_order_price:gt,sl_order_price:ft}=utils.findTPSLOrderPriceFromOrder(o);_r!==Number(d.tp_trigger_price)&&typeof typeof d.tp_trigger_price<"u"&&(P=2),br!==Number(d.sl_trigger_price)&&typeof d.sl_trigger_price<"u"&&(P=3),typeof d.tp_order_price<"u"&>!==OrderType.MARKET&>!==Number(d.tp_order_price)&&(P=4),typeof d.sl_order_price<"u"&&ft!==OrderType.MARKET&&ft!==Number(d.sl_order_price)&&(P=5);}return P===1&&!d.tp_trigger_price&&!d.sl_trigger_price&&(P=-1),P},[d.tp_trigger_price,d.tp_order_price,d.sl_trigger_price,d.sl_order_price,d.quantity,o,r]),De=useMemo(()=>o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL&&Number(d.quantity)<v&&!d.tp_trigger_price&&!d.sl_trigger_price?false:J>0&&!!d.quantity&&!g,[d.quantity,v,J,g]),D=()=>o?.algo_order_id&&o?.symbol?c(o?.algo_order_id,o?.symbol):Promise.reject("order id or symbol is invalid"),xe=async()=>{try{if(await T())return typeof e.onConfirm!="function"||!s?O({accountId:t.account_id}).then(()=>!0).catch(P=>{throw P?.message&&toast.error(P.message),!1}):e.onConfirm(d,{position:t,submit:O,cancel:D})}catch(F){return Promise.reject(F)}};return {isEditing:r,symbolInfo:l[n],maxQty:v,setQuantity:E,orderQuantity:d.quantity,TPSL_OrderEntity:d,setOrderValue:m,setPnL:h,setOrderPrice:C,onSubmit:xe,valid:De,errors:g,status:{isCreateMutating:u,isUpdateMutating:x},position:t,setValues:f}};var Pe=e=>{let{onCancel:t,onComplete:o,close:r,...i}=e,n=Mt(i);return jsx(Et,{...n,onCancel:t,onComplete:o,close:r})},Ae="TPSLSheetId",le="TPSLDialogId";registerSimpleSheet(Ae,Pe);registerSimpleDialog(le,Pe,{classNames:{content:"oui-w-[420px]"}});var zo=e=>{let{position:t,order:o,baseDP:r,quoteDP:i,buttonProps:n,isEditing:l}=e,[a]=useLocalStorage("orderly_order_confirm",true),{t:s}=useTranslation(),d=l?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0;return jsx(Box,{onClick:()=>{modal.show(le,{order:o,position:t,baseDP:r,quoteDP:i,positionType:d?PositionType.FULL:PositionType.PARTIAL,isEditing:l,onConfirm:(c,m)=>{if(!a)return Promise.resolve(true);let f=Math.abs(Number(t.position_qty));if(`${c.tp_trigger_price??""}`.length===0&&`${c.sl_trigger_price??""}`.length===0)return modal.confirm({title:s("orders.cancelOrder"),content:s("tpsl.cancelOrder.description"),onOk:()=>m.cancel()}).then(()=>true,()=>Promise.reject(false));let T=l||!!c&&c.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL&&c.quantity===f;return modal.confirm({title:s(T?"orders.editOrder":"tpsl.confirmOrder"),onOk:async()=>{try{let g=await m.submit({accountId:t.account_id});return g.success?g:(g.message&&toast.error(g.message),!1)}catch(g){return g?.message&&toast.error(g.message),false}},classNames:{body:"!oui-pb-0"},content:jsx(H,{isPositionTPSL:d,isEditing:T,symbol:c.symbol,qty:Number(c.quantity),maxQty:f,tpPrice:Number(c.tp_trigger_price),slPrice:Number(c.sl_trigger_price),side:c.side,orderInfo:c,quoteDP:i??2,baseDP:r??2})}).then(()=>true,()=>Promise.reject(false))}});},className:"oui-cursor-pointer",children:e.children||jsx(Button,{variant:"outlined",size:"sm",color:"secondary",...n,children:e.label})})};var Ko=e=>{let {position:t,order:o,symbolInfo:r,isEditing:i}=e,{resolve:n,hide:l,updateArgs:a}=useModal(),[s]=useLocalStorage("orderly_order_confirm",true),{t:d}=useTranslation(),O=i?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0,m=()=>{n(),l();},{quote_dp:f,base_dp:T}=r;return jsx(Fragment,{children:jsx(Pe,{...e,positionType:e.positionType??(O?PositionType.FULL:PositionType.PARTIAL),onComplete:m,onConfirm:(g,u)=>{if(!s)return Promise.resolve(true);let x=Math.abs(Number(t.position_qty)),E=i||!!g&&g.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL&&g.quantity===x;return modal.confirm({title:d(E?"orders.editOrder":"tpsl.confirmOrder"),bodyClassName:"oui-pb-0 lg:oui-pb-0",onOk:async()=>{try{let C=await u.submit({accountId:t.account_id});return C.success?C:(C.message&&toast.error(C.message),!1)}catch(C){return C?.message&&toast.error(C.message),false}},content:jsx(H,{isPositionTPSL:O,isEditing:i,symbol:g.symbol,qty:Number(g.quantity),maxQty:x,tpPrice:Number(g.tp_trigger_price),slPrice:Number(g.sl_trigger_price),side:g.side,quoteDP:f??2,baseDP:T??2,orderInfo:g})}).then(()=>true,C=>(C?.message&&toast.error(C.message),Promise.reject(false)))},onCancel:()=>{l();}})})};var Gt=e=>{let{t}=useTranslation(),{errors:o,validated:r}=e.metaState,{formattedOrder:i,setValue:n,symbolInfo:l,setValues:a}=e,[s,d]=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??""}),[O,c]=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(()=>{d(m=>({...m,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(()=>{c(m=>({...m,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",{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(Xo,{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(ee,{order:i,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:()=>{n("side",OrderSide.BUY);},size:"sm",fullWidth:true,"data-type":OrderSide.BUY,className:cn$1(i.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:()=>{n("side",OrderSide.SELL);},"data-type":OrderSide.SELL,fullWidth:true,size:"sm",className:cn$1(i.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(ie,{value:i.position_type??PositionType.PARTIAL,onChange:(m,f)=>{if(f===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}n("position_type",f);}}),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:[jsx(oe,{rootOrderPrice:i.order_price,symbol:l.symbol,type:"tp",values:s,errors:r?o:null,quote_dp:l.quote_dp,hideOrderPrice:i.position_type===PositionType.FULL,onChange:(m,f)=>{n(m,f);},positionType:i.position_type??PositionType.PARTIAL}),jsx(oe,{rootOrderPrice:i.order_price,symbol:l.symbol,type:"sl",values:O,hideOrderPrice:i.position_type===PositionType.FULL,errors:r?o:null,quote_dp:l.quote_dp,positionType:i.position_type??PositionType.PARTIAL,onChange:(m,f)=>{n(m,f);}})]}),jsx(_e,{tp_pnl:i.tp_pnl,sl_pnl:i.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(i.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")})]})]})},Xo=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 Kt=(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},jt=e=>{let{order:t,setOrderValue:o,onClose:r}=e,[i,n]=useState(null),{formattedOrder:l,setValue:a,setValues:s,helper:d,symbolInfo:O,metaState:c,...m}=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:Kt(t,"tp"),sl_enable:Kt(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:O,setValue:a,setValues:s,onSubmit:()=>{d.validate().then(()=>{e.onSubmit(l);}).catch(T=>{});},onClose:r,metaState:c}};var Yt=e=>{let t=jt({order:e.order,setOrderValue:e.setOrderValue,onSubmit:e.onSubmit,onClose:e.onClose});return jsx(Gt,{...t})},ii="TPSLAdvancedSheetId",ni="TPSLAdvancedDialogId";registerSimpleSheet(ii,Yt,{title:()=>i18n.t("common.settings")});registerSimpleDialog(ni,Yt,{title:()=>i18n.t("common.settings")});var Jt=e=>{let{position:t}=e,o=t.symbol,r=useSymbolsInfo()[o],[i]=useLocalStorage("orderly_order_confirm",true),{isMobile:n}=useScreen(),{t:l}=useTranslation(),[a,s]=useState([]),[d,O]=useState([]),[c,{cancelAlgoOrder:m,cancelPostionOrdersByTypes:f,refresh:T}]=useOrderStream({symbol:t.symbol,status:OrderStatus.INCOMPLETE,includes:[AlgoOrderRootType.POSITIONAL_TP_SL,AlgoOrderRootType.TP_SL],size:500},{keeplive:true}),g=async h=>await m(h.algo_order_id,h.symbol),u=async()=>await f(o,[AlgoOrderRootType.TP_SL]),x=({order:h,positionType:v,isEditing:J})=>{let De=n?Ae:le;modal.show(De,{order:h,position:t,positionType:v,isEditing:J,onConfirm:(D,xe)=>{if(!i)return Promise.resolve(true);let F=Math.abs(Number(t.position_qty));return `${D.tp_trigger_price??""}`.length===0&&`${D.sl_trigger_price??""}`.length===0?modal.confirm({title:l("orders.cancelOrder"),content:l("tpsl.cancelOrder.description"),onOk:()=>xe.cancel()}).then(()=>true,()=>Promise.reject(false)):modal.confirm({title:l(J?"orders.editOrder":"tpsl.confirmOrder"),onOk:async()=>{try{let P=await xe.submit({accountId:t.account_id});return P.success?P:(P.message&&toast.error(P.message),!1)}catch(P){return P?.message&&toast.error(P.message),false}},classNames:{body:"!oui-pb-0"},content:jsx(H,{isPositionTPSL:v===PositionType.FULL,isEditing:J,symbol:D.symbol,qty:Number(D.quantity),maxQty:F,tpPrice:Number(D.tp_trigger_price),slPrice:Number(D.sl_trigger_price),side:D.side,orderInfo:D,quoteDP:r("quote_dp")??2,baseDP:r("base_dp")??2})}).then(()=>true,()=>Promise.reject(false))}});},E=(h,v)=>{x({order:h,positionType:v,isEditing:true});},C=h=>{x({positionType:h,isEditing:false});};return useEffect(()=>{if(c){let{fullPositionOrder:h,partialPositionOrders:v}=findPositionTPSLFromOrders(c,o);s(h?[h]:[]),O(v??[]);}},[c,o]),{symbolInfo:r,position:t,symbol:o,fullPositionOrders:a,partialPositionOrders:d,cancelPostionOrdersByTypes:f,onCancelOrder:g,onCancelAllTPSLOrders:u,editTPSLOrder:E,addTPSLOrder:C}};var er=createContext({}),tr=e=>{let t=useSymbolsInfo()[e.symbol];return jsx(er.Provider,{value:{base_dp:t("base_dp"),quote_dp:t("quote_dp"),position:e.position},children:e.children})},$=()=>useContext(er);var I=e=>jsx(Flex,{direction:"column",justify:"center",itemAlign:"start",className:"oui-text-2xs oui-h-[36px]",children:e.children});var tt=({order:e})=>{let{position:t,base_dp:o,quote_dp:r}=$(),{tp_trigger_price:i,sl_trigger_price:n}=findTPSLFromOrder(e),l,a,s=new Decimal(e.quantity).eq(0)?t.position_qty:e.quantity;return i&&(l=new Decimal(positions.unrealizedPnL({qty:s,openPrice:t?.average_open_price,markPrice:i})).abs().toNumber()),n&&(a=new Decimal(positions.unrealizedPnL({qty:s,openPrice:t?.average_open_price,markPrice:n})).abs().mul(-1).toNumber()),jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[l&&jsx(I,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:l})}),a&&jsx(I,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:a})})]})};var rt=({order:e})=>{let{quote_dp:t}=$(),{tp_order_price:o,sl_order_price:r}=findTPSLOrderPriceFromOrder(e),{t:i}=useTranslation();return jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(I,{children:o===OrderType.MARKET?jsx(Text,{children:i("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})}),r&&jsx(I,{children:r===OrderType.MARKET?jsx(Text,{children:i("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})})]})};var ot=({order:e})=>{let{position:t,base_dp:o}=$(),{tp_trigger_price:r,sl_trigger_price:i}=findTPSLFromOrder(e);return jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",className:"oui-h-full oui-text-2xs",children:[jsx(I,{children:jsx(Text.numeral,{dp:o,rm:Decimal.ROUND_DOWN,padding:false,children:e.quantity===0?t.position_qty:e.quantity})}),r&&i&&jsx(I,{children:jsx("div",{})})]})};var st=({order:e})=>{let{quote_dp:t}=$(),{tp_trigger_price:o,sl_trigger_price:r}=findTPSLFromOrder(e),{t:i}=useTranslation();return jsxs(Flex,{gap:1,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(I,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:i("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})]})}),r&&jsx(I,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:i("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})]})})]})};var lt=({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(I,{children:jsx(Text,{className:"oui-text-trade-profit",children:r("tpsl.tp")})}),o&&jsx(I,{children:jsx(Text,{className:"oui-text-trade-loss",children:r("tpsl.sl")})})]})};var we=e=>{let{t}=useTranslation(),{isMobile:o}=useScreen(),{onCancelOrder:r}=e;return useMemo(()=>{let n=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:"oui-py-2",render:(a,s)=>jsx(ot,{order:s})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(a,s)=>jsx(lt,{order:s})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(a,s)=>jsx(st,{order:s})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-py-2",render:(a,s)=>jsx(rt,{order:s})},{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,s)=>jsx(tt,{order:s})}],l=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:cn$1(" oui-py-2 !oui-pl-5"),render:(a,s)=>jsx(ot,{order:s})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(a,s)=>jsx(lt,{order:s})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(a,s)=>jsx(st,{order:s})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-pl-1 oui-py-2",render:(a,s)=>jsx(rt,{order:s})},{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,s)=>jsx(tt,{order:s})},{title:"",dataIndex:"delete",width:50,className:cn$1("oui-py-2 !oui-pr-5"),render:(a,s)=>jsx(ji,{order:s,onCancelOrder:r})}];return o?n:l},[t,o])};var Ki=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"})})},ji=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(()=>{},i=>{toast.error(i.message);}).finally(()=>{o(false);});},children:jsx(Ki,{className:"oui-text-base-contrast-54 hover:oui-text-base-contrast oui-cursor-pointer"})})};var dt=e=>{let{orders:t}=e,o=we({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 ut=e=>{let{t}=useTranslation(),{orders:o}=e,r=we({onCancelOrder:()=>Promise.resolve()}),i=useMemo(()=>o.reduce((n,l)=>(n[l.algo_order_id]=true,n),{}),[o]);return jsx(AuthGuardDataTable,{columns:r,dataSource:o,expanded:i,bordered:true,getRowCanExpand:()=>true,expandRowRender:n=>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(n.original),children:t("common.edit")}),jsx(nn,{order:n.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:n=>n.algo_order_id})},nn=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:i=>{i.stopPropagation(),o(true),e.onCancelOrder?.(e.order).then(()=>{},n=>{toast.error(n.message);}).finally(()=>{o(false);});},children:r("common.delete")})};var fr=e=>{let{isMobile:t}=useScreen(),{position:o,fullPositionOrders:r,partialPositionOrders:i,onCancelOrder:n,onCancelAllTPSLOrders:l,editTPSLOrder:a,addTPSLOrder:s,symbolInfo:d}=e;return jsx(Box,{children:jsxs(ScrollArea,{className:cn$1(t&&"oui-h-[calc(100vh-100px)]"),children:[jsx(ee,{order:{symbol:o.symbol,order_quantity:o.position_qty.toString(),order_price:o.average_open_price.toString()},baseDP:d("base_dp"),quoteDP:d("quote_dp"),classNames:{root:cn$1("oui-mb-6 oui-gap-3 oui-px-5"),container:"oui-gap-x-[30px]"}}),jsx(cn,{position:o,orders:r,onCancelOrder:n,onCancelAllTPSLOrders:l,editTPSLOrder:a,addTPSLOrder:s}),jsx(mn,{position:o,orders:i,onCancelOrder:n,onCancelAllTPSLOrders:l,editTPSLOrder:a,addTPSLOrder:s})]})})},cn=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:i}=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(Pr,{positionType:PositionType.FULL,open:t,onOpenChange:o}),r&&r.length===0&&jsx(Flex,{gap:2,children:jsx(yr,{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:i?jsx(ut,{orders:r,editTPSLOrder:n=>e.editTPSLOrder(n,PositionType.FULL),canCancelOrder:e.onCancelOrder}):jsx(dt,{orders:r,editTPSLOrder:n=>{e.editTPSLOrder(n,PositionType.FULL);},onCancelOrder:e.onCancelOrder})})]})},mn=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:i}=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",i?"oui-flex-col oui-items-start oui-justify-start oui-gap-[11px]":"oui-flex-row oui-items-center oui-justify-between"),children:[jsx(Pr,{positionType:PositionType.PARTIAL,open:t,onOpenChange:o}),jsxs(Flex,{gap:2,children:[jsx(yr,{positionType:PositionType.PARTIAL,position:e.position,addTPSLOrder:e.addTPSLOrder}),r&&r.length>0&&jsx(gn,{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:i?jsx(ut,{orders:r,editTPSLOrder:n=>e.editTPSLOrder(n,PositionType.PARTIAL),canCancelOrder:e.onCancelOrder}):jsx(dt,{className:"oui-h-[300px]",orders:r,editTPSLOrder:n=>{e.editTPSLOrder(n,PositionType.PARTIAL);},onCancelOrder:e.onCancelOrder})})]})},Pr=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})})]})},yr=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")})},gn=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(()=>{},i=>{toast.error(i.message);}).finally(()=>{o(false);});},children:r("tpsl.cancelAll")})};var xr=e=>{let t=Jt(e);return jsx(tr,{symbol:e.position.symbol,position:e.position,children:jsx(fr,{...t})})},yn="TPSLDetailDialogId ",Tn="TPSLDetailSheetId";registerSimpleDialog(yn,xr,{classNames:{content:"oui-w-[420px] lg:oui-pt-4 lg:oui-pb-2 !oui-px-0",body:"lg:oui-py-0"}});registerSimpleSheet(Tn,xr,{classNames:{content:"!oui-p-0"}});
|
|
12
|
+
var ne=e=>{let{t}=useTranslation(),{order:o}=e,{symbol:r,side:i}=o,s=useMarkPrice(r),a=useIndexPrice(r),n=useSymbolLeverage(r);return jsxs(Flex,{direction:"column",itemAlign:"start",className:cn("oui-w-full oui-gap-3 oui-font-semibold ",e.classNames?.root),children:[jsxs(Flex,{itemAlign:"center",className:cn("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("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:a?.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:s?.data})]})]})]})};var Ne=e=>{let{t}=useTranslation(),{tp_pnl:o,sl_pnl:r}=e,i=useMemo(()=>{if(o&&r){let s=new Decimal(o).div(r).abs().toNumber().toFixed(2);return jsxs(Flex,{gap:1,itemAlign:"center",className:"oui-text-base-contrast-80",children:[jsx(Text,{children:s}),jsx(Text,{className:"oui-text-base-contrast-36",children:"x"})]})}return jsx(Text,{className:"oui-text-base-contrast-36",children:"-- x"})},[o,r]);return jsxs(Flex,{direction:"column",itemAlign:"start",className:cn("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:i})]})]})};var je=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});var Ft=e=>{let{type:t,values:o}=e,[r,i]=useLocalStorage("TP/SL_Mode","Offset%"),[s,a]=useState(true),{t:n}=useTranslation(),l=useMemo(()=>{switch(r){case "Offset":return `${t.toLowerCase()}_offset`;case "Offset%":return `${t.toLowerCase()}_offset_percentage`;default:return `${t.toLowerCase()}_pnl`}},[r]),P=useMemo(()=>o[r],[o,r]),T=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]),p=useRef(""),c=d=>{e.onChange(l,d);},g=d=>{let{dp:f=2}=d;return {onRenderBefore:(u,y)=>(u=`${u}`,s&&t==="SL"&&r==="PnL"&&(u=u.startsWith("-")?u:"-"+u),u===""||u==="-"?"":r==="Offset%"?`${new Decimal(u.replace(new RegExp(p.current.replace(".","\\.")+"$"),"")).mul(100).todp(2,4).toString()}${p.current}`:(r==="Offset"&&(u=todpIfNeed(u,f)),`${u}`)),onSendBefore:u=>{if(/^\-?0{2,}$/.test(u))return "0";if(r==="Offset%"){if(u!==""){u=todpIfNeed(u,2);let y=u.match(/\.0{0,2}$/);y?p.current=y[0]:p.current="",u=new Decimal(u).div(100).toString(),u=`${u}${p.current}`;}}else r==="PnL"&&t==="SL"&&s?u=u.startsWith("-")?u:"-"+u:u=todpIfNeed(u,f);return u===""||u==="-"?"":u}}};return {mode:r,modes:T,type:e.type,formatter:g,onModeChange:d=>{i(d);},value:P,pnl:o.PnL,onValueChange:c,quote_dp:e.quote_dp,setFocus:a}};var Et=e=>{let{mode:t,modes:o,onModeChange:r,onValueChange:i,quote:s,quote_dp:a,value:n,pnl:l}=e,{t:P}=useTranslation(),[T,p]=useState(t),[c,g]=useState(t==="Offset%"?"%":s),d=useMemo(()=>{let f=Number(l);if(isNaN(f)||f===0)return "";if(f>0)return "oui-text-trade-profit";if(f<0)return "oui-text-trade-loss"},[l]);return useEffect(()=>{let f=o.find(u=>u.value===t)?.label;p(f),g(t==="Offset%"?"%":s);},[t,o]),jsx(Input,{prefix:T,size:{initial:"lg",lg:"md"},placeholder:c,align:"right",value:n,"data-testid":e.testId,autoComplete:"off",onValueChange:i,formatters:[e.formatter({dp:a,mode:t}),inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],classNames:{input:cn("oui-text-2xs",d),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%"?"%":s),e.setFocus(false);},suffix:jsxs(Fragment,{children:[t==="Offset%"&&!!n&&jsx(Text,{size:"2xs",color:"inherit",className:cn("oui-ml-[2px]",d),children:"%"}),jsx(co,{mode:t,modes:o,onModeChange:f=>r(f.value)})]})})},co=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 qt=e=>{let{testId:t,quote:o,...r}=e,i=Ft(r);return jsx(Et,{...i,testId:t,quote:o})};var kt=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,i)=>{let s={[OrderType.LIMIT]:t("orderEntry.orderType.limit"),[OrderType.MARKET]:t("common.marketPrice")}[r];return jsx(Text,{size:"2xs",children:s})}})};var Je=e=>{let{t}=useTranslation(),{parseErrorMsg:o}=useOrderEntryFormErrorMsg(e.errors),{values:r,positionType:i}=e,s=useSymbolLeverage(e.symbol),a=useMemo(()=>{let n=null;if(!e.rootOrderPrice||!r.trigger_price&&!r.order_price)return null;let l=new Decimal(0);if(r.order_type===OrderType.MARKET){if(!r.trigger_price)return null;l=new Decimal(r.trigger_price);}else if(r.order_type===OrderType.LIMIT){if(!r.order_price)return null;l=new Decimal(r.order_price);}let P=new Decimal(e.rootOrderPrice);return n=l.minus(P).div(P).mul(s).abs().mul(100).mul(e.type==="tp"?1:-1).toNumber(),n},[r,e.rootOrderPrice,s,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:[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:"oui-ml-1 oui-cursor-pointer oui-text-sm 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("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(Xe,{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(qt,{type:e.type==="tp"?"TP":"SL",onChange:(n,l)=>{e.onChange(n,l);},quote:"USDC",quote_dp:2,values:r})]})]}),jsxs(Flex,{direction:"column",className:cn("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(Xe,{disabled:i===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(kt,{disabled:i===PositionType.FULL||e.disableOrderTypeSelector,type:r.order_type,onChange:n=>{e.onChange(`${e.type}_order_type`,n);}})]})]})]}),jsx(Lo,{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"})]})},Lo=e=>{let{t}=useTranslation(),{price:o,pnl:r,roi:i,dp:s,className:a,orderType:n}=e;return !i||!o||!r?null:jsx(Text,{className:cn("oui-text-2xs oui-text-base-contrast-36",a),children:jsx(Trans,{i18nKey:"tpsl.advanced.ROI",components:[jsx(Fragment$1,{children:jsx(Text.numeral,{className:"oui-px-1 oui-text-base-contrast",dp:s,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:i})},"roi")]})})};var ue=e=>{let t=je(e);return jsx(Je,{...t})};var Ut=e=>({value:e.value,onChange:e.onChange,disableSelector:e.disableSelector});var Fo="position_type",Wt=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(Fo,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 de=e=>{let t=Ut(e);return jsx(Wt,{...t})};var we=e=>{let t=useRef(null),o=convertValueToPercentage(e.quantity,0,e.maxQty)/100,{t:r}=useTranslation(),i=a=>{let n=a;Number(a)>e.maxQty&&(n=e.maxQty.toString()),e.baseTick>0&&e.onQuantityChange?.(utils.formatNumber(n,e.baseTick)??a);},s=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("oui-bg-base-5 oui-outline-line-12",s&&"oui-outline-danger")},tooltipProps:{content:{className:"oui-bg-base-6 oui-text-base-contrast-80"},arrow:{className:"oui-fill-base-6"}},tooltip:s,color:s?"danger":void 0,formatters:[inputFormatter.dpFormatter(e.dp),inputFormatter.numberFormatter,inputFormatter.currencyFormatter,inputFormatter.decimalPointFormatter],onValueChange:a=>{e.onQuantityChange?.(a);let n=Number(a);if(n&&n>e.maxQty){let l=e.maxQty;e.onQuantityChange?.(l),t.current?.blur();}},onBlur:a=>i(a.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:a=>{i(`${a}`);},onValueChange:a=>{e.onQuantityChange?.(a);}})}),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 Ht=e=>{let{TPSL_OrderEntity:t,symbolInfo:o,onCancel:r,onComplete:i,status:s,errors:a,valid:n,position:l,setValues:P,onClose:T,isEditing:p}=e,{t:c}=useTranslation(),{isMobile:g}=useScreen(),{parseErrorMsg:d}=useOrderEntryFormErrorMsg(a),f=()=>t.position_type===PositionType.FULL?null:jsx(Box,{className:"oui-px-0.5",children:jsx(we,{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:d("quantity")})});return jsxs("div",{id:"orderly-tp_sl-order-edit-content",children:[jsxs(ScrollArea,{className:cn(g&&"oui-h-[calc(100vh-200px)]"),children:[jsx(ne,{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:[!p&&jsx(de,{disableSelector:true,value:t.position_type??PositionType.PARTIAL,onChange:(u,y)=>{y===PositionType.FULL?P({position_type:y,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:""}):P({position_type:y,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")})]}),f(),jsxs(Flex,{direction:"column",itemAlign:"start",justify:"start",gap:6,className:"oui-w-full oui-mt-3",children:[jsx(ue,{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:a,disableOrderTypeSelector:p,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,onChange:(u,y)=>{e.setOrderValue(u,y);}}),jsx(ue,{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:a,quote_dp:o("quote_dp"),positionType:t.position_type??PositionType.PARTIAL,disableOrderTypeSelector:p,onChange:(u,y)=>{e.setOrderValue(u,y);}})]}),jsx(Ne,{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:!e.valid||s.isCreateMutating,loading:s.isCreateMutating||s.isUpdateMutating,onClick:()=>{e.onSubmit().then(()=>{e.close?.(),i?.();}).catch(u=>{});},children:c("common.confirm")})]})]})},Xe=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]})},re=e=>{let{symbol:t,tpPrice:o,slPrice:r,qty:i,maxQty:s,side:a,quoteDP:n,baseDP:l,isEditing:P,isPositionTPSL:T,orderInfo:p}=e,{t:c}=useTranslation(),[g,d]=useLocalStorage("orderly_order_confirm",true),f=()=>p.position_type===PositionType.FULL?jsx(Text,{children:c("tpsl.positionType.full")}):jsx(Text,{children:c("tpsl.positionType.partial")}),u=({price:D,isOrderPrice:C,isEnable:O,colorType:M})=>O?!D&&C?jsx(Text,{className:"oui-text-base-contrast-36",children:c("common.market")}):jsx(Text.numeral,{unit:"USDC",rule:"price",className:cn("oui-text-base-contrast",M==="TP"?"oui-text-trade-profit":"oui-text-trade-loss"),unitClassName:"oui-text-base-contrast-36 oui-ml-1",dp:n,padding:false,children:D}):jsx(Text,{className:"oui-text-base-contrast-36",children:"-- USDC"}),y=T;return jsxs(Fragment,{children:[P&&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:[y&&jsx(Badge,{size:"xs",color:"primary",children:c("common.position")}),jsx(ei,{tpPrice:o,slPrice:r}),a===OrderSide.SELL?jsx(Badge,{size:"xs",color:"success",children:c("common.buy")}):jsx(Badge,{size:"xs",color:"danger",children:c("common.sell")})]})]}),jsx(Divider,{}),p.tp_trigger_price||p.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:f()}),jsxs(Flex,{justify:"between",children:[jsx(Text,{children:c("common.orderQty")}),jsx(Text.numeral,{rule:"price",dp:l,padding:false,className:"oui-text-base-contrast",children:p.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")})," ",u({price:p.tp_trigger_price??"",isOrderPrice:false,isEnable:!!p.tp_trigger_price,colorType:"TP"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:c("tpsl.tpOrderPrice")}),u({price:p.tp_order_price??"",isOrderPrice:true,isEnable:!!p.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")}),u({price:p.sl_trigger_price??"",isOrderPrice:false,isEnable:!!p.sl_trigger_price,colorType:"SL"})]}),jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{children:c("tpsl.slOrderPrice")}),u({price:p.sl_order_price??"",isOrderPrice:true,isEnable:!!p.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:D=>{d(!D);}}),jsx("label",{htmlFor:"disabledConfirm",className:textVariants({size:"xs",intensity:54,className:"oui-ml-1"}),children:c("orderEntry.disableOrderConfirm")})]})})]})},ei=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};var tr=e=>{let{symbol:t,order:o,isEditing:r,positionType:i,triggerPrice:s,type:a,withTriggerPrice:n}=e,{t:l}=useTranslation();if(r&&!o)throw new SDKError("order is required when isEditing is true");let P=useSymbolsInfo();useRef(AlgoOrderRootType.TP_SL);let [{rows:p}]=usePositionStream(),[c]=useLocalStorage("orderly_order_confirm",true),g=p.find(_=>_.symbol===t);if(!g)throw new SDKError("position not found");let[d,{submit:f,deleteOrder:u,setValue:y,setValues:D,validate:C,errors:O,isCreateMutating:M,isUpdateMutating:ye}]=useTPSLOrder({symbol:t,position_qty:g?.position_qty??0,average_open_price:g?.average_open_price??0},{defaultOrder:o,positionType:s?PositionType.PARTIAL:i,tpslEnable:{tp_enable:n?a==="tp":true,sl_enable:n?a==="sl":true},isEditing:r}),k=_=>{y("quantity",_);},$e=(_,N)=>{y(_,N);},B=(_,N)=>{y(_,N);},L=useMemo(()=>Math.abs(Number(g.position_qty)),[g.position_qty]),Ct=useMemo(()=>{let _=o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL?L:o?.quantity,N=0;if((Number(d.quantity)!==_||!r&&d.quantity)&&(N=1),o&&r){let{tp_trigger_price:Ke,sl_trigger_price:W}=utils.findTPSLFromOrder(o),{tp_order_price:ht,sl_order_price:It}=utils.findTPSLOrderPriceFromOrder(o);Ke!==Number(d.tp_trigger_price)&&typeof typeof d.tp_trigger_price<"u"&&(N=2),W!==Number(d.sl_trigger_price)&&typeof d.sl_trigger_price<"u"&&(N=3),typeof d.tp_order_price<"u"&&ht!==OrderType.MARKET&&ht!==Number(d.tp_order_price)&&(N=4),typeof d.sl_order_price<"u"&&It!==OrderType.MARKET&&It!==Number(d.sl_order_price)&&(N=5);}return N===1&&!d.tp_trigger_price&&!d.sl_trigger_price&&(N=-1),N},[d.tp_trigger_price,d.tp_order_price,d.sl_trigger_price,d.sl_order_price,d.quantity,o,r]),zr=useMemo(()=>o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL&&Number(d.quantity)<L&&!d.tp_trigger_price&&!d.sl_trigger_price?false:Ct>0&&!!d.quantity&&!O,[d.quantity,L,Ct,O]);useEffect(()=>{n&&s&&(y(a==="tp"?"tp_trigger_price":"sl_trigger_price",s),e.qty&&y("quantity",e.qty));},[a,s,e.qty]);let Vr=()=>o?.algo_order_id&&o?.symbol?u(o?.algo_order_id,o?.symbol):Promise.reject("order id or symbol is invalid"),Ur=(_,N)=>{if(!c)return Promise.resolve(true);let Ke=Math.abs(Number(g.position_qty));return `${_.tp_trigger_price??""}`.length===0&&`${_.sl_trigger_price??""}`.length===0?modal.confirm({title:l("orders.cancelOrder"),content:l("tpsl.cancelOrder.description"),onOk:()=>N.cancel()}).then(()=>true,()=>Promise.reject(false)):modal.confirm({title:l("tpsl.confirmOrder"),onOk:async()=>{try{let W=await N.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(re,{isPositionTPSL:i===PositionType.FULL,isEditing:false,symbol:_.symbol,qty:Number(_.quantity),maxQty:Ke,tpPrice:Number(_.tp_trigger_price),slPrice:Number(_.sl_trigger_price),side:_.side,orderInfo:_,quoteDP:P[t]("quote_dp")??2,baseDP:P[t]("base_dp")??2})}).then(()=>true,()=>Promise.reject(false))},Qr=async()=>{try{if(await C())return c?Ur(d,{position:g,submit:f,cancel:Vr}):f({accountId:g.account_id}).then(()=>!0).catch(N=>{throw N?.message&&toast.error(N.message),!1})}catch(_){return Promise.reject(_)}};return {isEditing:r,symbolInfo:P[t],maxQty:L,setQuantity:k,orderQuantity:d.quantity,TPSL_OrderEntity:d,setOrderValue:y,setPnL:B,setOrderPrice:$e,onSubmit:Qr,valid:zr,errors:O,status:{isCreateMutating:M,isUpdateMutating:ye},position:g,setValues:D}};var Se=e=>{let{onCancel:t,onComplete:o,close:r,...i}=e,s=tr(i);return jsx(Ht,{...s,onCancel:t,onComplete:o,close:r})},Ee="TPSLSheetId",me="TPSLDialogId";registerSimpleSheet(Ee,Se);registerSimpleDialog(me,Se,{classNames:{content:"oui-w-[420px]"}});var Ti=e=>{let{position:t,order:o,baseDP:r,quoteDP:i,buttonProps:s,isEditing:a}=e,[n]=useLocalStorage("orderly_order_confirm",true),{t:l}=useTranslation(),P=a?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0;return jsx(Box,{onClick:()=>{modal.show(me,{order:o,symbol:t.symbol,baseDP:r,quoteDP:i,positionType:P?PositionType.FULL:PositionType.PARTIAL,isEditing:a});},className:"oui-cursor-pointer",children:e.children||jsx(Button,{variant:"outlined",size:"sm",color:"secondary",...s,children:e.label})})};var Oi=e=>{let {position:t,order:o,symbolInfo:r,isEditing:i}=e,{resolve:s,hide:a,updateArgs:n}=useModal(),[l]=useLocalStorage("orderly_order_confirm",true),{t:P}=useTranslation(),T=i?o?.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL:void 0,c=()=>{s(),a();},{quote_dp:g,base_dp:d}=r;return jsx(Fragment,{children:jsx(Se,{...e,positionType:e.positionType??(T?PositionType.FULL:PositionType.PARTIAL),onComplete:c,onConfirm:(f,u)=>{if(!l)return Promise.resolve(true);let y=Math.abs(Number(t.position_qty)),D=i||!!f&&f.algo_type===AlgoOrderRootType.POSITIONAL_TP_SL&&f.quantity===y;return modal.confirm({title:P(D?"orders.editOrder":"tpsl.confirmOrder"),bodyClassName:"oui-pb-0 lg:oui-pb-0",onOk:async()=>{try{let C=await u.submit({accountId:t.account_id});return C.success?C:(C.message&&toast.error(C.message),!1)}catch(C){return C?.message&&toast.error(C.message),false}},content:jsx(re,{isPositionTPSL:T,isEditing:i,symbol:f.symbol,qty:Number(f.quantity),maxQty:y,tpPrice:Number(f.tp_trigger_price),slPrice:Number(f.sl_trigger_price),side:f.side,quoteDP:g??2,baseDP:d??2,orderInfo:f})}).then(()=>true,C=>(C?.message&&toast.error(C.message),Promise.reject(false)))},onCancel:()=>{a();}})})};var ur=e=>{let{t}=useTranslation(),{errors:o,validated:r}=e.metaState,{formattedOrder:i,setValue:s,symbolInfo:a,setValues:n}=e,[l,P]=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??""}),[T,p]=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(()=>{P(c=>({...c,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(()=>{p(c=>({...c,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",{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(ne,{order:i,baseDP:a.base_dp,quoteDP:a.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:()=>{s("side",OrderSide.BUY);},size:"sm",fullWidth:true,"data-type":OrderSide.BUY,className:cn(i.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:()=>{s("side",OrderSide.SELL);},"data-type":OrderSide.SELL,fullWidth:true,size:"sm",className:cn(i.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(de,{value:i.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}s("position_type",g);}}),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:[jsx(ue,{rootOrderPrice:i.order_price,symbol:a.symbol,type:"tp",values:l,errors:r?o:null,quote_dp:a.quote_dp,hideOrderPrice:i.position_type===PositionType.FULL,onChange:(c,g)=>{s(c,g);},positionType:i.position_type??PositionType.PARTIAL}),jsx(ue,{rootOrderPrice:i.order_price,symbol:a.symbol,type:"sl",values:T,hideOrderPrice:i.position_type===PositionType.FULL,errors:r?o:null,quote_dp:a.quote_dp,positionType:i.position_type??PositionType.PARTIAL,onChange:(c,g)=>{s(c,g);}})]}),jsx(Ne,{tp_pnl:i.tp_pnl,sl_pnl:i.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(i.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 dr=(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},pr=e=>{let{order:t,setOrderValue:o,onClose:r}=e,[i,s]=useState(null),{formattedOrder:a,setValue:n,setValues:l,helper:P,symbolInfo:T,metaState:p,...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:dr(t,"tp"),sl_enable:dr(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:a,symbolInfo:T,setValue:n,setValues:l,onSubmit:()=>{P.validate().then(()=>{e.onSubmit(a);}).catch(d=>{});},onClose:r,metaState:p}};var mr=e=>{let t=pr({order:e.order,setOrderValue:e.setOrderValue,onSubmit:e.onSubmit,onClose:e.onClose});return jsx(ur,{...t})},Ri="TPSLAdvancedSheetId",Ei="TPSLAdvancedDialogId";registerSimpleSheet(Ri,mr,{title:()=>i18n.t("common.settings")});registerSimpleDialog(Ei,mr,{title:()=>i18n.t("common.settings")});var fr=e=>{let{position:t}=e,o=t.symbol,r=useSymbolsInfo()[o],[i]=useLocalStorage("orderly_order_confirm",true),{isMobile:s}=useScreen(),{t:a}=useTranslation(),[n,l]=useState([]),[P,T]=useState([]),[p,{cancelAlgoOrder:c,cancelPostionOrdersByTypes:g,refresh:d}]=useOrderStream({symbol:t.symbol,status:OrderStatus.INCOMPLETE,includes:[AlgoOrderRootType.POSITIONAL_TP_SL,AlgoOrderRootType.TP_SL],size:500},{keeplive:true}),f=async O=>await c(O.algo_order_id,O.symbol),u=async()=>await g(o,[AlgoOrderRootType.TP_SL]),y=({order:O,positionType:M,isEditing:ye})=>{let k=s?Ee:me;modal.show(k,{order:O,symbol:t.symbol,positionType:M,isEditing:ye});},D=(O,M)=>{y({order:O,positionType:M,isEditing:true});},C=O=>{y({positionType:O,isEditing:false});};return useEffect(()=>{if(p){let{fullPositionOrder:O,partialPositionOrders:M}=findPositionTPSLFromOrders(p,o);l(O?[O]:[]),T(M??[]);}},[p,o]),{symbolInfo:r,position:t,symbol:o,fullPositionOrders:n,partialPositionOrders:P,cancelPostionOrdersByTypes:g,onCancelOrder:f,onCancelAllTPSLOrders:u,editTPSLOrder:D,addTPSLOrder:C}};var Pr=createContext({}),yr=e=>{let t=useSymbolsInfo()[e.symbol];return jsx(Pr.Provider,{value:{base_dp:t("base_dp"),quote_dp:t("quote_dp"),position:e.position},children:e.children})},Y=()=>useContext(Pr);var F=e=>jsx(Flex,{direction:"column",justify:"center",itemAlign:"start",className:"oui-text-2xs oui-h-[36px]",children:e.children});var dt=({order:e})=>{let{position:t,base_dp:o,quote_dp:r}=Y(),{tp_trigger_price:i,sl_trigger_price:s}=findTPSLFromOrder(e),a,n,l=new Decimal(e.quantity).eq(0)?t.position_qty:e.quantity;return i&&(a=new Decimal(positions.unrealizedPnL({qty:l,openPrice:t?.average_open_price,markPrice:i})).abs().toNumber()),s&&(n=new Decimal(positions.unrealizedPnL({qty:l,openPrice:t?.average_open_price,markPrice:s})).abs().mul(-1).toNumber()),jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[a&&jsx(F,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:a})}),n&&jsx(F,{children:jsx(Text.numeral,{dp:2,rm:Decimal.ROUND_DOWN,coloring:true,padding:false,children:n})})]})};var pt=({order:e})=>{let{quote_dp:t}=Y(),{tp_order_price:o,sl_order_price:r}=findTPSLOrderPriceFromOrder(e),{t:i}=useTranslation();return jsxs(Flex,{gap:2,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(F,{children:o===OrderType.MARKET?jsx(Text,{children:i("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})}),r&&jsx(F,{children:r===OrderType.MARKET?jsx(Text,{children:i("common.market")}):jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})})]})};var ct=({order:e})=>{let{position:t,base_dp:o}=Y(),{tp_trigger_price:r,sl_trigger_price:i}=findTPSLFromOrder(e);return jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",className:"oui-h-full oui-text-2xs",children:[jsx(F,{children:jsx(Text.numeral,{dp:o,rm:Decimal.ROUND_DOWN,padding:false,children:e.quantity===0?t.position_qty:e.quantity})}),r&&i&&jsx(F,{children:jsx("div",{})})]})};var ft=({order:e})=>{let{quote_dp:t}=Y(),{tp_trigger_price:o,sl_trigger_price:r}=findTPSLFromOrder(e),{t:i}=useTranslation();return jsxs(Flex,{gap:1,direction:"column",justify:"between",itemAlign:"start",className:"oui-text-2xs",children:[o&&jsx(F,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:i("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:o})]})}),r&&jsx(F,{children:jsxs(Flex,{direction:"column",justify:"start",itemAlign:"start",children:[jsx(Text,{className:"oui-text-base-contrast-36",children:i("common.market")}),jsx(Text.numeral,{dp:t,rm:Decimal.ROUND_DOWN,padding:false,children:r})]})})]})};var Pt=({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(F,{children:jsx(Text,{className:"oui-text-trade-profit",children:r("tpsl.tp")})}),o&&jsx(F,{children:jsx(Text,{className:"oui-text-trade-loss",children:r("tpsl.sl")})})]})};var Ue=e=>{let{t}=useTranslation(),{isMobile:o}=useScreen(),{onCancelOrder:r}=e;return useMemo(()=>{let s=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:"oui-py-2",render:(n,l)=>jsx(ct,{order:l})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(n,l)=>jsx(Pt,{order:l})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(n,l)=>jsx(ft,{order:l})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-py-2",render:(n,l)=>jsx(pt,{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:(n,l)=>jsx(dt,{order:l})}],a=[{title:t("tpsl.tpslDetail.qty"),dataIndex:"quantity",width:70,className:cn(" oui-py-2 !oui-pl-5"),render:(n,l)=>jsx(ct,{order:l})},{title:t("tpsl.tpslDetail.type"),dataIndex:"type",width:35,className:"oui-pl-1 oui-py-2",render:(n,l)=>jsx(Pt,{order:l})},{title:t("tpsl.tpslDetail.trigger"),dataIndex:"trigger",width:70,className:"oui-pl-1 oui-py-2",render:(n,l)=>jsx(ft,{order:l})},{title:t("tpsl.tpslDetail.price"),dataIndex:"price",width:70,className:"oui-pl-1 oui-py-2",render:(n,l)=>jsx(pt,{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:(n,l)=>jsx(dt,{order:l})},{title:"",dataIndex:"delete",width:50,className:cn("oui-py-2 !oui-pr-5"),render:(n,l)=>jsx(Os,{order:l,onCancelOrder:r})}];return o?s:a},[t,o])};var Ss=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"})})},Os=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(()=>{},i=>{toast.error(i.message);}).finally(()=>{o(false);});},children:jsx(Ss,{className:"oui-text-base-contrast-54 hover:oui-text-base-contrast oui-cursor-pointer"})})};var Tt=e=>{let{orders:t}=e,o=Ue({onCancelOrder:e.onCancelOrder});return jsx(AuthGuardDataTable,{columns:o,dataSource:t,className:"oui-bg-transparent oui-text-2xs",bordered:true,classNames:{root:cn(e.className),header:"!oui-bg-base-8",scroll:cn(!t||t.length===0?"!oui-min-h-[170px]":"!oui-min-h-[100px]")},onRow:r=>({className:cn("oui-h-[53px] oui-cursor-svg-edit !oui-border-none !oui-p-0"),onClick:()=>{e.editTPSLOrder(r);}})})};var xt=e=>{let{t}=useTranslation(),{orders:o}=e,r=Ue({onCancelOrder:()=>Promise.resolve()}),i=useMemo(()=>o.reduce((s,a)=>(s[a.algo_order_id]=true,s),{}),[o]);return jsx(AuthGuardDataTable,{columns:r,dataSource:o,expanded:i,bordered:true,getRowCanExpand:()=>true,expandRowRender:s=>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(s.original),children:t("common.edit")}),jsx(Ds,{order:s.original,onCancelOrder:e.canCancelOrder})]}),className:"oui-bg-transparent oui-px-2 oui-text-2xs",classNames:{scroll:cn(!o||o.length===0?"!oui-min-h-[170px]":"!oui-min-h-[100px]")},onRow:()=>({className:cn("oui-h-[53px] oui-cursor-svg-edit !oui-border-none !oui-p-0")}),generatedRowKey:s=>s.algo_order_id})},Ds=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:i=>{i.stopPropagation(),o(true),e.onCancelOrder?.(e.order).then(()=>{},s=>{toast.error(s.message);}).finally(()=>{o(false);});},children:r("common.delete")})};var Fr=e=>{let{isMobile:t}=useScreen(),{position:o,fullPositionOrders:r,partialPositionOrders:i,onCancelOrder:s,onCancelAllTPSLOrders:a,editTPSLOrder:n,addTPSLOrder:l,symbolInfo:P}=e;return jsx(Box,{children:jsxs(ScrollArea,{className:cn(t&&"oui-h-[calc(100vh-100px)]"),children:[jsx(ne,{order:{symbol:o.symbol,order_quantity:o.position_qty.toString(),order_price:o.average_open_price.toString()},baseDP:P("base_dp"),quoteDP:P("quote_dp"),classNames:{root:cn("oui-mb-6 oui-gap-3 oui-px-5"),container:"oui-gap-x-[30px]"}}),jsx(zs,{position:o,orders:r,onCancelOrder:s,onCancelAllTPSLOrders:a,editTPSLOrder:n,addTPSLOrder:l}),jsx(Vs,{position:o,orders:i,onCancelOrder:s,onCancelAllTPSLOrders:a,editTPSLOrder:n,addTPSLOrder:l})]})})},zs=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:i}=useScreen();return jsxs(Box,{className:"oui-mt-6",children:[jsxs(Box,{className:cn("oui-flex oui-items-center oui-justify-between oui-px-5"),children:[jsx(wr,{positionType:PositionType.FULL,open:t,onOpenChange:o}),r&&r.length===0&&jsx(Flex,{gap:2,children:jsx(Dr,{positionType:PositionType.FULL,position:e.position,addTPSLOrder:e.addTPSLOrder})})]}),jsx(Box,{className:cn("oui-overflow-hidden oui-transition-[height] oui-duration-150",t?"oui-h-auto":"oui-h-0 oui-pb-4"),children:i?jsx(xt,{orders:r,editTPSLOrder:s=>e.editTPSLOrder(s,PositionType.FULL),canCancelOrder:e.onCancelOrder}):jsx(Tt,{orders:r,editTPSLOrder:s=>{e.editTPSLOrder(s,PositionType.FULL);},onCancelOrder:e.onCancelOrder})})]})},Vs=e=>{let[t,o]=useState(true),{orders:r}=e,{isMobile:i}=useScreen();return jsxs(Box,{className:"oui-pt-6",children:[jsxs(Box,{className:cn("oui-flex oui-items-center oui-justify-between","oui-px-5",i?"oui-flex-col oui-items-start oui-justify-start oui-gap-[11px]":"oui-flex-row oui-items-center oui-justify-between"),children:[jsx(wr,{positionType:PositionType.PARTIAL,open:t,onOpenChange:o}),jsxs(Flex,{gap:2,children:[jsx(Dr,{positionType:PositionType.PARTIAL,position:e.position,addTPSLOrder:e.addTPSLOrder}),r&&r.length>0&&jsx(Us,{canCancelAll:r&&r.length>0,onCancelAllTPSLOrders:e.onCancelAllTPSLOrders})]})]}),jsx(Box,{className:cn("oui-overflow-hidden oui-transition-[height] oui-duration-150",t?"oui-h-auto":"oui-h-0 oui-pb-4"),children:i?jsx(xt,{orders:r,editTPSLOrder:s=>e.editTPSLOrder(s,PositionType.PARTIAL),canCancelOrder:e.onCancelOrder}):jsx(Tt,{className:"oui-h-[300px]",orders:r,editTPSLOrder:s=>{e.editTPSLOrder(s,PositionType.PARTIAL);},onCancelOrder:e.onCancelOrder})})]})},wr=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("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})})]})},Dr=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")})},Us=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(()=>{},i=>{toast.error(i.message);}).finally(()=>{o(false);});},children:r("tpsl.cancelAll")})};var Er=e=>{let t=fr(e);return jsx(yr,{symbol:e.position.symbol,position:e.position,children:jsx(Fr,{...t})})},$s="TPSLDetailDialogId ",Ks="TPSLDetailSheetId";registerSimpleDialog($s,Er,{classNames:{content:"oui-w-[420px] lg:oui-pt-4 lg:oui-pb-2 !oui-px-0",body:"lg:oui-py-0"}});registerSimpleSheet(Ks,Er,{classNames:{content:"!oui-p-0"}});var Lt=e=>{let {type:t,triggerPrice:o,symbol:r}=e,i=useSymbolsInfo(),[{rows:s},a]=usePositionStream(r),n=s?.[0];useRef(AlgoOrderRootType.TP_SL);let [P]=useLocalStorage("orderly_order_confirm",true),{t:T}=useTranslation(),[p,{submit:c,deleteOrder:g,setValue:d,setValues:f,validate:u,errors:y,isCreateMutating:D,isUpdateMutating:C}]=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}),O=B=>{d("quantity",B);},M=(B,L)=>{d(B,L);},ye=(B,L)=>{d(B,L);},k=useMemo(()=>Math.abs(Number(n.position_qty)),[n.position_qty]);useEffect(()=>{k&&(d("quantity",k),d(t==="tp"?"tp_trigger_price":"sl_trigger_price",o??""));},[t,o,k]),useEffect(()=>{},[k]);let $e=async()=>{try{if(await u())return P?modal.confirm({title:T("tpsl.confirmOrder"),onOk:async()=>{try{let L=await c({accountId:n.account_id});return L.success?L:(L.message&&toast.error(L.message),!1)}catch(L){return L?.message&&toast.error(L.message),!1}},classNames:{body:"!oui-pb-0"},content:jsx(re,{isPositionTPSL:!1,isEditing:!1,symbol:r,qty:Number(p.quantity),maxQty:k,tpPrice:Number(p.tp_trigger_price),slPrice:Number(p.sl_trigger_price),side:p.side,orderInfo:p,quoteDP:i[r]("quote_dp"),baseDP:i[r]("base_dp")})}).then(()=>!0,()=>Promise.reject(!1)):c({accountId:n.account_id}).then(()=>!0).catch(L=>{throw L?.message&&toast.error(L.message),!1})}catch(B){return Promise.reject(B)}};return {symbolInfo:i[r],maxQty:k,setQuantity:O,orderQuantity:p.quantity,isPosition:false,TPSL_OrderEntity:p,setOrderValue:d,setPnL:ye,setOrderPrice:M,onSubmit:$e,errors:y,status:{isCreateMutating:D,isUpdateMutating:C},position:n,setValues:f,type:t,triggerPrice:o}};var Nt=e=>{let{type:t,triggerPrice:o,errors:r,TPSL_OrderEntity:i}=e,{t:s}=useTranslation(),{parseErrorMsg:a}=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:s("common.cancel")},"secondary"),jsx(Button,{onClick:()=>{e.onSubmit().then(()=>{e.onComplete?.(),e.close?.();});},fullWidth:true,className:"oui-text-sm",size:"md",children:s("common.confirm")},"primary")]}),l=()=>{let T=a("tp_trigger_price"),p=a("sl_trigger_price"),c="";return T&&t==="tp"&&(c=T),p&&t==="sl"&&(c=p),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},P=()=>{let{tp_pnl:T,sl_pnl:p}=i;return t==="sl"?jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:s("tpsl.totalEstSlPnl")}),p?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(p)}):jsx(Text,{size:"2xs",children:"-- USDC"})]}):jsxs(Flex,{justify:"between",className:"oui-w-full",children:[jsx(Text,{size:"2xs",children:s("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:T?Number(T):"--"})]})};return jsxs(Box,{className:"oui-w-full oui-px-0.5",children:[jsx(we,{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:a("quantity"),onQuantityChange:e.setQuantity}),jsxs(Flex,{direction:"column",itemAlign:"start",className:cn("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:s("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:s("tpsl.advanced.orderPrice")}),jsx(Text,{className:"oui-text-base-contrast",size:"xs",children:s("tpsl.advanced.market")})]}),P()]}),l(),jsx(Divider,{className:"oui-my-3 oui-w-full"}),jsx(Flex,{itemAlign:"center",onClick:()=>{e.close?.(),e.showAdvancedTPSLDialog?.({qty:Number(i.quantity)});},className:"oui-pb-4",children:jsx(Text,{color:"primary",className:"oui-cursor-pointer oui-text-sm",children:s("tpsl.advancedSetting")})}),n]})};var At=e=>{let{close:t,onComplete:o,showAdvancedTPSLDialog:r}=e,i=Lt(e);return jsx(Nt,{...i,close:t,onComplete:o,showAdvancedTPSLDialog:r})},kr="TPSLSimpleSheetId",Br="TPSLSimpleDialogId";registerSimpleSheet(kr,At,{classNames:{}});registerSimpleDialog(Br,At,{classNames:{content:"oui-w-[420px]"}});
|
|
13
13
|
|
|
14
|
-
export {
|
|
14
|
+
export { re as PositionTPSLConfirm, Ti as PositionTPSLPopover, Oi as PositionTPSLSheet, Ei as TPSLAdvancedDialogId, Ri as TPSLAdvancedSheetId, mr as TPSLAdvancedWidget, $s as TPSLDetailDialogId, Ks as TPSLDetailSheetId, Er as TPSLDetailWidget, me as TPSLDialogId, de as TPSLPositionTypeWidget, Ee as TPSLSheetId, Br as TPSLSimpleDialogId, Nt as TPSLSimpleDialogUI, At as TPSLSimpleDialogWidget, kr as TPSLSimpleSheetId, Se as TPSLWidget, Lt as useTPSLSimpleDialog };
|
|
15
15
|
//# sourceMappingURL=out.js.map
|
|
16
16
|
//# sourceMappingURL=index.mjs.map
|