@orderly.network/ui-positions 2.0.1-preview.2 → 2.0.1-preview.4
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 +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +13 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -9
package/dist/index.d.mts
CHANGED
|
@@ -20,6 +20,7 @@ declare const MobilePositionsWidget: (props: PositionsProps) => react_jsx_runtim
|
|
|
20
20
|
type PositionHistoryProps = {
|
|
21
21
|
onSymbolChange?: (symbol: API.Symbol) => void;
|
|
22
22
|
symbol?: string;
|
|
23
|
+
pnlNotionalDecimalPrecision?: number;
|
|
23
24
|
};
|
|
24
25
|
declare const PositionHistoryWidget: (props: PositionHistoryProps) => react_jsx_runtime.JSX.Element;
|
|
25
26
|
declare const MobilePositionHistoryWidget: (props: PositionHistoryProps & {
|
|
@@ -51,6 +52,7 @@ declare const usePositionHistoryScript: (props: PositionHistoryProps) => {
|
|
|
51
52
|
symbol: string | undefined;
|
|
52
53
|
filterDays: 1 | 30 | 7 | 90;
|
|
53
54
|
updateFilterDays: (days: 1 | 7 | 30 | 90) => void;
|
|
55
|
+
pnlNotionalDecimalPrecision: number | undefined;
|
|
54
56
|
};
|
|
55
57
|
type PositionHistoryState = ReturnType<typeof usePositionHistoryScript>;
|
|
56
58
|
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ declare const MobilePositionsWidget: (props: PositionsProps) => react_jsx_runtim
|
|
|
20
20
|
type PositionHistoryProps = {
|
|
21
21
|
onSymbolChange?: (symbol: API.Symbol) => void;
|
|
22
22
|
symbol?: string;
|
|
23
|
+
pnlNotionalDecimalPrecision?: number;
|
|
23
24
|
};
|
|
24
25
|
declare const PositionHistoryWidget: (props: PositionHistoryProps) => react_jsx_runtime.JSX.Element;
|
|
25
26
|
declare const MobilePositionHistoryWidget: (props: PositionHistoryProps & {
|
|
@@ -51,6 +52,7 @@ declare const usePositionHistoryScript: (props: PositionHistoryProps) => {
|
|
|
51
52
|
symbol: string | undefined;
|
|
52
53
|
filterDays: 1 | 30 | 7 | 90;
|
|
53
54
|
updateFilterDays: (days: 1 | 7 | 30 | 90) => void;
|
|
55
|
+
pnlNotionalDecimalPrecision: number | undefined;
|
|
54
56
|
};
|
|
55
57
|
type PositionHistoryState = ReturnType<typeof usePositionHistoryScript>;
|
|
56
58
|
|
package/dist/index.js
CHANGED
|
@@ -12,20 +12,20 @@ var uiConnector = require('@orderly.network/ui-connector');
|
|
|
12
12
|
var reactApp = require('@orderly.network/react-app');
|
|
13
13
|
var dateFns = require('date-fns');
|
|
14
14
|
|
|
15
|
-
var We=react.createContext({}),O=()=>react.useContext(We),Kt=t=>{let[e,o]=react.useState(Math.abs(t.position.position_qty).toString());react.useEffect(()=>{o(Math.abs(t.position.position_qty).toString());},[t.position.position_qty]);let[r,i]=react.useState(""),[n,l]=react.useState(t.position.position_qty>0?types.OrderSide.SELL:types.OrderSide.BUY),[s,a]=react.useState(void 0),[c,b]=react.useState(types.OrderType.MARKET),S=hooks.useSymbolsInfo(),L=t.position.symbol,p=S?.[L],m=p("quote_dp"),f=p("base_dp"),d=p("base_tick"),{helper:T,onSubmit:g,submitting:B}=hooks.useOrderEntry_deprecated(t.position?.symbol,n,!0),X=(N,k)=>{if(b(N),N===types.OrderType.LIMIT){if(!k)throw new Error("price is required");i(k);}else i("");},$=react.useMemo(()=>{let{position:N}=t;if(!N)return null;let k={order_quantity:e,symbol:t.position.symbol,order_type:c,side:n,reduce_only:!0};return c===types.OrderType.LIMIT&&(k.order_price=r),k},[t.position,r,c,e]),$t=N=>{let k=T.calculate({},"order_quantity",N);o(k.order_quantity);},Vt=N=>{let k=T.calculate({},"order_price",N);i(k.order_price);};react.useEffect(()=>{let N=$;T.validator(N).then(k=>{a(k);});},[$]);let Nt=()=>g($).catch(N=>(typeof N=="string"?ui.toast.error(N):ui.toast.error(N.message),Promise.resolve()));return jsxRuntime.jsx(We.Provider,{value:{quantity:e,price:r,type:c,side:n,position:t.position,updatePriceChange:Vt,updateQuantity:$t,updateOrderType:X,tpslOrder:t.position.algo_order,onSubmit:Nt,submitting:B,closeOrderData:$,quoteDp:m,baseDp:f,baseTick:d,errors:s},children:t.children})};var Ee=react.createContext({}),_=()=>react.useContext(Ee),J=t=>{let e=hooks.useSymbolsInfo()[t.symbol];return jsxRuntime.jsx(Ee.Provider,{value:{base_dp:e("base_dp"),quote_dp:e("quote_dp"),base_tick:e("base_tick"),quote_tick:e("quote_tick"),base:e("base"),quote:e("quote"),symbol:t.symbol,origin:e(),quote_max:e("quote_max"),quote_min:e("quote_min")},children:t.children})};var Ke=()=>{let[t,e]=react.useState(!1),{onSubmit:o,price:r,quantity:i,closeOrderData:n,type:l,submitting:s,quoteDp:a,errors:c}=O(),{base:b,quote:S}=_(),[L]=hooks.useLocalStorage("orderly_order_confirm",!0),p=()=>o().then(d=>{e(!1);},d=>{typeof d=="string"?ui.toast.error(d):ui.toast.error(d.message);}).catch(d=>{typeof d=="string"?ui.toast.error(d):ui.toast.error(d.message);}),m=()=>{e(!1);},f=react.useMemo(()=>l===types.OrderType.MARKET?!i:!r||!i,[r,i,l]);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{variant:"outlined",size:"sm",color:"secondary",disabled:f||s,loading:s,onClick:d=>{d.stopPropagation();let T=c?.order_quantity?.message,g=c?.order_price?.message;if(T||g){ui.toast.error(T??g);return}if(!L){o();return}e(!0);},children:"Close"}),jsxRuntime.jsx(ui.SimpleDialog,{open:t,onOpenChange:e,size:"sm",children:l===types.OrderType.MARKET?jsxRuntime.jsx(Ct,{base:b,quantity:i,onClose:m,onConfirm:p,submitting:s,classNames:{root:"oui-items-start"},hideCloseIcon:!0}):jsxRuntime.jsx(Xt,{base:b,quantity:i,price:r,onClose:m,onConfirm:p,submitting:s,quoteDp:a,order:n,hideCloseIcon:!0})})]})},Ye=t=>{let{hideCloseIcon:e=!1}=t;return jsxRuntime.jsxs("div",{className:"oui-pb-3 oui-border-b oui-border-line-4 oui-relative oui-w-full",children:[jsxRuntime.jsx(ui.Text,{size:"base",children:t.title}),!e&&jsxRuntime.jsx("button",{onClick:t.onClose,className:"oui-absolute oui-right-0 oui-top-0 oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-p-2",children:jsxRuntime.jsx(ui.CloseIcon,{size:18,color:"white"})})]})},Xe=({onCancel:t,onConfirm:e,submitting:o})=>jsxRuntime.jsxs(ui.Flex,{id:"oui-positions-confirm-footer",gap:2,width:"100%",className:"oui-mt-3 oui-pb-1",children:[jsxRuntime.jsx(ui.Button,{id:"oui-positions-confirm-footer-cancel-button",color:"secondary",fullWidth:!0,onClick:t,size:"md",children:"Cancel"}),jsxRuntime.jsx(ui.ThrottledButton,{id:"oui-positions-confirm-footer-confirm-button",onClick:e,fullWidth:!0,loading:o,size:"md",children:"Confirm"})]}),qi=t=>{let{quantity:e,price:o,quoteDp:r,side:i}=t,n=react.useMemo(()=>o&&e?new utils.Decimal(o).mul(e).toFixed(r,utils.Decimal.ROUND_DOWN):"--",[o,e]);return jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:1,width:"100%",className:"oui-text-sm oui-text-base-contrast-54",py:5,children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:1,children:[jsxRuntime.jsx(ui.Text,{children:"Qty."}),jsxRuntime.jsx(ui.Text,{color:i===types.OrderSide.BUY?"success":"danger",children:e})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:1,children:[jsxRuntime.jsx(ui.Text,{children:"Price"}),jsxRuntime.jsx(ui.Text.formatted,{intensity:98,suffix:jsxRuntime.jsx(ui.Text,{intensity:54,children:"USDC"}),children:o})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:1,children:[jsxRuntime.jsx(ui.Text,{children:"Notional"}),jsxRuntime.jsx(ui.Text.formatted,{intensity:98,suffix:jsxRuntime.jsx(ui.Text,{intensity:54,children:"USDC"}),children:n})]})]})},Ct=t=>{let e=()=>{(t?.onClose??t.close)?.();};return jsxRuntime.jsxs(ui.Flex,{direction:"column",className:t.classNames?.root,children:[jsxRuntime.jsx(Ye,{onClose:e,title:"Market Close",hideCloseIcon:t.hideCloseIcon}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",className:"oui-my-5",children:`You agree closing ${utils.commifyOptional(t.quantity)} ${t.base} position at market price.`}),jsxRuntime.jsx(Xe,{onCancel:e,onConfirm:async()=>{await t.onConfirm?.(),e();},submitting:t.submitting})]})},Xt=t=>{let{order:e,quoteDp:o,quantity:r,price:i,submitting:n}=t,{side:l}=e,s=()=>{t.onClose?.();};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Ye,{onClose:s,title:"Limit Close",hideCloseIcon:t.hideCloseIcon}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",className:"oui-mt-5",children:`You agree closing ${utils.commify(t.quantity)} ${t.base} position at limit price.`}),jsxRuntime.jsxs(ui.Flex,{gap:2,mb:4,mt:5,justify:"between",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",formatString:"base-type",size:"base",showIcon:!0,children:e.symbol}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Badge,{color:"neutral",size:"xs",children:"Limit"}),jsxRuntime.jsx(ui.Badge,{color:l===types.OrderSide.BUY?"success":"danger",size:"xs",children:l===types.OrderSide.BUY?"Buy":"Sell"})]})]}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx(qi,{className:"oui-text-sm",price:i,quantity:r,side:e.side,quoteDp:o??2}),jsxRuntime.jsx(Xe,{onCancel:s,onConfirm:t.onConfirm,submitting:t.submitting})]})};var je=()=>{let{type:t,quoteDp:e,price:o,updatePriceChange:r,updateOrderType:i,position:n}=O(),[l,s]=react.useState(!1);return jsxRuntime.jsxs(ui.DropdownMenuRoot,{children:[jsxRuntime.jsx(ui.Input,{size:"sm",value:t===types.OrderType.LIMIT?o:"Market",onValueChange:a=>r(a),formatters:[ui.inputFormatter.numberFormatter,...e?[ui.inputFormatter.dpFormatter(e)]:[]],onFocus:a=>{t===types.OrderType.MARKET&&i(types.OrderType.LIMIT,`${n.mark_price}`),s(!0);},onBlur:a=>{setTimeout(()=>{s(!1);},100);},suffix:jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:!0,children:jsxRuntime.jsx("button",{className:"oui-px-1 oui-h-full",children:jsxRuntime.jsx(ui.CaretDownIcon,{size:12,color:"white"})})}),classNames:{root:ui.cn("oui-outline-line-12 focus-within:oui-outline-primary-light")}}),jsxRuntime.jsx(ui.DropdownMenuContent,{align:"end",className:"oui-w-[96px] oui-min-w-[96px]",onCloseAutoFocus:a=>a.preventDefault(),children:jsxRuntime.jsx(ui.DropdownMenuGroup,{children:jsxRuntime.jsx(ui.DropdownMenuItem,{size:"xs",onSelect:a=>{i(types.OrderType.MARKET);},children:jsxRuntime.jsx("span",{children:"Market"})})})})]})};var io=t=>{let[e,o]=react.useState(!1),[r,i]=react.useState(100),{baseDp:n,quoteDp:l,updateQuantity:s,quantity:a,type:c,errors:b,baseTick:S}=O();react.useEffect(()=>{let m=f=>{f.target.closest("[data-popover-root]")||o(!1);};return document.addEventListener("click",m),()=>{document.removeEventListener("click",m);}},[]);let L=m=>{p(`${t.value*(m/100)}`);},p=m=>{if(S&&S>0){let f=hooks.utils.formatNumber(m,S)??m;s(f);}};return jsxRuntime.jsxs(ui.PopoverRoot,{children:[jsxRuntime.jsx(ui.PopoverTrigger,{children:jsxRuntime.jsx(ui.Input,{size:"sm",onFocus:()=>{o(!0);},classNames:{root:"oui-outline-line-12 "},formatters:[ui.inputFormatter.numberFormatter,...n?[ui.inputFormatter.dpFormatter(n)]:[]],value:a,onBlur:m=>p(m.target.value),onValueChange:m=>{if(s(m),m=="0"||m==""){i(0);return}let f=new utils.Decimal(m).div(t.value).mul(100).abs().toFixed(0,utils.Decimal.ROUND_DOWN);i(Math.min(100,Number(f)));}})}),jsxRuntime.jsx(ui.PopoverContent,{className:"oui-w-[360px] oui-rounded-xl",align:"start",side:"bottom",onOpenAutoFocus:m=>{m.preventDefault();},children:jsxRuntime.jsxs(ui.Flex,{p:1,gap:2,width:"100%",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:98,className:"oui-min-w-[30px]",children:`${r}%`}),jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Slider,{markCount:4,value:[r],onValueChange:m=>{let f=Array.from(m.values());i(f[0]),L(f[0]);}}),jsxRuntime.jsx(Ji,{onClick:m=>{i(m*100),L(m*100);}})]})]})})]})},Ji=t=>jsxRuntime.jsx(ui.Flex,{gap:2,width:"100%",children:[{label:"0%",value:0},{label:"25%",value:.25},{label:"50%",value:.5},{label:"75%",value:.75},{label:"Max",value:1}].map((o,r)=>jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"xs",onClick:i=>{i.stopPropagation(),t.onClick(o.value);},className:"oui-w-1/5",children:o.label},r))});var ro=(t,e)=>{let o=_();return jsxRuntime.jsx(ui.Text.numeral,{dp:o.base_dp,rm:utils.Decimal.ROUND_DOWN,padding:!1,coloring:!0,children:t})},no=(t,e)=>jsxRuntime.jsx(io,{value:e.position_qty}),so=t=>jsxRuntime.jsx(je,{});var ee=t=>t.sharePnLConfig==null?jsxRuntime.jsx(jsxRuntime.Fragment,{}):jsxRuntime.jsx("button",{type:"button",onClick:e=>{e.stopPropagation(),ui.modal.show(t.modalId,{pnl:{position:t.position,refCode:t.refCode,leverage:t.leverage,...t.sharePnLConfig}});},children:jsxRuntime.jsx(ui.ShareIcon,{color:"white",opacity:.54,size:t.iconSize??16})});var ao=t=>{let{sharePnLConfig:e,position:o,modalId:r,iconSize:i}=t,{getFirstRefCode:n}=hooks.useReferralInfo(),l=react.useMemo(()=>n()?.code,[n]),s=hooks.useSymbolLeverage(t.position.symbol);return {iconSize:i,position:o,refCode:l,leverage:s,sharePnLConfig:e,modalId:r}};var St=t=>{let e=ao(t);return jsxRuntime.jsx(ee,{...e})};var uo=t=>{let{stopLossPrice:e,takeProfitPrice:o}=t,{tpslOrder:r,position:i}=O();return jsxRuntime.jsx(dr,{stopLossPrice:e,takeProfitPrice:o,direction:"column",order:r,position:i,tooltip:!0})},mo=t=>{let{qty:e,price:o,entryPrice:r,orderSide:i,orderType:n,symbolInfo:l}=t,s=hooks.utils.priceToPnl({qty:e,price:o,entryPrice:r,orderSide:i,orderType:n},{symbol:l}),a=n===types.AlgoOrderType.TAKE_PROFIT?"TP":"SL";return jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text,{intensity:54,className:"oui-mr-1",children:`${a} PnL:`}),jsxRuntime.jsx(ui.Text.formatted,{rule:"price",className:s===0?"oui-text-base-contrast-36":s>0?"oui-text-trade-profit oui-gap-0":"oui-text-trade-loss oui-gap-0",prefix:jsxRuntime.jsx(ui.Text,{children:s===0?"":s>0?"+":"-"}),suffix:jsxRuntime.jsx(ui.Text,{intensity:36,className:"oui-ml-1",children:"USDC"}),children:`${Math.abs(s)}`})]})},dr=t=>{let{direction:e="row",order:o,position:r}=t,i=hooks.useSymbolsInfo(),n=react.useMemo(()=>{let a=[];if(!t.tooltip||!o||!r)return;let c=o.quantity;return c===0&&o.child_orders[0].type==="CLOSE_POSITION"&&(c=r.position_qty),t.takeProfitPrice&&a.push(jsxRuntime.jsx(mo,{qty:c,price:t.takeProfitPrice,entryPrice:r.average_open_price,orderSide:o.side,orderType:types.AlgoOrderType.TAKE_PROFIT,symbolInfo:i[o.symbol]()},"tp")),t.stopLossPrice&&a.push(jsxRuntime.jsx(mo,{qty:c,price:t.stopLossPrice,entryPrice:r.average_open_price,orderSide:o.side,orderType:types.AlgoOrderType.STOP_LOSS,symbolInfo:i[o.symbol]()},"sl")),jsxRuntime.jsx("div",{children:a})},[t.takeProfitPrice,t.stopLossPrice,r?.average_open_price,o?.side,o?.quantity,o?.algo_type]),l=react.useMemo(()=>{let a=[];return o?.symbol?(t.takeProfitPrice&&a.push(jsxRuntime.jsx(ui.Text.formatted,{className:ui.cn("oui-text-trade-profit oui-gap-0 oui-decoration-white/20"),rule:"price",dp:i[o.symbol]("quote_dp",2),children:t.takeProfitPrice,prefix:!t.stopLossPrice||e==="column"?jsxRuntime.jsx(ui.Text,{intensity:54,children:"TP\xA0-\xA0"}):""},"tp")),t.stopLossPrice&&a.push(jsxRuntime.jsx(ui.Text.formatted,{className:ui.cn("oui-text-trade-loss oui-gap-0 oui-decoration-white/20 "),rule:"price",dp:i[o.symbol]("quote_dp",2),children:t.stopLossPrice,prefix:!t.takeProfitPrice||e==="column"?jsxRuntime.jsx(ui.Text,{intensity:54,children:"SL\xA0-\xA0"}):""},"sl")),a.length===0?jsxRuntime.jsx(ui.Text,{children:"-"}):(a.length===2&&e==="row"&&a.splice(1,0,jsxRuntime.jsx(ui.Text,{children:"/"},"split")),a)):jsxRuntime.jsx("span",{children:"-"})},[t.takeProfitPrice,t.stopLossPrice,o?.symbol]),s=jsxRuntime.jsx("div",{className:ui.cn("oui-inline-flex oui-text-base-contrast-36",t.direction==="column"?"oui-flex-col":"oui-flex-row oui-gap-1",t.className),children:l});return t.tooltip?jsxRuntime.jsx(ui.Tooltip,{content:n,children:s}):s};var co=()=>{let{position:t,baseDp:e,quoteDp:o,tpslOrder:r}=O();return jsxRuntime.jsx(uiTpsl.PositionTPSLPopover,{position:t,order:r,label:"TP/SL",baseDP:e,quoteDP:o,isEditing:!1})};var yo=t=>{let[e,o]=hooks.useLocalStorage("unPnlPriceBasis","markPrice");return jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:3,className:"oui-text-base-contrast-54 oui-items-start",children:[jsxRuntime.jsx(ui.Text,{children:"Current unrealized profit or loss on your open positions across all widgets calculated using Mark Price."}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx("div",{className:"oui-mb-0",children:"Unrealized PnL Price Basis"}),jsxRuntime.jsx(gr,{value:e,onValueChange:o})]})},gr=t=>{let{value:e,onValueChange:o}=t;return jsxRuntime.jsxs(ui.Flex,{gap:2,children:[jsxRuntime.jsx(po,{sel:e==="markPrice",label:"Mark price",value:"markPrice",onCheckChange:o}),jsxRuntime.jsx(po,{sel:e==="lastPrice",label:"Last price",value:"lastPrice",onCheckChange:o})]})},po=t=>{let{sel:e,label:o,value:r,onCheckChange:i}=t;return jsxRuntime.jsxs(ui.Flex,{onClick:n=>{i(r),n.stopPropagation();},gap:1,className:"oui-cursor-pointer",children:[e?jsxRuntime.jsx(br,{}):jsxRuntime.jsx(Pr,{}),jsxRuntime.jsx(ui.Text,{size:"xs",intensity:e?98:54,children:o})]})},br=()=>jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:"oui-fill-white",children:[jsxRuntime.jsx("path",{d:"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667",fill:"#fff",fillOpacity:".36"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"3.333"})]}),Pr=()=>jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667",fill:"#fff",fillOpacity:".54"})});var vt=t=>{let{tick:e="quote_dp",...o}=t,r=_();if(!r)throw new Error("NumeralWithCtx must be used inside SymbolProvider");return jsxRuntime.jsx(ui.Text.numeral,{as:"span",...o,dp:r[e]})};var go=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o}=t;return react.useMemo(()=>[{title:"Instrument",dataIndex:"symbol",fixed:"left",width:140,onSort:(i,n)=>i.symbol.localeCompare(n.symbol),render:(i,n)=>jsxRuntime.jsxs(ui.Flex,{gap:2,children:[jsxRuntime.jsx(ui.Box,{width:4,height:20,className:ui.cn("oui-rounded-[1px]",n.position_qty>0?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxRuntime.jsx(ui.Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:l=>{t.onSymbolChange?.({symbol:i}),l.stopPropagation(),l.preventDefault();},children:`${i.split("_")[1]}-PERP`})]})},{title:"Quantity",dataIndex:"position_qty",onSort:(i,n)=>i.position_qty-n.position_qty,width:120,className:"oui-pl-6",render:ro},{title:"Avg. open",className:"oui-h-[48px]",width:120,onSort:!0,dataIndex:"average_open_price",render:(i,n)=>jsxRuntime.jsx(vt,{rm:utils.Decimal.ROUND_DOWN,children:i})},{title:"Mark price",dataIndex:"mark_price",width:120,onSort:!0,className:"oui-h-[48px]",render:(i,n)=>jsxRuntime.jsx(vt,{rm:utils.Decimal.ROUND_DOWN,children:i})},{title:jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[280px] oui-text-2xs oui-text-base-contrast-54 oui-p-3 oui-bg-base-8",content:"Estimated price at which your position will be liquidated. Prices are estimated and depend on multiple factors across all positions.",children:jsxRuntime.jsx(ui.Text,{children:"Liq. price"})}),width:100,onSort:!0,dataIndex:"est_liq_price",render:(i,n)=>Number(i)===0?"--":jsxRuntime.jsx(vt,{rm:utils.Decimal.ROUND_DOWN,className:Number(i)>0?"oui-text-warning-light":"",children:i??"--"})},{title:jsxRuntime.jsx(ui.HoverCard,{content:jsxRuntime.jsx(yo,{}),side:"top",align:"center",className:"oui-max-w-[280px] oui-text-2xs",children:jsxRuntime.jsx(ui.Text,{children:"Unreal. PnL"})}),dataIndex:"unrealized_pnl",width:150,onSort:!0,rule:"price",numeralProps:{coloring:!0},render:(i,n)=>jsxRuntime.jsxs(ui.Flex,{gap:2,children:[jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text.numeral,{dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,coloring:!0,className:"oui-font-semibold",children:i}),jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,coloring:!0,className:"oui-font-semibold",prefix:"(",suffix:")",children:n.unrealized_pnl_ROI})]}),jsxRuntime.jsx(St,{position:n,sharePnLConfig:t.sharePnLConfig,modalId:uiShare.SharePnLDialogId})]})},{title:"TP/SL",dataIndex:"__",width:150,render:(i,n)=>jsxRuntime.jsx(uo,{stopLossPrice:n.sl_trigger_price,takeProfitPrice:n.tp_trigger_price})},{title:"Notional",dataIndex:"notional",className:"oui-h-[48px]",width:100,onSort:!0,render:i=>jsxRuntime.jsx(ui.Text.numeral,{dp:e,children:i})},{title:jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[280px] oui-text-2xs oui-text-base-contrast-54 oui-p-3 oui-bg-base-8",content:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:3,className:"oui-text-base-contrast-54 oui-bg-base-8 oui-rounded-sm",children:[jsxRuntime.jsx("span",{children:"The minimum equity to keep your position. "}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx("span",{children:"Margin = Position size * Mark price * MMR"})]}),children:jsxRuntime.jsx(ui.Text,{children:"Margin"})}),dataIndex:"mm",onSort:!0,width:100,rule:"price",render:i=>jsxRuntime.jsx(ui.Text.numeral,{children:i})},{title:"Qty.",dataIndex:"close_qty",width:100,fixed:"right",render:no},{title:"Price",dataIndex:"close_price",width:100,fixed:"right",render:so},{title:"",dataIndex:"close_position",align:"right",width:160,fixed:"right",render:i=>jsxRuntime.jsxs(ui.Flex,{gapX:2,justify:"end",children:[jsxRuntime.jsx(Ke,{}),jsxRuntime.jsx(co,{})]})}],[e,o])};var bo=t=>{let{item:e}=t,o=e.position_qty>0;return jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",formatString:"base-type",size:"2xs",suffix:jsxRuntime.jsx(ui.Badge,{color:o?"success":"danger",size:"xs",children:o?"Buy":"Sell"}),showIcon:!0,onClick:()=>{t.onSymbolChange?.({symbol:e.symbol});},children:e.symbol})},Po=t=>{let{item:e}=t;return jsxRuntime.jsxs(ui.Flex,{gap:3,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",className:"oui-text-2xs",itemAlign:"end",children:[jsxRuntime.jsxs(ui.Text,{intensity:36,children:["Unreal. PnL",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),jsxRuntime.jsx(ui.Text.numeral,{size:"xs",dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,coloring:!0,className:"orderly-font-semibold",suffix:jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,prefix:"(",suffix:")",className:ui.cn("oui-ml-1",e.unrealized_pnl_ROI>0?"oui-text-success-darken":"oui-text-danger-darken"),children:e.unrealized_pnl_ROI}),children:e.unrealized_pnl})]}),jsxRuntime.jsx(St,{position:e,sharePnLConfig:t.sharePnLConfig,modalId:uiShare.SharePnLBottomSheetId,iconSize:12})]})},Co=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Qty.",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,children:e.position_qty})})},So=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Margin",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,intensity:80,children:e.mm})})},ho=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{align:"end",label:jsxRuntime.jsxs(ui.Text,{children:["Notional",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,intensity:80,children:e.notional})})},To=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Avg. open",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,rm:utils.Decimal.ROUND_DOWN,intensity:80,children:e.average_open_price})})},_o=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Mark price",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,rm:utils.Decimal.ROUND_DOWN,intensity:80,children:e.mark_price})})},wo=t=>{let{item:e}=t,o=e.est_liq_price&&e.est_liq_price>0?e.est_liq_price:"-";return jsxRuntime.jsx(ui.Statistic,{label:"Liq. price",align:"end",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,rm:utils.Decimal.ROUND_DOWN,color:"warning",children:o})})},Fo=t=>{let{item:e}=t;return e.tp_trigger_price==null&&e.sl_trigger_price==null?jsxRuntime.jsx(jsxRuntime.Fragment,{}):jsxRuntime.jsxs(ui.Flex,{className:"oui-text-2xs oui-text-base-contrast-36",children:[jsxRuntime.jsx(ui.Text,{children:"TP/SL:\xA0"}),jsxRuntime.jsxs(ui.Flex,{className:"oui-gap-[2px]",children:[e.tp_trigger_price&&jsxRuntime.jsx(ui.Text.numeral,{color:"buy",children:e.tp_trigger_price}),e.sl_trigger_price&&"/",e.sl_trigger_price&&jsxRuntime.jsx(ui.Text.numeral,{color:"sell",children:e.sl_trigger_price})]})]})};var se=t=>{let{item:e,sheetOpen:o,setSheetOpen:r,dialogOpen:i,setDialogOpen:n,updatePriceChange:l,base:s,quantity:a,price:c,onClose:b,onConfirm:S,submitting:L,quote_dp:p,closeOrderData:m,onCloseDialog:f}=t,d=e.position_qty>0,T=g=>{if(t.baseTick&&t.baseTick>0){let B=hooks.utils.formatNumber(g,t.baseTick)??g;t.updateQuantity(B);}};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",onClick:()=>{l("limit"),r(!0);},children:"Limit Close"}),o&&jsxRuntime.jsx(ui.SimpleSheet,{title:"Limit close",open:o,onOpenChange:r,children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:3,width:"100%",itemAlign:"start",className:"oui-text-sm",children:[jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",showIcon:!0,children:e.symbol}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Badge,{color:"neutral",size:"xs",children:"Limit"}),d&&jsxRuntime.jsx(ui.Badge,{color:"success",size:"xs",children:"Buy"}),!d&&jsxRuntime.jsx(ui.Badge,{color:"danger",size:"xs",children:"Sell"})]})]}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Last price"}),jsxRuntime.jsx(ui.Text.numeral,{dp:t.item?.symbolInfo?.quote_dp,suffix:jsxRuntime.jsx(ui.Text,{intensity:36,children:"USDC"}),children:t.curMarkPrice})]}),jsxRuntime.jsxs(ui.Flex,{width:"100%",direction:"column",gap:2,children:[jsxRuntime.jsx(ui.Input.tooltip,{prefix:"Price",suffix:t.quote,align:"right",fullWidth:!0,autoComplete:"off",formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(t.quote_dp)],triggerClassName:"oui-w-full",tooltip:t.errors?.order_price?.message,color:t.errors?.order_price?.message?"danger":void 0,value:t.price,onValueChange:g=>t.updatePriceChange(g),classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:ui.cn("oui-outline-line-12 oui-w-full",t.errors?.order_price?.message?"oui-outline-danger":void 0)}}),jsxRuntime.jsx(ui.Input,{prefix:"Quantity",suffix:t.base,align:"right",fullWidth:!0,autoComplete:"off",formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(t.base_dp)],value:t.quantity,onBlur:g=>T(g.target.value),onValueChange:g=>{t.updateQuantity(g);let B=new utils.Decimal(g).div(t.item.position_qty).mul(100).toDecimalPlaces(2,utils.Decimal.ROUND_DOWN).toNumber();t.setSliderValue(B);},classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:ui.cn("oui-outline-line-12 oui-w-full")}}),jsxRuntime.jsx(ui.Slider,{markCount:4,value:[t.sliderValue],color:"primary",onValueChange:g=>{t.setSliderValue(g[0]);let B=new utils.Decimal(g[0]).div(100).mul(t.item.position_qty).toFixed(t.base_dp,utils.Decimal.ROUND_DOWN);T(B);}}),jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{color:"primary",size:"2xs",children:`${t.sliderValue}%`}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primary",children:"Max"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:54,size:"2xs",children:Math.abs(t.item.position_qty)})]})]})]}),jsxRuntime.jsxs(ui.Flex,{width:"100%",gap:3,mt:2,children:[jsxRuntime.jsx(ui.Button,{fullWidth:!0,color:"secondary",onClick:g=>{b();},children:"Cancel"}),jsxRuntime.jsx(ui.ThrottledButton,{fullWidth:!0,disabled:L,loading:L,onClick:g=>{g.stopPropagation(),g.preventDefault();let B=t.errors,X=B?.order_quantity?.message,$=B?.order_price?.message;if(X||$){ui.toast.error(X??$);return}if(!t.orderConfirm){S();return}n(!0);},children:"Confirm"})]})]})}),i&&jsxRuntime.jsx(ui.SimpleDialog,{open:i,onOpenChange:n,size:"xs",children:jsxRuntime.jsx(Xt,{base:s,quantity:a,price:c,onClose:f,onConfirm:S,submitting:L,quoteDp:p,order:m,hideCloseIcon:!0})})]})};var le=t=>{let{state:e}=t,[o,r]=react.useState(!1),[i,n]=react.useState(!1),{onSubmit:l,price:s,quantity:a,closeOrderData:c,submitting:b,type:S,updatePriceChange:L,updateOrderType:p,updateQuantity:m,errors:f,baseTick:d}=O(),T=react.useRef(!1),[g,B]=react.useState(100),[X]=hooks.useLocalStorage("orderly_order_confirm",!0),$=()=>l().then(It=>{r(!1),n(!1);},It=>{typeof It=="string"?ui.toast.error(It):ui.toast.error(It.message);}),$t=()=>{r(!1);},Vt=()=>{n(!1);},Nt=hooks.useMarkPricesStream(),N=react.useMemo(()=>Nt?.data?.[e.item.symbol]??"--",[Nt]),{quote_dp:k,base_dp:ui$1,base:di,quote:ci}=_();return react.useEffect(()=>{!T.current&&N&&o&&(T.current=!0,p(types.OrderType.LIMIT,`${N}`));},[T,N,o]),react.useEffect(()=>{o||(p(types.OrderType.MARKET),T.current=!1);},[o]),{...e,sheetOpen:o,setSheetOpen:r,curMarkPrice:N,quote_dp:k,base_dp:ui$1,base:di,quote:ci,baseTick:d,orderConfirm:X,onClose:$t,onConfirm:$,price:s,quantity:a,closeOrderData:c,submitting:b,updatePriceChange:L,updateQuantity:m,errors:f,sliderValue:g,setSliderValue:B,dialogOpen:i,setDialogOpen:n,onCloseDialog:Vt}};var me=t=>{let e=le(t);return jsxRuntime.jsx(se,{...e})};var de=t=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",disabled:t.submitting,loading:t.submitting,onClick:e=>{if(e.stopPropagation(),e.preventDefault(),t.updateOrderType(types.OrderType.MARKET),!t.orderConfirm){t.onConfirm();return}t.setDialogOpen(!0);},children:"Market Close"}),jsxRuntime.jsx(ui.SimpleDialog,{open:t.dialogOpen,onOpenChange:t.setDialogOpen,size:"xs",children:jsxRuntime.jsx(Ct,{base:t.base,quantity:t.quantity,onClose:t.onClose,onConfirm:t.onConfirm,submitting:t.submitting,hideCloseIcon:!0})})]});var ce=t=>{let e=_(),[o,r]=react.useState(!1),{onSubmit:i,price:n,quantity:l,closeOrderData:s,submitting:a,type:c,updatePriceChange:b,updateOrderType:S,updateQuantity:L}=O(),[p]=hooks.useLocalStorage("orderly_order_confirm",!0);return {...t,...e,dialogOpen:o,setDialogOpen:r,orderConfirm:p,onSubmit:i,quantity:l,onClose:()=>{r(!1);},onConfirm:()=>i().then(d=>{r(!1);},d=>{typeof d=="string"?ui.toast.error(d):ui.toast.error(d.message);}),submitting:a,updateOrderType:S,updateQuantity:L}};var pe=t=>{let e=ce(t);return jsxRuntime.jsx(de,{...e})};var fe=t=>jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",onClick:e=>{e.stopPropagation(),e.preventDefault(),t.openTP_SL();},children:"TP/SL"});var ye=t=>{let e=hooks.useSymbolsInfo()[t.state.item.symbol]();return {openTP_SL:()=>{ui.modal.sheet({title:"TP/SL",content:jsxRuntime.jsx(uiTpsl.PositionTPSLSheet,{position:t.state.item,symbolInfo:e})});},...t,...e}};var xe=t=>{let e=ye(t);return jsxRuntime.jsx(fe,{...e})};var ge=t=>{let{className:e,...o}=t;return jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,p:2,r:"xl",itemAlign:"start",className:ui.cn(e,"oui-bg-base-9"),children:[jsxRuntime.jsx(mn,{...o}),jsxRuntime.jsx(ui.Divider,{intensity:6,className:"oui-w-full"}),jsxRuntime.jsx(un,{...o}),jsxRuntime.jsx(Fo,{...o}),jsxRuntime.jsx(dn,{...o})]})},mn=t=>jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(bo,{...t}),jsxRuntime.jsx(Po,{...t})]}),un=t=>jsxRuntime.jsxs(ui.Grid,{cols:3,rows:2,gap:2,width:"100%",children:[jsxRuntime.jsx(Co,{...t}),jsxRuntime.jsx(So,{...t}),jsxRuntime.jsx(ho,{...t}),jsxRuntime.jsx(To,{...t}),jsxRuntime.jsx(_o,{...t}),jsxRuntime.jsx(wo,{...t})]}),dn=t=>jsxRuntime.jsxs(ui.Grid,{width:"100%",gap:2,cols:3,rows:1,children:[jsxRuntime.jsx(xe,{state:t}),jsxRuntime.jsx(me,{state:t}),jsxRuntime.jsx(pe,{state:t})]});var be=t=>{let e=_();return {...t,...e}};var Pe=t=>{let e=be(t);return jsxRuntime.jsx(ge,{...e,className:t.className})};var ko=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,pagination:r}=t,i=go({pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:t.onSymbolChange});return jsxRuntime.jsx(uiConnector.AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-positions-content",columns:i,bordered:!0,dataSource:t.dataSource,generatedRowKey:n=>n.symbol,renderRowContainer:(n,l,s)=>jsxRuntime.jsx(J,{symbol:n.symbol,children:jsxRuntime.jsx(Kt,{position:n,children:s})}),manualPagination:!1,pagination:r,testIds:{body:"oui-testid-dataList-position-tab-body"}})},Ao=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o}=t;return jsxRuntime.jsx(ui.ListView,{className:"oui-w-full oui-hide-scrollbar oui-overflow-y-hidden oui-space-y-0",contentClassName:"!oui-space-y-1",dataSource:t.dataSource,renderItem:(r,i)=>jsxRuntime.jsx(J,{symbol:r.symbol,children:jsxRuntime.jsx(Kt,{position:r,children:jsxRuntime.jsx(Pe,{item:r,index:i,pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:t.onSymbolChange})})})})};var Ce=t=>{let{symbol:e,calcMode:o,includedPendingOrder:r,pnlNotionalDecimalPrecision:i,sharePnLConfig:n,onSymbolChange:l}=t,{pagination:s}=ui.usePagination({pageSize:50}),[a,c,{isLoading:b}]=hooks.usePositionStream(e,{calcMode:o,includedPendingOrder:r});return {dataSource:reactApp.useDataTap(a?.rows)??void 0,isLoading:b,pnlNotionalDecimalPrecision:i,sharePnLConfig:n,symbol:e,onSymbolChange:l,pagination:s}};var bn=t=>{let e=Ce(t);return jsxRuntime.jsx(ko,{...e})},Pn=t=>{let e=Ce(t);return jsxRuntime.jsx(Ao,{...e})};var Wo=t=>{let{onSymbolChange:e}=t;return react.useMemo(()=>[{title:"Instrument",dataIndex:"symbol",fixed:"left",width:140,onSort:(r,i)=>r.symbol.localeCompare(i.symbol),render:(r,i)=>jsxRuntime.jsx(hn,{record:i,onSymbolChange:e})},{title:"Closed / Max closed",dataIndex:"close_maxClose",width:175,render:(r,i)=>jsxRuntime.jsx(Tn,{record:i})},{title:"Net PnL",dataIndex:"netPnL",width:140,onSort:(r,i)=>r.netPnL==null||i.netPnL==null?-1:(r.netPnL??0)-(i.netPnL??0),render:(r,i)=>jsxRuntime.jsx(_n,{record:i})},{title:"Avg. open",dataIndex:"avg_open",width:140,render:(r,i)=>jsxRuntime.jsx(ui.Text.numeral,{children:i.avg_open_price})},{title:"Avg. close",dataIndex:"avg_close",width:175,render:(r,i)=>jsxRuntime.jsx(ui.Text.numeral,{children:i.avg_close_price})},{title:"Time opened",dataIndex:"open_timestamp",width:175,onSort:!0,render:(r,i)=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:i.open_timestamp})},{title:"Time closed",dataIndex:"close_timestamp",width:175,onSort:!0,render:(r,i)=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:i.position_status=="closed"?i.close_timestamp:"--"})},{title:"Updated time",dataIndex:"last_update_timestamp",width:175,onSort:!0,render:(r,i)=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:i.last_update_time})}],[])},hn=t=>{let{record:e,onSymbolChange:o}=t,r=react.useMemo(()=>{let i=[];return i.push(jsxRuntime.jsx(ui.Badge,{color:e.position_status!=="closed"?"primaryLight":"neutral",size:"xs",children:ui.capitalizeFirstLetter(e.position_status)})),e.type==="adl"?(ui.capitalizeFirstLetter(e.type)):e.type==="liquidated"&&i.push(jsxRuntime.jsx(ui.Tooltip,{className:"oui-min-w-[204px] oui-bg-base-5",tooltipProps:{arrow:{className:"oui-fill-base-5"}},content:jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Liquidation id"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:98,children:e.liquidation_id})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Liquidator fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.liquidator_fee})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Ins. Fund fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.insurance_fund_fee})]})]}),children:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(ui.Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",children:jsxRuntime.jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-[1px]",children:ui.capitalizeFirstLetter(e.type)})})})})),i},[e]);return jsxRuntime.jsxs(ui.Flex,{gap:2,height:48,children:[jsxRuntime.jsx(ui.Box,{width:4,height:20,className:ui.cn("oui-rounded-[1px]",e.side==="LONG"?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:i=>{o?.({symbol:e.symbol}),i.stopPropagation(),i.preventDefault();},children:`${e.symbol.split("_")[1]}-PERP`}),jsxRuntime.jsx(ui.Flex,{gap:1,children:r})]})]})},Tn=t=>{let{record:e}=t,{base_dp:o}=_();return jsxRuntime.jsxs(ui.Flex,{gap:1,className:"oui-overflow-hidden oui-whitespace-nowrap oui-text-ellipsis",children:[jsxRuntime.jsx(ui.Text.numeral,{dp:o,children:e.closed_position_qty}),"/",jsxRuntime.jsx(ui.Text.numeral,{dp:o,className:"oui-truncate",children:e.max_position_qty})]})},_n=t=>{let{record:e}=t,o=()=>jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,className:e.netPnL==null?"":"oui-cursor-pointer",children:e.netPnL??"--"});return e.netPnL==null?o():jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsx(ui.Tooltip,{delayDuration:200,content:jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsxRuntime.jsx(ui.Text,{intensity:80,children:"Net PnL"}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Realized PnL"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.realized_pnl})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Funding fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.accumulated_funding_fee})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Trading fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.trading_fee})]})]}),className:"oui-min-w-[204px] oui-bg-base-5",tooltipProps:{arrow:{className:"oui-fill-base-5"}},children:jsxRuntime.jsx("div",{children:o()})})})};function Ft(t){if(t==null)return t;let e=new Date(t);return e.setHours(0,0,0,0),e}function G(t){if(t==null)return t;let e=new Date(t);return e.setHours(23,59,59,999),e}var ct=t=>({from:Ft(t.from),to:G(t.to??t.from)});var Rt=t=>{let{onSymbolChange:e,symbol:o}=t,{data:r,isLoading:i}=hooks.usePrivateQuery("/v1/position_history?limit=1000",{formatter(f){return (f.rows??null)?.map(d=>{if(d.realized_pnl&&d.accumulated_funding_fee&&d.trading_fee){let T=d.realized_pnl-d.accumulated_funding_fee-d.trading_fee;return {...d,netPnL:T}}return d})}}),{pagination:n}=ui.usePagination({pageSize:10}),{status:l,side:s,dateRange:a,filterDays:c,updateFilterDays:b,filterItems:S,onFilter:L}=qn(),p=react.useMemo(()=>r==null?r:r.filter(f=>{let d=s==="all"?!0:f.side.toLowerCase()===s.toLowerCase(),T=l==="all"?!0:f.position_status.toLowerCase()===l.toLowerCase(),g=f?.last_update_time??f.open_timestamp,B=a.from&&a.to?g>=a.from.getTime()&&g<=a.to.getTime():!0,X=o?f.symbol==o:!0;return d&&T&&B&&X}),[l,s,a,r,o]);return {dataSource:reactApp.useDataTap(p,{accountStatus:types.AccountStatusEnum.EnableTrading}),isLoading:i,onSymbolChange:e,pagination:n,filterItems:S,onFilter:L,symbol:o,filterDays:c,updateFilterDays:b}},qn=()=>{let[t,e]=react.useState("all"),[o,r]=react.useState("all"),i=ct({to:G(new Date),from:G(dateFns.subDays(new Date,90))}),[n,l]=react.useState(90),[s,a]=react.useState(i),c=p=>{l(p),a({from:Ft(dateFns.subDays(new Date,p-1)),to:G(new Date)});},b=p=>{if(p.name==="side"&&r(p.value),p.name==="status"&&e(p.value),p.name==="dateRange"){let m=ct(p.value);if(a(m),m.from&&m.to){let f=Math.abs(dateFns.differenceInDays(m.from,m.to))+1;[1,7,30,90].includes(f)&&l(f);}}},{isMobile:S}=ui.useScreen();return {filterItems:react.useMemo(()=>{let p={type:"select",name:"side",options:[{label:"All sides",value:"all"},{label:"Buy",value:"LONG"},{label:"Sell",value:"SHORT"}],value:o},m={type:"range",name:"dateRange",value:s},f={type:"select",name:"status",options:[{label:"All status",value:"all"},{label:"Closed",value:"closed"},{label:"Partial closed",value:"partial_closed"}],value:t};return S?[p,f]:[p,f,m]},[o,t,s]),onFilter:b,side:o,dateRange:s,status:t,filterDays:n,updateFilterDays:c}};var Qo=t=>{let{side:e,symbol:o}=t.item,r=e==="LONG";return jsxRuntime.jsx(ui.Text.formatted,{intensity:80,rule:"symbol",formatString:"base-type",size:"sm",prefix:jsxRuntime.jsx(ui.Badge,{color:r?"success":"danger",size:"xs",children:r?"Buy":"Sell"}),onClick:()=>{t.onSymbolChange?.({symbol:o});},children:o})};var $o=t=>{let{item:e}=t,o=()=>{ui.modal.alert({title:"Liquidation",message:jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(ui.Text,{children:"Liquidation id"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:98,children:e.liquidation_id})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(ui.Text,{children:"Liquidator fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.liquidator_fee})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(ui.Text,{children:"Ins. Fund fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.insurance_fund_fee})]})]})});},r=react.useMemo(()=>{let i=[];return i.push(jsxRuntime.jsx(ui.Badge,{color:e.position_status!=="closed"?"primaryLight":"neutral",size:"xs",children:ui.capitalizeFirstLetter(e.position_status)})),e.type==="adl"?(ui.capitalizeFirstLetter(e.type)):e.type==="liquidated"&&i.push(jsxRuntime.jsx(ui.Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",onClick:o,children:jsxRuntime.jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-[1px]",children:ui.capitalizeFirstLetter(e.type)})})),i},[e]);return jsxRuntime.jsx(ui.Flex,{gap:1,children:r})},Vo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Closed",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.closed_position_qty})})},Go=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Max closed",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.max_position_qty})})},Ko=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Avg. open",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.avg_open_price})})},Yo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Avg. closed",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.avg_open_price})})},Xo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Time opened",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:jsxRuntime.jsx(ui.Text.formatted,{intensity:80,formatString:"yyyy-MM-dd hh:mm:ss",rule:"date",children:e.open_timestamp})})},Jo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Time closed",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:jsxRuntime.jsx(ui.Text.formatted,{intensity:80,formatString:"yyyy-MM-dd hh:mm:ss",rule:"date",children:e.position_status==="closed"?e.close_timestamp:"--"})})};var _e=t=>jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:t.classNames?.root,children:[jsxRuntime.jsx(An,{...t}),jsxRuntime.jsx(ui.Divider,{intensity:6,className:"oui-w-full"}),jsxRuntime.jsx(Rn,{...t})]}),An=t=>{let e=()=>{let{item:o}=t;ui.modal.alert({title:"Net PnL",message:jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Realized PnL"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:o.realized_pnl})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Funding fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:o.accumulated_funding_fee})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Trading fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:o.trading_fee})]})]})});};return jsxRuntime.jsxs(ui.Flex,{gap:1,width:"100%",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",gap:1,children:[jsxRuntime.jsx(Qo,{...t}),jsxRuntime.jsx($o,{...t})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"end",className:"oui-flex-1",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Net PnL"}),jsxRuntime.jsx("button",{onClick:e,children:jsxRuntime.jsx(ui.Text.numeral,{size:"xs",coloring:!0,children:t.item.netPnL??"--"})})]})]})},Rn=t=>jsxRuntime.jsxs(ui.Grid,{cols:3,rows:2,width:"100%",gap:1,children:[jsxRuntime.jsx(Vo,{...t}),jsxRuntime.jsx(Go,{...t}),jsxRuntime.jsx(Xo,{...t}),jsxRuntime.jsx(Ko,{...t}),jsxRuntime.jsx(Yo,{...t}),jsxRuntime.jsx(Jo,{...t})]});var we=t=>{let e=_();return {...t,...e}};var Fe=t=>{let e=we(t);return jsxRuntime.jsx(_e,{...e})};var Ne=t=>{let{onSymbolChange:e,pagination:o}=t,r=Wo({onSymbolChange:e});return jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxRuntime.jsxs(ui.Flex,{gap:3,children:[t.filterItems.length>0&&jsxRuntime.jsx(ui.DataFilter,{items:t.filterItems,onFilter:i=>{t.onFilter(i);}}),[1,7,30,90].map(i=>jsxRuntime.jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsxRuntime.jsx("div",{className:"oui-z-10",children:jsxRuntime.jsx(ui.Text.gradient,{color:t.filterDays===i?"brand":void 0,className:t.filterDays!==i?"oui-text-base-contrast-54":"",children:`${i}D`})}),jsxRuntime.jsx("div",{className:"oui-gradient-primary oui-opacity-[.12] oui-absolute oui-left-0 oui-right-0 oui-top-0 oui-bottom-0 oui-rounded",onClick:()=>{t.updateFilterDays(i);}})]}))]}),jsxRuntime.jsx(uiConnector.AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-positions-content",columns:r,bordered:!0,dataSource:t.dataSource,generatedRowKey:i=>`${i.symbol}_${i.position_id}`,renderRowContainer:(i,n,l)=>jsxRuntime.jsx(J,{symbol:i.symbol,children:l}),manualPagination:!1,pagination:o,testIds:{body:"oui-testid-dataList-positionHistory-tab-body"},classNames:{root:"!oui-h-[calc(100%_-_49px)]"}})]})},Ie=t=>jsxRuntime.jsxs(ui.Grid,{cols:1,rows:2,className:"oui-grid-rows-[auto,1fr] oui-w-full",gap:1,children:[jsxRuntime.jsx(ui.Flex,{gap:2,p:2,className:"oui-bg-base-9 oui-rounded-b-xl",children:jsxRuntime.jsx(ui.DataFilter,{className:"oui-pt-0 oui-pb-0 oui-border-none",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsxRuntime.jsx(ui.ListView,{className:ui.cn("oui-w-full oui-hide-scrollbar oui-overflow-y-hidden oui-space-y-0",t.classNames?.root),contentClassName:ui.cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,renderItem:(e,o)=>jsxRuntime.jsx(J,{symbol:e.symbol,children:jsxRuntime.jsx(Fe,{item:e,index:o,onSymbolChange:t.onSymbolChange,classNames:{root:t.classNames?.cell}})})})]});var Qn=t=>{let e=Rt(t);return jsxRuntime.jsx(Ne,{...e})},$n=t=>{let{classNames:e,...o}=t,r=Rt(o);return jsxRuntime.jsx(Ie,{...r,classNames:e})};var ei=t=>{return react.useMemo(()=>[{title:"Time",dataIndex:"timestamp",fixed:"left",width:202,render:o=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:o})},{title:"Liquidation id",dataIndex:"liquidation_id",width:202,render:o=>jsxRuntime.jsx(ui.Text,{children:o})},{title:"Ins. fund transfer",dataIndex:"transfer_amount_to_insurance_fund",width:202},{title:"Instrument ",dataIndex:"Instrument",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.symbol}))})},{title:"Price (USDC)",dataIndex:"Price_(USDC)",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.transfer_price}))})},{title:"Quantity",dataIndex:"Quantity",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.position_qty}))})},{title:"Liquidation Fee",dataIndex:"Liquidation_Fee",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.liquidator_fee}))})}],[])};var oi=t=>{let{quote_dp:e}=_();return jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:["Avg. open",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:80,dp:e,padding:!1,children:t.transfer_price})]})},ii=t=>{let{quote_dp:e}=_();return jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Quantity"}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:80,dp:e,padding:!1,children:t.position_qty})]})},ri=t=>{let{quote_dp:e}=_();return jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Liquidation fee"}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:80,dp:e,padding:!1,children:t.abs_liquidator_fee})]})};var qe=t=>jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:t.classNames?.root,children:[jsxRuntime.jsx(Yn,{...t}),jsxRuntime.jsx(Xn,{...t})]}),Yn=t=>jsxRuntime.jsxs(ui.Flex,{gap:1,width:"100%",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",gap:1,children:[jsxRuntime.jsx(ui.Text.formatted,{size:"2xs",intensity:36,rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:t.item.timestamp}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"liquidation_id:"}),jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:80,children:` ${t.item.liquidation_id}`})]})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"end",className:"oui-flex-1",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Ins. Fund Transfer:"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:80,size:"xs",children:t.item.transfer_amount_to_insurance_fund})]})]}),Xn=t=>jsxRuntime.jsx(ui.Flex,{direction:"column",width:"100%",children:t.item.positions_by_perp?.map((e,o)=>jsxRuntime.jsx(J,{symbol:e.symbol,children:jsxRuntime.jsx(Jn,{isLast:o===t.item.positions_by_perp.length-1,...e})}))}),Jn=t=>jsxRuntime.jsxs(ui.Flex,{width:"100%",itemAlign:"start",className:ui.cn("oui-border-t-[1px] oui-border-line-6 oui-pt-2",!t.isLast&&"oui-pb-2"),children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,className:"oui-flex-1",children:t.symbol}),jsxRuntime.jsxs(ui.Grid,{cols:1,rows:3,width:"100%",gap:1,className:"oui-flex-1",children:[jsxRuntime.jsx(oi,{...t}),jsxRuntime.jsx(ii,{...t}),jsxRuntime.jsx(ri,{...t})]})]});var ve=t=>({...t});var Be=t=>{let{classNames:e,...o}=t,r=ve(o);return jsxRuntime.jsx(qe,{classNames:e,...r})};var Me=t=>{let e=ei();return jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxRuntime.jsxs(ui.Flex,{gap:3,children:[t.filterItems.length>0&&jsxRuntime.jsx(ui.DataFilter,{items:t.filterItems,onFilter:o=>{t.onFilter(o);}}),[1,7,30,90].map(o=>jsxRuntime.jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsxRuntime.jsx("div",{className:"oui-z-10",children:jsxRuntime.jsx(ui.Text.gradient,{color:t.filterDays===o?"brand":void 0,className:t.filterDays!==o?"oui-text-base-contrast-54":"",children:`${o}D`})}),jsxRuntime.jsx("div",{className:"oui-gradient-primary oui-opacity-[.12] oui-absolute oui-left-0 oui-right-0 oui-top-0 oui-bottom-0 oui-rounded",onClick:()=>{t.updateFilterDays(o);}})]}))]}),jsxRuntime.jsx(uiConnector.AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-liquidation-content",columns:e,bordered:!0,dataSource:t.dataSource,generatedRowKey:o=>`${o.liquidation_id}`,manualPagination:!1,pagination:t.pagination,testIds:{body:"oui-testid-dataList-liquidation-tab-body"}})]})},ke=t=>jsxRuntime.jsxs(ui.Grid,{cols:1,rows:2,className:"oui-grid-rows-[auto,1fr] oui-w-full",gap:1,children:[jsxRuntime.jsx(ui.Flex,{gap:2,p:2,className:"oui-bg-base-9 oui-rounded-b-xl",children:jsxRuntime.jsx(ui.DataFilter,{className:"oui-pt-0 oui-pb-0 oui-border-none",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsxRuntime.jsx(ui.ListView,{className:ui.cn("oui-w-full oui-hide-scrollbar oui-overflow-y-hidden oui-space-y-0",t.classNames?.root),contentClassName:ui.cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,renderItem:(e,o)=>jsxRuntime.jsx(Be,{item:e,index:o,classNames:{root:t.classNames?.cell}})})]});var Qt=t=>{let{symbol:e}=t,{page:o,pageSize:r,setPage:i,pagination:n,parsePagination:l}=ui.usePagination({pageSize:10}),{dateRange:s,filterDays:a,updateFilterDays:c,filterItems:b,onFilter:S}=ms(),[L,{meta:p,isLoading:m}]=ls({page:o,size:r,symbol:e,start_t:s.from!=null?s.from.getTime():void 0,end_t:s.to!=null?s.to.getTime():void 0});return {dataSource:reactApp.useDataTap(L),isLoading:m,loadMore:()=>{i(T=>T+1);},pagination:n,dateRange:s,filterDays:a,updateFilterDays:c,filterItems:b,onFilter:S}},ls=t=>{let e=hooks.usePrivateInfiniteQuery(us(t),{initialSize:1,formatter:n=>n}),o=react.useMemo(()=>e.data?.[0]?.meta,[e.data?.[0]]),r=react.useMemo(()=>e.data?.map(n=>n.rows)?.flat(),[e.data]),i=e.isLoading;return [r,{meta:o,isLoading:i}]},ms=()=>{let t=ct({to:G(new Date),from:G(dateFns.subDays(new Date,90))}),[e,o]=react.useState(90),[r,i]=react.useState(t),n=c=>{o(c),i({from:Ft(dateFns.subDays(new Date,c-1)),to:G(new Date)});},l=c=>{if(c.name==="dateRange"){let b=ct(c.value);if(i(b),b.from&&b.to){let S=Math.abs(dateFns.differenceInDays(b.from,b.to))+1;[1,7,30,90].includes(S)&&o(S);}}},{isMobile:s}=ui.useScreen();return {filterItems:react.useMemo(()=>{let c={type:"range",name:"dateRange",value:r};return s?[c]:[c]},[r]),onFilter:l,dateRange:r,filterDays:e,updateFilterDays:n}},us=t=>(e,o)=>{if(o&&!o.rows?.length)return null;let{symbol:r,size:i=10,page:n,end_t:l,start_t:s}=t,a=new URLSearchParams([["size",i.toString()],["page",`${e+1}`]]);return n&&a.set("page",`${n}`),status&&a.set("status",status),r&&a.set("symbol",r),l&&a.set("end_t",`${l}`),s&&a.set("start_t",`${s}`),`/v1/liquidations?${a.toString()}`};var ds=t=>{let e=Qt(t);return jsxRuntime.jsx(Me,{...e})},cs=t=>{let{classNames:e,...o}=t,r=Qt(o);return jsxRuntime.jsx(ke,{classNames:e,...r})};var fs="MarketCloseConfirmID";ui.registerSimpleDialog(fs,Ct,{size:"md",closable:!1});
|
|
15
|
+
var We=react.createContext({}),O=()=>react.useContext(We),Kt=t=>{let[e,o]=react.useState(Math.abs(t.position.position_qty).toString());react.useEffect(()=>{o(Math.abs(t.position.position_qty).toString());},[t.position.position_qty]);let[r,i]=react.useState(""),[n,l]=react.useState(t.position.position_qty>0?types.OrderSide.SELL:types.OrderSide.BUY),[s,a]=react.useState(void 0),[u,f]=react.useState(types.OrderType.MARKET),S=hooks.useSymbolsInfo(),N=t.position.symbol,p=S?.[N],m=p("quote_dp"),g=p("base_dp"),b=p("base_tick"),{helper:P,onSubmit:c,submitting:v}=hooks.useOrderEntry_deprecated(t.position?.symbol,n,!0),V=(D,k)=>{if(f(D),D===types.OrderType.LIMIT){if(!k)throw new Error("price is required");i(k);}else i("");},H=react.useMemo(()=>{let{position:D}=t;if(!D)return null;let k={order_quantity:e,symbol:t.position.symbol,order_type:u,side:n,reduce_only:!0};return u===types.OrderType.LIMIT&&(k.order_price=r),k},[t.position,r,u,e]),bt=D=>{let k=P.calculate({},"order_quantity",D);o(k.order_quantity);},Vt=D=>{let k=P.calculate({},"order_price",D);i(k.order_price);};react.useEffect(()=>{let D=H;P.validator(D).then(k=>{a(k);});},[H]);let Dt=()=>c(H).catch(D=>(typeof D=="string"?ui.toast.error(D):ui.toast.error(D.message),Promise.resolve()));return jsxRuntime.jsx(We.Provider,{value:{quantity:e,price:r,type:u,side:n,position:t.position,updatePriceChange:Vt,updateQuantity:bt,updateOrderType:V,tpslOrder:t.position.algo_order,onSubmit:Dt,submitting:v,closeOrderData:H,quoteDp:m,baseDp:g,baseTick:b,errors:s},children:t.children})};var Ue=react.createContext({}),_=()=>react.useContext(Ue),J=t=>{let e=hooks.useSymbolsInfo()[t.symbol];return jsxRuntime.jsx(Ue.Provider,{value:{base_dp:e("base_dp"),quote_dp:e("quote_dp"),base_tick:e("base_tick"),quote_tick:e("quote_tick"),base:e("base"),quote:e("quote"),symbol:t.symbol,origin:e(),quote_max:e("quote_max"),quote_min:e("quote_min")},children:t.children})};var Ye=()=>{let[t,e]=react.useState(!1),{onSubmit:o,price:r,quantity:i,closeOrderData:n,type:l,submitting:s,quoteDp:a,errors:u}=O(),{base:f,quote:S}=_(),[N]=hooks.useLocalStorage("orderly_order_confirm",!0),p=()=>o().then(b=>{e(!1);},b=>{typeof b=="string"?ui.toast.error(b):ui.toast.error(b.message);}).catch(b=>{typeof b=="string"?ui.toast.error(b):ui.toast.error(b.message);}),m=()=>{e(!1);},g=react.useMemo(()=>l===types.OrderType.MARKET?!i:!r||!i,[r,i,l]);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{variant:"outlined",size:"sm",color:"secondary",disabled:g||s,loading:s,onClick:b=>{b.stopPropagation();let P=u?.order_quantity?.message,c=u?.order_price?.message;if(P||c){ui.toast.error(P??c);return}if(!N){o();return}e(!0);},children:"Close"}),jsxRuntime.jsx(ui.SimpleDialog,{open:t,onOpenChange:e,size:"sm",children:l===types.OrderType.MARKET?jsxRuntime.jsx(St,{base:f,quantity:i,onClose:m,onConfirm:p,submitting:s,classNames:{root:"oui-items-start"},hideCloseIcon:!0}):jsxRuntime.jsx(Xt,{base:f,quantity:i,price:r,onClose:m,onConfirm:p,submitting:s,quoteDp:a,order:n,hideCloseIcon:!0})})]})},Xe=t=>{let{hideCloseIcon:e=!1}=t;return jsxRuntime.jsxs("div",{className:"oui-pb-3 oui-border-b oui-border-line-4 oui-relative oui-w-full",children:[jsxRuntime.jsx(ui.Text,{size:"base",children:t.title}),!e&&jsxRuntime.jsx("button",{onClick:t.onClose,className:"oui-absolute oui-right-0 oui-top-0 oui-text-base-contrast-54 hover:oui-text-base-contrast-80 oui-p-2",children:jsxRuntime.jsx(ui.CloseIcon,{size:18,color:"white"})})]})},Je=({onCancel:t,onConfirm:e,submitting:o})=>jsxRuntime.jsxs(ui.Flex,{id:"oui-positions-confirm-footer",gap:2,width:"100%",className:"oui-mt-3 oui-pb-1",children:[jsxRuntime.jsx(ui.Button,{id:"oui-positions-confirm-footer-cancel-button",color:"secondary",fullWidth:!0,onClick:t,size:"md",children:"Cancel"}),jsxRuntime.jsx(ui.ThrottledButton,{id:"oui-positions-confirm-footer-confirm-button",onClick:e,fullWidth:!0,loading:o,size:"md",children:"Confirm"})]}),vi=t=>{let{quantity:e,price:o,quoteDp:r,side:i}=t,n=react.useMemo(()=>o&&e?new utils.Decimal(o).mul(e).toFixed(r,utils.Decimal.ROUND_DOWN):"--",[o,e]);return jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:1,width:"100%",className:"oui-text-sm oui-text-base-contrast-54",py:5,children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:1,children:[jsxRuntime.jsx(ui.Text,{children:"Qty."}),jsxRuntime.jsx(ui.Text,{color:i===types.OrderSide.BUY?"success":"danger",children:e})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:1,children:[jsxRuntime.jsx(ui.Text,{children:"Price"}),jsxRuntime.jsx(ui.Text.formatted,{intensity:98,suffix:jsxRuntime.jsx(ui.Text,{intensity:54,children:"USDC"}),children:o})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:1,children:[jsxRuntime.jsx(ui.Text,{children:"Notional"}),jsxRuntime.jsx(ui.Text.formatted,{intensity:98,suffix:jsxRuntime.jsx(ui.Text,{intensity:54,children:"USDC"}),children:n})]})]})},St=t=>{let e=()=>{(t?.onClose??t.close)?.();};return jsxRuntime.jsxs(ui.Flex,{direction:"column",className:t.classNames?.root,children:[jsxRuntime.jsx(Xe,{onClose:e,title:"Market Close",hideCloseIcon:t.hideCloseIcon}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",className:"oui-my-5",children:`You agree closing ${utils.commifyOptional(t.quantity)} ${t.base} position at market price.`}),jsxRuntime.jsx(Je,{onCancel:e,onConfirm:async()=>{await t.onConfirm?.(),e();},submitting:t.submitting})]})},Xt=t=>{let{order:e,quoteDp:o,quantity:r,price:i,submitting:n}=t,{side:l}=e,s=()=>{t.onClose?.();};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(Xe,{onClose:s,title:"Limit Close",hideCloseIcon:t.hideCloseIcon}),jsxRuntime.jsx(ui.Text,{intensity:54,size:"sm",className:"oui-mt-5",children:`You agree closing ${utils.commify(t.quantity)} ${t.base} position at limit price.`}),jsxRuntime.jsxs(ui.Flex,{gap:2,mb:4,mt:5,justify:"between",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",formatString:"base-type",size:"base",showIcon:!0,children:e.symbol}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Badge,{color:"neutral",size:"xs",children:"Limit"}),jsxRuntime.jsx(ui.Badge,{color:l===types.OrderSide.BUY?"success":"danger",size:"xs",children:l===types.OrderSide.BUY?"Buy":"Sell"})]})]}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx(vi,{className:"oui-text-sm",price:i,quantity:r,side:e.side,quoteDp:o??2}),jsxRuntime.jsx(Je,{onCancel:s,onConfirm:t.onConfirm,submitting:t.submitting})]})};var to=()=>{let{type:t,quoteDp:e,price:o,updatePriceChange:r,updateOrderType:i,position:n}=O(),[l,s]=react.useState(!1);return jsxRuntime.jsxs(ui.DropdownMenuRoot,{children:[jsxRuntime.jsx(ui.Input,{size:"sm",value:t===types.OrderType.LIMIT?o:"Market",onValueChange:a=>r(a),formatters:[ui.inputFormatter.numberFormatter,...e?[ui.inputFormatter.dpFormatter(e)]:[]],onFocus:a=>{t===types.OrderType.MARKET&&i(types.OrderType.LIMIT,`${n.mark_price}`),s(!0);},onBlur:a=>{setTimeout(()=>{s(!1);},100);},suffix:jsxRuntime.jsx(ui.DropdownMenuTrigger,{asChild:!0,children:jsxRuntime.jsx("button",{className:"oui-px-1 oui-h-full",children:jsxRuntime.jsx(ui.CaretDownIcon,{size:12,color:"white"})})}),classNames:{root:ui.cn("oui-outline-line-12 focus-within:oui-outline-primary-light")}}),jsxRuntime.jsx(ui.DropdownMenuContent,{align:"end",className:"oui-w-[96px] oui-min-w-[96px]",onCloseAutoFocus:a=>a.preventDefault(),children:jsxRuntime.jsx(ui.DropdownMenuGroup,{children:jsxRuntime.jsx(ui.DropdownMenuItem,{size:"xs",onSelect:a=>{i(types.OrderType.MARKET);},children:jsxRuntime.jsx("span",{children:"Market"})})})})]})};var no=t=>{let[e,o]=react.useState(!1),[r,i]=react.useState(100),{baseDp:n,quoteDp:l,updateQuantity:s,quantity:a,type:u,errors:f,baseTick:S}=O();react.useEffect(()=>{let m=g=>{g.target.closest("[data-popover-root]")||o(!1);};return document.addEventListener("click",m),()=>{document.removeEventListener("click",m);}},[]);let N=m=>{p(`${t.value*(m/100)}`);},p=m=>{if(S&&S>0){let g=hooks.utils.formatNumber(m,S)??m;s(g);}};return jsxRuntime.jsxs(ui.PopoverRoot,{children:[jsxRuntime.jsx(ui.PopoverTrigger,{children:jsxRuntime.jsx(ui.Input,{size:"sm",onFocus:()=>{o(!0);},classNames:{root:"oui-outline-line-12 "},formatters:[ui.inputFormatter.numberFormatter,...n?[ui.inputFormatter.dpFormatter(n)]:[]],value:a,onBlur:m=>p(m.target.value),onValueChange:m=>{if(s(m),m=="0"||m==""){i(0);return}let g=new utils.Decimal(m).div(t.value).mul(100).abs().toFixed(0,utils.Decimal.ROUND_DOWN);i(Math.min(100,Number(g)));}})}),jsxRuntime.jsx(ui.PopoverContent,{className:"oui-w-[360px] oui-rounded-xl",align:"start",side:"bottom",onOpenAutoFocus:m=>{m.preventDefault();},children:jsxRuntime.jsxs(ui.Flex,{p:1,gap:2,width:"100%",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:98,className:"oui-min-w-[30px]",children:`${r}%`}),jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Slider,{markCount:4,value:[r],onValueChange:m=>{let g=Array.from(m.values());i(g[0]),N(g[0]);}}),jsxRuntime.jsx(Zi,{onClick:m=>{i(m*100),N(m*100);}})]})]})})]})},Zi=t=>jsxRuntime.jsx(ui.Flex,{gap:2,width:"100%",children:[{label:"0%",value:0},{label:"25%",value:.25},{label:"50%",value:.5},{label:"75%",value:.75},{label:"Max",value:1}].map((o,r)=>jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"xs",onClick:i=>{i.stopPropagation(),t.onClick(o.value);},className:"oui-w-1/5",children:o.label},r))});var ro=(t,e)=>{let o=_();return jsxRuntime.jsx(ui.Text.numeral,{dp:o.base_dp,rm:utils.Decimal.ROUND_DOWN,padding:!1,coloring:!0,children:t})},so=(t,e)=>jsxRuntime.jsx(no,{value:e.position_qty}),ao=t=>jsxRuntime.jsx(to,{});var ee=t=>t.sharePnLConfig==null?jsxRuntime.jsx(jsxRuntime.Fragment,{}):jsxRuntime.jsx("button",{type:"button",onClick:e=>{e.stopPropagation(),ui.modal.show(t.modalId,{pnl:{position:t.position,refCode:t.refCode,leverage:t.leverage,...t.sharePnLConfig}});},children:jsxRuntime.jsx(ui.ShareIcon,{color:"white",opacity:.54,size:t.iconSize??16})});var lo=t=>{let{sharePnLConfig:e,position:o,modalId:r,iconSize:i}=t,{getFirstRefCode:n}=hooks.useReferralInfo(),l=react.useMemo(()=>n()?.code,[n]),s=hooks.useSymbolLeverage(t.position.symbol);return {iconSize:i,position:o,refCode:l,leverage:s,sharePnLConfig:e,modalId:r}};var ht=t=>{let e=lo(t);return jsxRuntime.jsx(ee,{...e})};var co=t=>{let{stopLossPrice:e,takeProfitPrice:o}=t,{tpslOrder:r,position:i}=O();return jsxRuntime.jsx(pn,{stopLossPrice:e,takeProfitPrice:o,direction:"column",order:r,position:i,tooltip:!0})},uo=t=>{let{qty:e,price:o,entryPrice:r,orderSide:i,orderType:n,symbolInfo:l}=t,s=hooks.utils.priceToPnl({qty:e,price:o,entryPrice:r,orderSide:i,orderType:n},{symbol:l}),a=n===types.AlgoOrderType.TAKE_PROFIT?"TP":"SL";return jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text,{intensity:54,className:"oui-mr-1",children:`${a} PnL:`}),jsxRuntime.jsx(ui.Text.formatted,{rule:"price",className:s===0?"oui-text-base-contrast-36":s>0?"oui-text-trade-profit oui-gap-0":"oui-text-trade-loss oui-gap-0",prefix:jsxRuntime.jsx(ui.Text,{children:s===0?"":s>0?"+":"-"}),suffix:jsxRuntime.jsx(ui.Text,{intensity:36,className:"oui-ml-1",children:"USDC"}),children:`${Math.abs(s)}`})]})},pn=t=>{let{direction:e="row",order:o,position:r}=t,i=hooks.useSymbolsInfo(),n=react.useMemo(()=>{let a=[];if(!t.tooltip||!o||!r)return;let u=o.quantity;return u===0&&o.child_orders[0].type==="CLOSE_POSITION"&&(u=r.position_qty),t.takeProfitPrice&&a.push(jsxRuntime.jsx(uo,{qty:u,price:t.takeProfitPrice,entryPrice:r.average_open_price,orderSide:o.side,orderType:types.AlgoOrderType.TAKE_PROFIT,symbolInfo:i[o.symbol]()},"tp")),t.stopLossPrice&&a.push(jsxRuntime.jsx(uo,{qty:u,price:t.stopLossPrice,entryPrice:r.average_open_price,orderSide:o.side,orderType:types.AlgoOrderType.STOP_LOSS,symbolInfo:i[o.symbol]()},"sl")),jsxRuntime.jsx("div",{children:a})},[t.takeProfitPrice,t.stopLossPrice,r?.average_open_price,o?.side,o?.quantity,o?.algo_type]),l=react.useMemo(()=>{let a=[];return o?.symbol?(t.takeProfitPrice&&a.push(jsxRuntime.jsx(ui.Text.formatted,{className:ui.cn("oui-text-trade-profit oui-gap-0 oui-decoration-white/20"),rule:"price",dp:i[o.symbol]("quote_dp",2),children:t.takeProfitPrice,prefix:!t.stopLossPrice||e==="column"?jsxRuntime.jsx(ui.Text,{intensity:54,children:"TP\xA0-\xA0"}):""},"tp")),t.stopLossPrice&&a.push(jsxRuntime.jsx(ui.Text.formatted,{className:ui.cn("oui-text-trade-loss oui-gap-0 oui-decoration-white/20 "),rule:"price",dp:i[o.symbol]("quote_dp",2),children:t.stopLossPrice,prefix:!t.takeProfitPrice||e==="column"?jsxRuntime.jsx(ui.Text,{intensity:54,children:"SL\xA0-\xA0"}):""},"sl")),a.length===0?jsxRuntime.jsx(ui.Text,{children:"-"}):(a.length===2&&e==="row"&&a.splice(1,0,jsxRuntime.jsx(ui.Text,{children:"/"},"split")),a)):jsxRuntime.jsx("span",{children:"-"})},[t.takeProfitPrice,t.stopLossPrice,o?.symbol]),s=jsxRuntime.jsx("div",{className:ui.cn("oui-inline-flex oui-text-base-contrast-36",t.direction==="column"?"oui-flex-col":"oui-flex-row oui-gap-1",t.className),children:l});return t.tooltip?jsxRuntime.jsx(ui.Tooltip,{content:n,children:s}):s};var po=()=>{let{position:t,baseDp:e,quoteDp:o,tpslOrder:r}=O();return jsxRuntime.jsx(uiTpsl.PositionTPSLPopover,{position:t,order:r,label:"TP/SL",baseDP:e,quoteDP:o,isEditing:!1})};var xo=t=>{let[e,o]=hooks.useLocalStorage("unPnlPriceBasis","markPrice");return jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:3,className:"oui-text-base-contrast-54 oui-items-start",children:[jsxRuntime.jsx(ui.Text,{children:"Current unrealized profit or loss on your open positions across all widgets calculated using Mark Price."}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx("div",{className:"oui-mb-0",children:"Unrealized PnL Price Basis"}),jsxRuntime.jsx(Pn,{value:e,onValueChange:o})]})},Pn=t=>{let{value:e,onValueChange:o}=t;return jsxRuntime.jsxs(ui.Flex,{gap:2,children:[jsxRuntime.jsx(fo,{sel:e==="markPrice",label:"Mark price",value:"markPrice",onCheckChange:o}),jsxRuntime.jsx(fo,{sel:e==="lastPrice",label:"Last price",value:"lastPrice",onCheckChange:o})]})},fo=t=>{let{sel:e,label:o,value:r,onCheckChange:i}=t;return jsxRuntime.jsxs(ui.Flex,{onClick:n=>{i(r),n.stopPropagation();},gap:1,className:"oui-cursor-pointer",children:[e?jsxRuntime.jsx(Cn,{}):jsxRuntime.jsx(Sn,{}),jsxRuntime.jsx(ui.Text,{size:"xs",intensity:e?98:54,children:o})]})},Cn=()=>jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",className:"oui-fill-white",children:[jsxRuntime.jsx("path",{d:"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667",fill:"#fff",fillOpacity:".36"}),jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"3.333"})]}),Sn=()=>jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M8.01 1.333a6.667 6.667 0 1 0 0 13.333 6.667 6.667 0 0 0 0-13.333m0 1.333a5.334 5.334 0 1 1-.001 10.667 5.334 5.334 0 0 1 0-10.667",fill:"#fff",fillOpacity:".54"})});var Bt=t=>{let{tick:e="quote_dp",...o}=t,r=_();if(!r)throw new Error("NumeralWithCtx must be used inside SymbolProvider");return jsxRuntime.jsx(ui.Text.numeral,{as:"span",...o,dp:r[e]})};var bo=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o}=t;return react.useMemo(()=>[{title:"Instrument",dataIndex:"symbol",fixed:"left",width:140,onSort:(i,n)=>i.symbol.localeCompare(n.symbol),render:(i,n)=>jsxRuntime.jsxs(ui.Flex,{gap:2,children:[jsxRuntime.jsx(ui.Box,{width:4,height:20,className:ui.cn("oui-rounded-[1px]",n.position_qty>0?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxRuntime.jsx(ui.Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:l=>{t.onSymbolChange?.({symbol:i}),l.stopPropagation(),l.preventDefault();},children:`${i.split("_")[1]}-PERP`})]})},{title:"Quantity",dataIndex:"position_qty",onSort:(i,n)=>i.position_qty-n.position_qty,width:120,className:"oui-pl-6",render:ro},{title:"Avg. open",className:"oui-h-[48px]",width:120,onSort:!0,dataIndex:"average_open_price",render:(i,n)=>jsxRuntime.jsx(Bt,{rm:utils.Decimal.ROUND_DOWN,children:i})},{title:"Mark price",dataIndex:"mark_price",width:120,onSort:!0,className:"oui-h-[48px]",render:(i,n)=>jsxRuntime.jsx(Bt,{rm:utils.Decimal.ROUND_DOWN,children:i})},{title:jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[280px] oui-text-2xs oui-text-base-contrast-54 oui-p-3 oui-bg-base-8",content:"Estimated price at which your position will be liquidated. Prices are estimated and depend on multiple factors across all positions.",children:jsxRuntime.jsx(ui.Text,{children:"Liq. price"})}),width:100,onSort:!0,dataIndex:"est_liq_price",render:(i,n)=>Number(i)===0?"--":jsxRuntime.jsx(Bt,{rm:utils.Decimal.ROUND_DOWN,className:Number(i)>0?"oui-text-warning-light":"",children:i??"--"})},{title:jsxRuntime.jsx(ui.HoverCard,{content:jsxRuntime.jsx(xo,{}),side:"top",align:"center",className:"oui-max-w-[280px] oui-text-2xs",children:jsxRuntime.jsx(ui.Text,{children:"Unreal. PnL"})}),dataIndex:"unrealized_pnl",width:150,onSort:!0,rule:"price",numeralProps:{coloring:!0},render:(i,n)=>jsxRuntime.jsxs(ui.Flex,{gap:2,children:[jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text.numeral,{dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,coloring:!0,className:"oui-font-semibold",children:i}),jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,coloring:!0,className:"oui-font-semibold",prefix:"(",suffix:")",children:n.unrealized_pnl_ROI})]}),jsxRuntime.jsx(ht,{position:n,sharePnLConfig:t.sharePnLConfig,modalId:uiShare.SharePnLDialogId})]})},{title:"TP/SL",dataIndex:"__",width:150,render:(i,n)=>jsxRuntime.jsx(co,{stopLossPrice:n.sl_trigger_price,takeProfitPrice:n.tp_trigger_price})},{title:"Notional",dataIndex:"notional",className:"oui-h-[48px]",width:100,onSort:!0,render:i=>jsxRuntime.jsx(ui.Text.numeral,{dp:e,children:i})},{title:jsxRuntime.jsx(ui.Tooltip,{className:"oui-max-w-[280px] oui-text-2xs oui-text-base-contrast-54 oui-p-3 oui-bg-base-8",content:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:3,className:"oui-text-base-contrast-54 oui-bg-base-8 oui-rounded-sm",children:[jsxRuntime.jsx("span",{children:"The minimum equity to keep your position. "}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsx("span",{children:"Margin = Position size * Mark price * MMR"})]}),children:jsxRuntime.jsx(ui.Text,{children:"Margin"})}),dataIndex:"mm",onSort:!0,width:100,rule:"price",render:i=>jsxRuntime.jsx(ui.Text.numeral,{children:i})},{title:"Qty.",dataIndex:"close_qty",width:100,fixed:"right",render:so},{title:"Price",dataIndex:"close_price",width:100,fixed:"right",render:ao},{title:"",dataIndex:"close_position",align:"right",width:160,fixed:"right",render:i=>jsxRuntime.jsxs(ui.Flex,{gapX:2,justify:"end",children:[jsxRuntime.jsx(Ye,{}),jsxRuntime.jsx(po,{})]})}],[e,o])};var Po=t=>{let{item:e}=t,o=e.position_qty>0;return jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",formatString:"base-type",size:"2xs",suffix:jsxRuntime.jsx(ui.Badge,{color:o?"success":"danger",size:"xs",children:o?"Buy":"Sell"}),showIcon:!0,onClick:()=>{t.onSymbolChange?.({symbol:e.symbol});},children:e.symbol})},Co=t=>{let{item:e}=t;return jsxRuntime.jsxs(ui.Flex,{gap:3,children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",className:"oui-text-2xs",itemAlign:"end",children:[jsxRuntime.jsxs(ui.Text,{intensity:36,children:["Unreal. PnL",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),jsxRuntime.jsx(ui.Text.numeral,{size:"xs",dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,coloring:!0,className:"orderly-font-semibold",suffix:jsxRuntime.jsx(ui.Text.numeral,{rule:"percentages",dp:t.pnlNotionalDecimalPrecision,rm:utils.Decimal.ROUND_DOWN,prefix:"(",suffix:")",className:ui.cn("oui-ml-1",e.unrealized_pnl_ROI>0?"oui-text-success-darken":"oui-text-danger-darken"),children:e.unrealized_pnl_ROI}),children:e.unrealized_pnl})]}),jsxRuntime.jsx(ht,{position:e,sharePnLConfig:t.sharePnLConfig,modalId:uiShare.SharePnLBottomSheetId,iconSize:12})]})},So=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Qty.",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,children:e.position_qty})})},ho=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Margin",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,intensity:80,children:e.mm})})},_o=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{align:"end",label:jsxRuntime.jsxs(ui.Text,{children:["Notional",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,intensity:80,children:e.notional})})},To=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Avg. open",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,rm:utils.Decimal.ROUND_DOWN,intensity:80,children:e.average_open_price})})},wo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Mark price",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,rm:utils.Decimal.ROUND_DOWN,intensity:80,children:e.mark_price})})},Fo=t=>{let{item:e}=t,o=e.est_liq_price&&e.est_liq_price>0?e.est_liq_price:"-";return jsxRuntime.jsx(ui.Statistic,{label:"Liq. price",align:"end",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.quote_dp,rm:utils.Decimal.ROUND_DOWN,color:"warning",children:o})})},Lo=t=>{let{item:e}=t;return e.tp_trigger_price==null&&e.sl_trigger_price==null?jsxRuntime.jsx(jsxRuntime.Fragment,{}):jsxRuntime.jsxs(ui.Flex,{className:"oui-text-2xs oui-text-base-contrast-36",children:[jsxRuntime.jsx(ui.Text,{children:"TP/SL:\xA0"}),jsxRuntime.jsxs(ui.Flex,{className:"oui-gap-[2px]",children:[e.tp_trigger_price&&jsxRuntime.jsx(ui.Text.numeral,{color:"buy",children:e.tp_trigger_price}),e.sl_trigger_price&&"/",e.sl_trigger_price&&jsxRuntime.jsx(ui.Text.numeral,{color:"sell",children:e.sl_trigger_price})]})]})};var se=t=>{let{item:e,sheetOpen:o,setSheetOpen:r,dialogOpen:i,setDialogOpen:n,updatePriceChange:l,base:s,quantity:a,price:u,onClose:f,onConfirm:S,submitting:N,quote_dp:p,closeOrderData:m,onCloseDialog:g}=t,b=e.position_qty>0,P=c=>{if(t.baseTick&&t.baseTick>0){let v=hooks.utils.formatNumber(c,t.baseTick)??c;t.updateQuantity(v);}};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",onClick:()=>{l("limit"),r(!0);},children:"Limit Close"}),o&&jsxRuntime.jsx(ui.SimpleSheet,{title:"Limit close",open:o,onOpenChange:r,children:jsxRuntime.jsxs(ui.Flex,{direction:"column",gap:3,width:"100%",itemAlign:"start",className:"oui-text-sm",children:[jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text.formatted,{rule:"symbol",showIcon:!0,children:e.symbol}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Badge,{color:"neutral",size:"xs",children:"Limit"}),b&&jsxRuntime.jsx(ui.Badge,{color:"success",size:"xs",children:"Buy"}),!b&&jsxRuntime.jsx(ui.Badge,{color:"danger",size:"xs",children:"Sell"})]})]}),jsxRuntime.jsx(ui.Divider,{className:"oui-w-full"}),jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Last price"}),jsxRuntime.jsx(ui.Text.numeral,{dp:t.item?.symbolInfo?.quote_dp,suffix:jsxRuntime.jsx(ui.Text,{intensity:36,children:"USDC"}),children:t.curMarkPrice})]}),jsxRuntime.jsxs(ui.Flex,{width:"100%",direction:"column",gap:2,children:[jsxRuntime.jsx(ui.Input.tooltip,{prefix:"Price",suffix:t.quote,align:"right",fullWidth:!0,autoComplete:"off",formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(t.quote_dp)],triggerClassName:"oui-w-full",tooltip:t.errors?.order_price?.message,color:t.errors?.order_price?.message?"danger":void 0,value:t.price,onValueChange:c=>t.updatePriceChange(c),classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:ui.cn("oui-outline-line-12 oui-w-full",t.errors?.order_price?.message?"oui-outline-danger":void 0)}}),jsxRuntime.jsx(ui.Input,{prefix:"Quantity",suffix:t.base,align:"right",fullWidth:!0,autoComplete:"off",formatters:[ui.inputFormatter.numberFormatter,ui.inputFormatter.dpFormatter(t.base_dp)],value:t.quantity,onBlur:c=>P(c.target.value),onValueChange:c=>{t.updateQuantity(c);let v=new utils.Decimal(c).div(t.item.position_qty).mul(100).toDecimalPlaces(2,utils.Decimal.ROUND_DOWN).toNumber();t.setSliderValue(v);},classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:ui.cn("oui-outline-line-12 oui-w-full")}}),jsxRuntime.jsx(ui.Slider,{markCount:4,value:[t.sliderValue],color:"primary",onValueChange:c=>{t.setSliderValue(c[0]);let v=new utils.Decimal(c[0]).div(100).mul(t.item.position_qty).toFixed(t.base_dp,utils.Decimal.ROUND_DOWN);P(v);}}),jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{color:"primary",size:"2xs",children:`${t.sliderValue}%`}),jsxRuntime.jsxs(ui.Flex,{gap:1,children:[jsxRuntime.jsx(ui.Text,{size:"2xs",color:"primary",children:"Max"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:54,size:"2xs",children:Math.abs(t.item.position_qty)})]})]})]}),jsxRuntime.jsxs(ui.Flex,{width:"100%",gap:3,mt:2,children:[jsxRuntime.jsx(ui.Button,{fullWidth:!0,color:"secondary",onClick:c=>{f();},children:"Cancel"}),jsxRuntime.jsx(ui.ThrottledButton,{fullWidth:!0,disabled:N,loading:N,onClick:c=>{c.stopPropagation(),c.preventDefault();let v=t.errors,V=v?.order_quantity?.message,H=v?.order_price?.message;if(V||H){ui.toast.error(V??H);return}if(!t.orderConfirm){S();return}n(!0);},children:"Confirm"})]})]})}),i&&jsxRuntime.jsx(ui.SimpleDialog,{open:i,onOpenChange:n,size:"xs",children:jsxRuntime.jsx(Xt,{base:s,quantity:a,price:u,onClose:g,onConfirm:S,submitting:N,quoteDp:p,order:m,hideCloseIcon:!0})})]})};var le=t=>{let{state:e}=t,[o,r]=react.useState(!1),[i,n]=react.useState(!1),{onSubmit:l,price:s,quantity:a,closeOrderData:u,submitting:f,type:S,updatePriceChange:N,updateOrderType:p,updateQuantity:m,errors:g,baseTick:b}=O(),P=react.useRef(!1),[c,v]=react.useState(100),[V]=hooks.useLocalStorage("orderly_order_confirm",!0),H=()=>l().then(It=>{r(!1),n(!1);},It=>{typeof It=="string"?ui.toast.error(It):ui.toast.error(It.message);}),bt=()=>{r(!1);},Vt=()=>{n(!1);},Dt=hooks.useMarkPricesStream(),D=react.useMemo(()=>Dt?.data?.[e.item.symbol]??"--",[Dt]),{quote_dp:k,base_dp:di,base:ci,quote:pi}=_();return react.useEffect(()=>{!P.current&&D&&o&&(P.current=!0,p(types.OrderType.LIMIT,`${D}`));},[P,D,o]),react.useEffect(()=>{o||(p(types.OrderType.MARKET),P.current=!1);},[o]),{...e,sheetOpen:o,setSheetOpen:r,curMarkPrice:D,quote_dp:k,base_dp:di,base:ci,quote:pi,baseTick:b,orderConfirm:V,onClose:bt,onConfirm:H,price:s,quantity:a,closeOrderData:u,submitting:f,updatePriceChange:N,updateQuantity:m,errors:g,sliderValue:c,setSliderValue:v,dialogOpen:i,setDialogOpen:n,onCloseDialog:Vt}};var me=t=>{let e=le(t);return jsxRuntime.jsx(se,{...e})};var de=t=>jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",disabled:t.submitting,loading:t.submitting,onClick:e=>{if(e.stopPropagation(),e.preventDefault(),t.updateOrderType(types.OrderType.MARKET),!t.orderConfirm){t.onConfirm();return}t.setDialogOpen(!0);},children:"Market Close"}),jsxRuntime.jsx(ui.SimpleDialog,{open:t.dialogOpen,onOpenChange:t.setDialogOpen,size:"xs",children:jsxRuntime.jsx(St,{base:t.base,quantity:t.quantity,onClose:t.onClose,onConfirm:t.onConfirm,submitting:t.submitting,hideCloseIcon:!0})})]});var ce=t=>{let e=_(),[o,r]=react.useState(!1),{onSubmit:i,price:n,quantity:l,closeOrderData:s,submitting:a,type:u,updatePriceChange:f,updateOrderType:S,updateQuantity:N}=O(),[p]=hooks.useLocalStorage("orderly_order_confirm",!0);return {...t,...e,dialogOpen:o,setDialogOpen:r,orderConfirm:p,onSubmit:i,quantity:l,onClose:()=>{r(!1);},onConfirm:()=>i().then(b=>{r(!1);},b=>{typeof b=="string"?ui.toast.error(b):ui.toast.error(b.message);}),submitting:a,updateOrderType:S,updateQuantity:N}};var pe=t=>{let e=ce(t);return jsxRuntime.jsx(de,{...e})};var fe=t=>jsxRuntime.jsx(ui.Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",onClick:e=>{e.stopPropagation(),e.preventDefault(),t.openTP_SL();},children:"TP/SL"});var ye=t=>{let e=hooks.useSymbolsInfo()[t.state.item.symbol]();return {openTP_SL:()=>{ui.modal.sheet({title:"TP/SL",content:jsxRuntime.jsx(uiTpsl.PositionTPSLSheet,{position:t.state.item,symbolInfo:e})});},...t,...e}};var xe=t=>{let e=ye(t);return jsxRuntime.jsx(fe,{...e})};var ge=t=>{let{className:e,...o}=t;return jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,p:2,r:"xl",itemAlign:"start",className:ui.cn(e,"oui-bg-base-9"),children:[jsxRuntime.jsx(ur,{...o}),jsxRuntime.jsx(ui.Divider,{intensity:6,className:"oui-w-full"}),jsxRuntime.jsx(dr,{...o}),jsxRuntime.jsx(Lo,{...o}),jsxRuntime.jsx(cr,{...o})]})},ur=t=>jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(Po,{...t}),jsxRuntime.jsx(Co,{...t})]}),dr=t=>jsxRuntime.jsxs(ui.Grid,{cols:3,rows:2,gap:2,width:"100%",children:[jsxRuntime.jsx(So,{...t}),jsxRuntime.jsx(ho,{...t}),jsxRuntime.jsx(_o,{...t}),jsxRuntime.jsx(To,{...t}),jsxRuntime.jsx(wo,{...t}),jsxRuntime.jsx(Fo,{...t})]}),cr=t=>jsxRuntime.jsxs(ui.Grid,{width:"100%",gap:2,cols:3,rows:1,children:[jsxRuntime.jsx(xe,{state:t}),jsxRuntime.jsx(me,{state:t}),jsxRuntime.jsx(pe,{state:t})]});var be=t=>{let e=_();return {...t,...e}};var Pe=t=>{let e=be(t);return jsxRuntime.jsx(ge,{...e,className:t.className})};var Ao=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,pagination:r}=t,i=bo({pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:t.onSymbolChange});return jsxRuntime.jsx(uiConnector.AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-positions-content",columns:i,bordered:!0,dataSource:t.dataSource,generatedRowKey:n=>n.symbol,renderRowContainer:(n,l,s)=>jsxRuntime.jsx(J,{symbol:n.symbol,children:jsxRuntime.jsx(Kt,{position:n,children:s})}),manualPagination:!1,pagination:r,testIds:{body:"oui-testid-dataList-position-tab-body"}})},Ro=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o}=t;return jsxRuntime.jsx(ui.ListView,{className:"oui-w-full oui-hide-scrollbar oui-overflow-y-hidden oui-space-y-0",contentClassName:"!oui-space-y-1",dataSource:t.dataSource,renderItem:(r,i)=>jsxRuntime.jsx(J,{symbol:r.symbol,children:jsxRuntime.jsx(Kt,{position:r,children:jsxRuntime.jsx(Pe,{item:r,index:i,pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:t.onSymbolChange})})})})};var Ce=t=>{let{symbol:e,calcMode:o,includedPendingOrder:r,pnlNotionalDecimalPrecision:i,sharePnLConfig:n,onSymbolChange:l}=t,{pagination:s}=ui.usePagination({pageSize:50}),[a,u,{isLoading:f}]=hooks.usePositionStream(e,{calcMode:o,includedPendingOrder:r});return {dataSource:reactApp.useDataTap(a?.rows)??void 0,isLoading:f,pnlNotionalDecimalPrecision:i,sharePnLConfig:n,symbol:e,onSymbolChange:l,pagination:s}};var Pr=t=>{let e=Ce(t);return jsxRuntime.jsx(Ao,{...e})},Cr=t=>{let e=Ce(t);return jsxRuntime.jsx(Ro,{...e})};var Wo=t=>{let{onSymbolChange:e,pnlNotionalDecimalPrecision:o}=t;return react.useMemo(()=>[{title:"Instrument",dataIndex:"symbol",fixed:"left",width:200,onSort:(i,n)=>i.symbol.localeCompare(n.symbol),render:(i,n)=>jsxRuntime.jsx(_r,{record:n,onSymbolChange:e})},{title:"Closed / Max closed",dataIndex:"close_maxClose",width:200,render:(i,n)=>jsxRuntime.jsx(Tr,{record:n})},{title:"Net PnL",dataIndex:"netPnL",width:140,onSort:(i,n)=>i.netPnL==null||n.netPnL==null?-1:(i.netPnL??0)-(n.netPnL??0),render:(i,n)=>jsxRuntime.jsx(wr,{record:n,pnlNotionalDecimalPrecision:o})},{title:"Avg. open",dataIndex:"avg_open",width:140,render:(i,n)=>{let l=n.avg_open_price!=null?Math.abs(n.avg_open_price):"--",{quote_dp:s}=_();return jsxRuntime.jsx(ui.Text.numeral,{dp:s,padding:!1,children:l})}},{title:"Avg. close",dataIndex:"avg_close",width:175,render:(i,n)=>{let l=n.avg_close_price!=null?Math.abs(n.avg_close_price):"--",{quote_dp:s}=_();return jsxRuntime.jsx(ui.Text.numeral,{dp:s,padding:!1,children:l})}},{title:"Time opened",dataIndex:"open_timestamp",width:175,onSort:!0,render:(i,n)=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:n.open_timestamp})},{title:"Time closed",dataIndex:"close_timestamp",width:175,onSort:!0,render:(i,n)=>n.position_status=="closed"&&n.close_timestamp?jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:n.close_timestamp??"--"}):"--"},{title:"Updated time",dataIndex:"last_update_time",width:175,onSort:!0,render:(i,n)=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:n.last_update_time})}],[o])},_r=t=>{let{record:e,onSymbolChange:o}=t,r=react.useMemo(()=>{let i=[];return i.push(jsxRuntime.jsx(ui.Badge,{color:e.position_status!=="closed"?"primaryLight":"neutral",size:"xs",children:ui.capitalizeFirstLetter(e.position_status.replace("_"," "))})),e.type==="adl"?i.push(jsxRuntime.jsx(ui.Badge,{color:"neutral",size:"xs",children:ui.capitalizeFirstLetter(e.type)})):e.type==="liquidated"&&i.push(jsxRuntime.jsx(ui.Tooltip,{className:"oui-min-w-[204px] oui-bg-base-5",tooltipProps:{arrow:{className:"oui-fill-base-5"}},content:jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Liquidation id"}),jsxRuntime.jsx(ui.Text,{intensity:98,children:e.liquidation_id})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Liquidator fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.liquidator_fee})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Ins. Fund fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.insurance_fund_fee})]})]}),children:jsxRuntime.jsx("div",{children:jsxRuntime.jsx(ui.Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",children:jsxRuntime.jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-[1px]",children:ui.capitalizeFirstLetter(e.type)})})})})),i},[e]);return jsxRuntime.jsxs(ui.Flex,{gap:2,height:48,children:[jsxRuntime.jsx(ui.Box,{width:4,height:38,className:ui.cn("oui-rounded-[1px] oui-shrink-0",e.side==="LONG"?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",children:[jsxRuntime.jsx(ui.Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:i=>{o?.({symbol:e.symbol}),i.stopPropagation(),i.preventDefault();},children:`${e.symbol.split("_")[1]}-PERP`}),jsxRuntime.jsx(ui.Flex,{gap:1,children:r})]})]})},Tr=t=>{let{record:e}=t,{base_dp:o}=_();return jsxRuntime.jsxs(ui.Flex,{gap:1,direction:"column",itemAlign:"start",className:"oui-overflow-hidden oui-whitespace-nowrap oui-text-ellipsis",children:[jsxRuntime.jsx(ui.Text.numeral,{dp:o,children:Math.abs(e.closed_position_qty)}),jsxRuntime.jsx(ui.Text.numeral,{dp:o,className:"oui-truncate",children:Math.abs(e.max_position_qty)})]})},wr=t=>{let{record:e,pnlNotionalDecimalPrecision:o}=t,r=e.netPnL!=null?Math.abs(e.netPnL):void 0,i=()=>jsxRuntime.jsx(ui.Text.numeral,{dp:o,color:e.netPnL!=null?e.netPnL>0?"profit":"lose":void 0,className:r==null?"":"oui-cursor-pointer oui-border-b oui-border-dashed oui-border-line-12",children:r??"--"});return e.netPnL==null?i():jsxRuntime.jsx(ui.Flex,{children:jsxRuntime.jsx(ui.Tooltip,{delayDuration:200,content:jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsxRuntime.jsx(ui.Text,{intensity:80,children:"Net PnL"}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Realized PnL"}),jsxRuntime.jsx(ui.Text,{color:e.realized_pnl>=0?"profit":"lose",className:"oui-cursor-pointer",children:utils.commifyOptional(e.realized_pnl)})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Funding fee"}),jsxRuntime.jsx(ui.Text,{color:e.accumulated_funding_fee>=0?"profit":"lose",className:"oui-cursor-pointer",children:utils.commifyOptional(e.accumulated_funding_fee)})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Trading fee"}),jsxRuntime.jsx(ui.Text,{color:e.trading_fee>=0?"profit":"lose",className:"oui-cursor-pointer",children:utils.commifyOptional(e.trading_fee)})]})]}),className:"oui-min-w-[204px] oui-bg-base-5",tooltipProps:{arrow:{className:"oui-fill-base-5"}},children:jsxRuntime.jsx("div",{children:i()})})})};function Lt(t){if(t==null)return t;let e=new Date(t);return e.setHours(0,0,0,0),e}function K(t){if(t==null)return t;let e=new Date(t);return e.setHours(23,59,59,999),e}var pt=t=>({from:Lt(t.from),to:K(t.to??t.from)});var zt=t=>{let{onSymbolChange:e,symbol:o,pnlNotionalDecimalPrecision:r}=t,{data:i,isLoading:n}=hooks.usePrivateQuery(o?`/v1/position_history?symbol=${o}&limit=1000`:"/v1/position_history?limit=1000",{formatter(P){return (P.rows??null)?.map(c=>{if(c.realized_pnl!=null&&c.accumulated_funding_fee!=null&&c.trading_fee!=null){let v=c.realized_pnl-c.accumulated_funding_fee-c.trading_fee;return {...c,netPnL:v}}return c})},revalidateOnFocus:!0}),{pagination:l,setPage:s}=ui.usePagination({pageSize:10}),{status:a,side:u,dateRange:f,filterDays:S,updateFilterDays:N,filterItems:p,onFilter:m}=Br();react.useEffect(()=>{s(1);},[a,u,f,S]);let g=react.useMemo(()=>i==null?i:i.filter(P=>{let c=u==="all"?!0:P.side.toLowerCase()===u.toLowerCase(),v=a==="all"?!0:P.position_status.toLowerCase()===a.toLowerCase(),V=P?.last_update_time??P.open_timestamp,H=f.from&&f.to?V>=f.from.getTime()&&V<=f.to.getTime():!0,bt=o?P.symbol==o:!0;return c&&v&&H&&bt}),[a,u,f,i,o]);return {dataSource:reactApp.useDataTap(g,{accountStatus:types.AccountStatusEnum.EnableTrading}),isLoading:n,onSymbolChange:e,pagination:l,filterItems:p,onFilter:m,symbol:o,filterDays:S,updateFilterDays:N,pnlNotionalDecimalPrecision:r}},Br=()=>{let[t,e]=react.useState("all"),[o,r]=react.useState("all"),i=pt({to:K(new Date),from:K(dateFns.subDays(new Date,90))}),[n,l]=react.useState(90),[s,a]=react.useState(i),u=p=>{l(p),a({from:Lt(dateFns.subDays(new Date,p-1)),to:K(new Date)});},f=p=>{if(p.name==="side"&&r(p.value),p.name==="status"&&e(p.value),p.name==="dateRange"){let m=pt(p.value);if(a(m),m.from&&m.to){let g=Math.abs(dateFns.differenceInDays(m.from,m.to))+1;[1,7,30,90].includes(g)&&l(g);}}},{isMobile:S}=ui.useScreen();return {filterItems:react.useMemo(()=>{let p={type:"select",name:"side",options:[{label:"All sides",value:"all"},{label:"Buy",value:"LONG"},{label:"Sell",value:"SHORT"}],value:o},m={type:"range",name:"dateRange",value:s},g={type:"select",name:"status",options:[{label:"All status",value:"all"},{label:"Closed",value:"closed"},{label:"Partial closed",value:"partial_closed"}],value:t};return S?[p,g]:[p,g,m]},[o,t,s]),onFilter:f,side:o,dateRange:s,status:t,filterDays:n,updateFilterDays:u}};var $o=t=>{let{side:e,symbol:o}=t.item,r=e==="LONG";return jsxRuntime.jsx(ui.Text.formatted,{intensity:80,rule:"symbol",formatString:"base-type",size:"sm",prefix:jsxRuntime.jsx(ui.Badge,{color:r?"success":"danger",size:"xs",children:r?"Buy":"Sell"}),onClick:()=>{t.onSymbolChange?.({symbol:o});},children:o})};var Vo=t=>{let{item:e}=t,o=()=>{ui.modal.alert({title:"Liquidation",message:jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(ui.Text,{children:"Liquidation id"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:98,children:e.liquidation_id})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(ui.Text,{children:"Liquidator fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.liquidator_fee})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",children:[jsxRuntime.jsx(ui.Text,{children:"Ins. Fund fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:e.insurance_fund_fee})]})]})});},r=react.useMemo(()=>{let i=[];return i.push(jsxRuntime.jsx(ui.Badge,{color:e.position_status!=="closed"?"primaryLight":"neutral",size:"xs",children:ui.capitalizeFirstLetter(e.position_status)})),e.type==="adl"?(ui.capitalizeFirstLetter(e.type)):e.type==="liquidated"&&i.push(jsxRuntime.jsx(ui.Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",onClick:o,children:jsxRuntime.jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-[1px]",children:ui.capitalizeFirstLetter(e.type)})})),i},[e]);return jsxRuntime.jsx(ui.Flex,{gap:1,children:r})},Go=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Closed",jsxRuntime.jsx(ui.Text,{intensity:20,children:` (${t.base})`})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.closed_position_qty})})},Ko=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Max closed",jsxRuntime.jsx(ui.Text,{intensity:20,children:` (${t.base})`})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.max_position_qty})})},Yo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Avg. open",jsxRuntime.jsx(ui.Text,{intensity:20,children:" (USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.avg_open_price})})},Xo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:jsxRuntime.jsxs(ui.Text,{children:["Avg. closed",jsxRuntime.jsx(ui.Text,{intensity:20,children:" (USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsxRuntime.jsx(ui.Text.numeral,{dp:t.base_dp,padding:!1,coloring:!0,intensity:80,children:e.avg_open_price})})},Jo=t=>{let{item:e}=t;return jsxRuntime.jsx(ui.Statistic,{label:"Time opened",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:jsxRuntime.jsx(ui.Text.formatted,{intensity:80,formatString:"yyyy-MM-dd hh:mm:ss",rule:"date",children:e.open_timestamp})})},Zo=t=>{let{item:e}=t,o=e.position_status=="closed"&&e.close_timestamp?jsxRuntime.jsx(ui.Text.formatted,{intensity:80,formatString:"yyyy-MM-dd hh:mm:ss",rule:"date",children:e.close_timestamp}):"--";return jsxRuntime.jsx(ui.Statistic,{label:"Time closed",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:o})};var we=t=>jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:t.classNames?.root,children:[jsxRuntime.jsx(zr,{...t}),jsxRuntime.jsx(ui.Divider,{intensity:6,className:"oui-w-full"}),jsxRuntime.jsx(Hr,{...t})]}),zr=t=>{let e=()=>{let{item:o}=t;ui.modal.alert({title:"Net PnL",message:jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Realized PnL"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:o.realized_pnl})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Funding fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:o.accumulated_funding_fee})]}),jsxRuntime.jsxs(ui.Flex,{justify:"between",width:"100%",gap:2,children:[jsxRuntime.jsx(ui.Text,{intensity:54,children:"Trading fee"}),jsxRuntime.jsx(ui.Text.numeral,{coloring:!0,children:o.trading_fee})]})]})});};return jsxRuntime.jsxs(ui.Flex,{gap:1,width:"100%",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",gap:1,children:[jsxRuntime.jsx($o,{...t}),jsxRuntime.jsx(Vo,{...t})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"end",className:"oui-flex-1",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Net PnL"}),jsxRuntime.jsx("button",{onClick:e,children:jsxRuntime.jsx(ui.Text.numeral,{size:"xs",coloring:!0,children:t.item.netPnL??"--"})})]})]})},Hr=t=>jsxRuntime.jsxs(ui.Grid,{cols:3,rows:2,width:"100%",gap:0,children:[jsxRuntime.jsx(Go,{...t}),jsxRuntime.jsx(Ko,{...t}),jsxRuntime.jsx(Jo,{...t}),jsxRuntime.jsx(Yo,{...t}),jsxRuntime.jsx(Xo,{...t}),jsxRuntime.jsx(Zo,{...t})]});var Fe=t=>{let e=_();return {...t,...e}};var Le=t=>{let e=Fe(t);return jsxRuntime.jsx(we,{...e})};var De=t=>{let{onSymbolChange:e,pagination:o,pnlNotionalDecimalPrecision:r}=t,i=Wo({onSymbolChange:e,pnlNotionalDecimalPrecision:r});return jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxRuntime.jsxs(ui.Flex,{gap:3,children:[t.filterItems.length>0&&jsxRuntime.jsx(ui.DataFilter,{items:t.filterItems,onFilter:n=>{t.onFilter(n);}}),[1,7,30,90].map(n=>jsxRuntime.jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsxRuntime.jsx("div",{className:"oui-z-10",children:jsxRuntime.jsx(ui.Text.gradient,{color:t.filterDays===n?"brand":void 0,className:t.filterDays!==n?"oui-text-base-contrast-54":"",children:`${n}D`})}),jsxRuntime.jsx("div",{className:"oui-gradient-primary oui-opacity-[.12] oui-absolute oui-left-0 oui-right-0 oui-top-0 oui-bottom-0 oui-rounded",onClick:()=>{t.updateFilterDays(n);}})]}))]}),jsxRuntime.jsx(uiConnector.AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-positions-content",columns:i,bordered:!0,dataSource:t.dataSource,generatedRowKey:n=>`${n.symbol}_${n.position_id}`,renderRowContainer:(n,l,s)=>jsxRuntime.jsx(J,{symbol:n.symbol,children:s}),manualPagination:!1,pagination:o,testIds:{body:"oui-testid-dataList-positionHistory-tab-body"},classNames:{root:"!oui-h-[calc(100%_-_49px)]"}})]})},Ie=t=>jsxRuntime.jsxs(ui.Grid,{cols:1,rows:2,className:"oui-grid-rows-[auto,1fr] oui-w-full",gap:1,children:[jsxRuntime.jsx(ui.Flex,{gap:2,p:2,className:"oui-bg-base-9 oui-rounded-b-xl",children:jsxRuntime.jsx(ui.DataFilter,{className:"oui-pt-0 oui-pb-0 oui-border-none",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsxRuntime.jsx(ui.ListView,{className:ui.cn("oui-w-full oui-hide-scrollbar oui-overflow-y-hidden oui-space-y-0",t.classNames?.root),contentClassName:ui.cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,renderItem:(e,o)=>jsxRuntime.jsx(J,{symbol:e.symbol,children:jsxRuntime.jsx(Le,{item:e,index:o,onSymbolChange:t.onSymbolChange,classNames:{root:t.classNames?.cell}})})})]});var Vr=t=>{let e=zt(t);return jsxRuntime.jsx(De,{...e})},Gr=t=>{let{classNames:e,...o}=t,r=zt(o);return jsxRuntime.jsx(Ie,{...r,classNames:e})};var oi=t=>{return react.useMemo(()=>[{title:"Time",dataIndex:"timestamp",fixed:"left",width:202,render:o=>jsxRuntime.jsx(ui.Text.formatted,{rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:o})},{title:"Liquidation id",dataIndex:"liquidation_id",width:202,render:o=>jsxRuntime.jsx(ui.Text,{children:o})},{title:"Ins. fund transfer",dataIndex:"transfer_amount_to_insurance_fund",width:202},{title:"Instrument ",dataIndex:"Instrument",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.symbol}))})},{title:"Price (USDC)",dataIndex:"Price_(USDC)",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.transfer_price}))})},{title:"Quantity",dataIndex:"Quantity",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.position_qty}))})},{title:"Liquidation Fee",dataIndex:"Liquidation_Fee",width:202,render:(o,r)=>jsxRuntime.jsx(ui.Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(i=>jsxRuntime.jsx(ui.Text,{children:i.liquidator_fee}))})}],[])};var ii=t=>{let{quote_dp:e}=_();return jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsxs(ui.Text,{size:"2xs",intensity:36,children:["Avg. open",jsxRuntime.jsx(ui.Text,{intensity:20,children:"(USDC)"})]}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:80,dp:e,padding:!1,children:t.transfer_price})]})},ni=t=>{let{quote_dp:e}=_();return jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Quantity"}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:80,dp:e,padding:!1,children:t.position_qty})]})},ri=t=>{let{quote_dp:e}=_();return jsxRuntime.jsxs(ui.Flex,{width:"100%",justify:"between",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Liquidation fee"}),jsxRuntime.jsx(ui.Text.numeral,{size:"2xs",intensity:80,dp:e,padding:!1,children:t.abs_liquidator_fee})]})};var ve=t=>jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:t.classNames?.root,children:[jsxRuntime.jsx(Jr,{...t}),jsxRuntime.jsx(Zr,{...t})]}),Jr=t=>jsxRuntime.jsxs(ui.Flex,{gap:1,width:"100%",children:[jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",gap:1,children:[jsxRuntime.jsx(ui.Text.formatted,{size:"2xs",intensity:36,rule:"date",formatString:"yyyy-MM-dd hh:mm:ss",children:t.item.timestamp}),jsxRuntime.jsxs(ui.Flex,{children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"liquidation_id:"}),jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:80,children:` ${t.item.liquidation_id}`})]})]}),jsxRuntime.jsxs(ui.Flex,{direction:"column",itemAlign:"end",className:"oui-flex-1",children:[jsxRuntime.jsx(ui.Text,{size:"2xs",intensity:36,children:"Ins. Fund Transfer:"}),jsxRuntime.jsx(ui.Text.numeral,{intensity:80,size:"xs",children:t.item.transfer_amount_to_insurance_fund})]})]}),Zr=t=>jsxRuntime.jsx(ui.Flex,{direction:"column",width:"100%",children:t.item.positions_by_perp?.map((e,o)=>jsxRuntime.jsx(J,{symbol:e.symbol,children:jsxRuntime.jsx(jr,{isLast:o===t.item.positions_by_perp.length-1,...e})}))}),jr=t=>jsxRuntime.jsxs(ui.Flex,{width:"100%",itemAlign:"start",className:ui.cn("oui-border-t-[1px] oui-border-line-6 oui-pt-2",!t.isLast&&"oui-pb-2"),children:[jsxRuntime.jsx(ui.Text,{size:"xs",intensity:80,className:"oui-flex-1",children:t.symbol}),jsxRuntime.jsxs(ui.Grid,{cols:1,rows:3,width:"100%",gap:1,className:"oui-flex-1",children:[jsxRuntime.jsx(ii,{...t}),jsxRuntime.jsx(ni,{...t}),jsxRuntime.jsx(ri,{...t})]})]});var Be=t=>({...t});var Oe=t=>{let{classNames:e,...o}=t,r=Be(o);return jsxRuntime.jsx(ve,{classNames:e,...r})};var ke=t=>{let e=oi();return jsxRuntime.jsxs(ui.Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxRuntime.jsxs(ui.Flex,{gap:3,children:[t.filterItems.length>0&&jsxRuntime.jsx(ui.DataFilter,{items:t.filterItems,onFilter:o=>{t.onFilter(o);}}),[1,7,30,90].map(o=>jsxRuntime.jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsxRuntime.jsx("div",{className:"oui-z-10",children:jsxRuntime.jsx(ui.Text.gradient,{color:t.filterDays===o?"brand":void 0,className:t.filterDays!==o?"oui-text-base-contrast-54":"",children:`${o}D`})}),jsxRuntime.jsx("div",{className:"oui-gradient-primary oui-opacity-[.12] oui-absolute oui-left-0 oui-right-0 oui-top-0 oui-bottom-0 oui-rounded",onClick:()=>{t.updateFilterDays(o);}})]}))]}),jsxRuntime.jsx(uiConnector.AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-liquidation-content",columns:e,bordered:!0,dataSource:t.dataSource,generatedRowKey:o=>`${o.liquidation_id}`,manualPagination:!1,pagination:t.pagination,testIds:{body:"oui-testid-dataList-liquidation-tab-body"}})]})},Ae=t=>jsxRuntime.jsxs(ui.Grid,{cols:1,rows:2,className:"oui-grid-rows-[auto,1fr] oui-w-full",gap:1,children:[jsxRuntime.jsx(ui.Flex,{gap:2,p:2,className:"oui-bg-base-9 oui-rounded-b-xl",children:jsxRuntime.jsx(ui.DataFilter,{className:"oui-pt-0 oui-pb-0 oui-border-none",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsxRuntime.jsx(ui.ListView,{className:ui.cn("oui-w-full oui-hide-scrollbar oui-overflow-y-hidden oui-space-y-0",t.classNames?.root),contentClassName:ui.cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,renderItem:(e,o)=>jsxRuntime.jsx(Oe,{item:e,index:o,classNames:{root:t.classNames?.cell}})})]});var $t=t=>{let{symbol:e}=t,{page:o,pageSize:r,setPage:i,pagination:n,parsePagination:l}=ui.usePagination({pageSize:10}),{dateRange:s,filterDays:a,updateFilterDays:u,filterItems:f,onFilter:S}=ds(),[N,{meta:p,isLoading:m}]=us({page:o,size:r,symbol:e,start_t:s.from!=null?s.from.getTime():void 0,end_t:s.to!=null?s.to.getTime():void 0});return {dataSource:reactApp.useDataTap(N),isLoading:m,loadMore:()=>{i(P=>P+1);},pagination:n,dateRange:s,filterDays:a,updateFilterDays:u,filterItems:f,onFilter:S}},us=t=>{let e=hooks.usePrivateInfiniteQuery(cs(t),{initialSize:1,formatter:n=>n}),o=react.useMemo(()=>e.data?.[0]?.meta,[e.data?.[0]]),r=react.useMemo(()=>e.data?.map(n=>n.rows)?.flat(),[e.data]),i=e.isLoading;return [r,{meta:o,isLoading:i}]},ds=()=>{let t=pt({to:K(new Date),from:K(dateFns.subDays(new Date,90))}),[e,o]=react.useState(90),[r,i]=react.useState(t),n=u=>{o(u),i({from:Lt(dateFns.subDays(new Date,u-1)),to:K(new Date)});},l=u=>{if(u.name==="dateRange"){let f=pt(u.value);if(i(f),f.from&&f.to){let S=Math.abs(dateFns.differenceInDays(f.from,f.to))+1;[1,7,30,90].includes(S)&&o(S);}}},{isMobile:s}=ui.useScreen();return {filterItems:react.useMemo(()=>{let u={type:"range",name:"dateRange",value:r};return s?[u]:[u]},[r]),onFilter:l,dateRange:r,filterDays:e,updateFilterDays:n}},cs=t=>(e,o)=>{if(o&&!o.rows?.length)return null;let{symbol:r,size:i=10,page:n,end_t:l,start_t:s}=t,a=new URLSearchParams([["size",i.toString()],["page",`${e+1}`]]);return n&&a.set("page",`${n}`),status&&a.set("status",status),r&&a.set("symbol",r),l&&a.set("end_t",`${l}`),s&&a.set("start_t",`${s}`),`/v1/liquidations?${a.toString()}`};var ps=t=>{let e=$t(t);return jsxRuntime.jsx(ke,{...e})},fs=t=>{let{classNames:e,...o}=t,r=$t(o);return jsxRuntime.jsx(Ae,{classNames:e,...r})};var xs="MarketCloseConfirmID";ui.registerSimpleDialog(xs,St,{size:"md",closable:!1});
|
|
16
16
|
|
|
17
|
-
exports.Liquidation =
|
|
18
|
-
exports.LiquidationWidget =
|
|
19
|
-
exports.MarketCloseConfirmID =
|
|
20
|
-
exports.MobileLiquidation =
|
|
21
|
-
exports.MobileLiquidationWidget =
|
|
17
|
+
exports.Liquidation = ke;
|
|
18
|
+
exports.LiquidationWidget = ps;
|
|
19
|
+
exports.MarketCloseConfirmID = xs;
|
|
20
|
+
exports.MobileLiquidation = Ae;
|
|
21
|
+
exports.MobileLiquidationWidget = fs;
|
|
22
22
|
exports.MobilePositionHistory = Ie;
|
|
23
|
-
exports.MobilePositionHistoryWidget =
|
|
24
|
-
exports.MobilePositionsWidget =
|
|
25
|
-
exports.PositionHistory =
|
|
26
|
-
exports.PositionHistoryWidget =
|
|
27
|
-
exports.PositionsWidget =
|
|
28
|
-
exports.useLiquidationScript =
|
|
29
|
-
exports.usePositionHistoryScript =
|
|
23
|
+
exports.MobilePositionHistoryWidget = Gr;
|
|
24
|
+
exports.MobilePositionsWidget = Cr;
|
|
25
|
+
exports.PositionHistory = De;
|
|
26
|
+
exports.PositionHistoryWidget = Vr;
|
|
27
|
+
exports.PositionsWidget = Pr;
|
|
28
|
+
exports.useLiquidationScript = $t;
|
|
29
|
+
exports.usePositionHistoryScript = zt;
|
|
30
30
|
//# sourceMappingURL=out.js.map
|
|
31
31
|
//# sourceMappingURL=index.js.map
|