@orderly.network/ui-tpsl 2.6.3 → 2.7.0

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