@orderly.network/ui-positions 2.6.3 → 2.7.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,20 +1,21 @@
1
- import { registerSimpleDialog, Flex, Text, CloseIcon, Button, ThrottledButton, useScreen, Grid, Statistic, DataTable, cn, ListView, SimpleSheet, SimpleDialog, usePagination, DataFilter, Badge, formatAddress, Tooltip, Box, HoverCard, Divider, toast, capitalizeFirstLetter, ShareIcon, EditIcon, modal, Input, inputFormatter, Select, PopoverRoot, PopoverTrigger, PopoverContent, Slider } from '@orderly.network/ui';
2
- import xr, { createContext, useContext, useCallback, useMemo, useEffect, useState, useRef } from 'react';
1
+ import { registerSimpleDialog, Flex, Text, CloseIcon, Button, ThrottledButton, useScreen, Grid, Statistic, DataTable, cn, ListView, SimpleSheet, SimpleDialog, usePagination, DataFilter, Badge, formatAddress, Tooltip, Box, HoverCard, Divider, toast, capitalizeFirstLetter, ChevronRightIcon, modal, ShareIcon, EditIcon, Input, inputFormatter, Select, PopoverRoot, PopoverTrigger, PopoverContent, Slider } from '@orderly.network/ui';
2
+ import Cr, { createContext, useContext, useCallback, useMemo, useEffect, useState, useRef } from 'react';
3
3
  import { useTranslation, i18n } from '@orderly.network/i18n';
4
4
  import { EMPTY_LIST, AccountStatusEnum, OrderType, PositionType, AlgoOrderType, OrderSide } from '@orderly.network/types';
5
5
  import { commifyOptional, Decimal, getTimestamp, commify } from '@orderly.network/utils';
6
6
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
- import { usePrivateInfiniteQuery, useBoolean, useAccount, usePrivateQuery, usePositionStream, useSymbolsInfo, usePositionClose, useSWR, fetcher, useLocalStorage, useConfig, useReferralInfo, useSymbolLeverage, useAccountInfo, utils } from '@orderly.network/hooks';
7
+ import { usePrivateInfiniteQuery, useBoolean, useAccount, usePrivateQuery, usePositionStream, useSymbolsInfo, usePositionClose, useSWR, fetcher, useLocalStorage, useConfig, useReferralInfo, useAccountInfo, useLeverageBySymbol, utils, useMaxLeverage } from '@orderly.network/hooks';
8
8
  import { produce } from 'immer';
9
9
  import { positions, account } from '@orderly.network/perp';
10
10
  import { useDataTap, useOrderEntryFormErrorMsg } from '@orderly.network/react-app';
11
11
  import { AuthGuardDataTable } from '@orderly.network/ui-connector';
12
+ import { SymbolLeverageDialogId, SymbolLeverageSheetId } from '@orderly.network/ui-leverage';
12
13
  import { SharePnLDialogId, SharePnLBottomSheetId } from '@orderly.network/ui-share';
13
14
  import { TPSLDetailSheetId, TPSLDetailDialogId, TPSLSheetId, TPSLDialogId } from '@orderly.network/ui-tpsl';
14
15
  import { subDays, differenceInDays } from 'date-fns';
15
16
 
16
- var Ao=t=>{let{hideCloseIcon:e=false}=t;return jsxs("div",{className:"oui-relative oui-w-full oui-border-b oui-border-line-4 oui-pb-3",children:[jsx(Text,{size:"base",children:t.title}),!e&&jsx("button",{onClick:t.onClose,className:"oui-absolute oui-right-0 oui-top-0 oui-p-2 oui-text-base-contrast-54 hover:oui-text-base-contrast-80",children:jsx(CloseIcon,{size:18,color:"white"})})]})},ae=t=>{let{t:e}=useTranslation();return jsxs(Flex,{id:"oui-positions-confirm-footer",gap:2,width:"100%",className:"oui-mt-3 oui-pb-1",children:[jsx(Button,{id:"oui-positions-confirm-footer-cancel-button",color:"secondary",fullWidth:true,onClick:t.onCancel,size:"md",children:e("common.cancel")}),jsx(ThrottledButton,{id:"oui-positions-confirm-footer-confirm-button",onClick:t.onConfirm,fullWidth:true,loading:t.submitting,disabled:t.disabled,size:"md",children:e("common.confirm")})]})},Nn=t=>{let{quantity:e,price:o,quoteDp:i,side:r}=t,{t:n}=useTranslation(),a=useMemo(()=>o&&e?new Decimal(o).mul(e).toFixed(i,Decimal.ROUND_DOWN):"--",[o,e]);return jsxs(Flex,{direction:"column",gap:1,width:"100%",className:"oui-text-sm oui-text-base-contrast-54",py:5,children:[jsxs(Flex,{justify:"between",width:"100%",gap:1,children:[jsx(Text,{children:n("common.qty")}),jsx(Text,{color:r===OrderSide.BUY?"success":"danger",children:e})]}),jsxs(Flex,{justify:"between",width:"100%",gap:1,children:[jsx(Text,{children:n("common.price")}),jsx(Text.formatted,{intensity:98,suffix:jsx(Text,{intensity:54,children:"USDC"}),children:o})]}),jsxs(Flex,{justify:"between",width:"100%",gap:1,children:[jsx(Text,{children:n("common.notional")}),jsx(Text.formatted,{intensity:98,suffix:jsx(Text,{intensity:54,children:"USDC"}),children:a})]})]})},Lt=t=>{let{t:e}=useTranslation(),o=()=>{(t?.onClose??t.close)?.();};return jsxs(Flex,{direction:"column",className:t.classNames?.root,children:[jsx(Ao,{onClose:o,title:e("positions.marketClose"),hideCloseIcon:t.hideCloseIcon}),jsx(Text,{intensity:54,size:"sm",className:"oui-my-5",children:e("positions.marketClose.description",{quantity:commifyOptional(t.quantity),base:t.base})}),jsx(ae,{onCancel:o,onConfirm:async()=>{await t.onConfirm?.(),o();},submitting:t.submitting})]})},le=t=>{let{order:e,quoteDp:o,quantity:i,price:r}=t,{side:n}=e,{t:a}=useTranslation(),s=()=>{t.onClose?.();};return jsxs(Fragment,{children:[jsx(Ao,{onClose:s,title:a("positions.limitClose"),hideCloseIcon:t.hideCloseIcon}),jsx(Box,{mt:5,children:jsx(Text,{intensity:54,size:"sm",children:a("positions.limitClose.description",{quantity:commify(t.quantity),base:t.base})})}),jsxs(Flex,{gap:2,mb:4,mt:5,justify:"between",children:[jsx(Text.formatted,{rule:"symbol",formatString:"base-type",size:"base",showIcon:true,children:e.symbol}),jsxs(Flex,{gap:1,children:[jsx(Badge,{color:"neutral",size:"xs",children:a("orderEntry.orderType.limit")}),jsx(Badge,{color:n===OrderSide.BUY?"success":"danger",size:"xs",children:n===OrderSide.BUY?a("common.buy"):a("common.sell")})]})]}),jsx(Divider,{className:"oui-w-full"}),jsx(Nn,{className:"oui-text-sm",price:r,quantity:i,side:e.side,quoteDp:o??2}),jsx(ae,{onCancel:s,onConfirm:t.onConfirm,submitting:t.submitting})]})};var Ae=createContext({}),Z=()=>useContext(Ae);function Eo(t,e){let o=useRef(),i=useRef(e);i.current=e,useEffect(()=>{let r={root:null,rootMargin:"0px",threshold:0},n=a=>{a.forEach(s=>{s.isIntersecting&&i.current?.();});};return o.current=new IntersectionObserver(n,r),()=>{o.current?.disconnect();}},[]),useEffect(()=>{o.current?.observe(t.current);},[]);}var Ho=t=>{let e=useRef(null),{onEndReached:o}=t;return Eo(e,()=>{o?.();}),jsxs(Fragment,{children:[t.children,jsx("div",{ref:e,className:"oui-relative oui-invisible oui-h-[25px] oui-bg-red-400 oui-top-[-300px]"})]})};var ue=({total:t,symbol:e,start_t:o,end_t:i})=>{let{t:r}=useTranslation(),{isMobile:n}=useScreen(),{isLoading:a,data:s,setSize:l}=usePrivateInfiniteQuery((d,g)=>g&&!g.length?null:`/v1/funding_fee/history?page=${d}&symbol=${e}&start_t=${o}&end_t=${i}`,{revalidateFirstPage:false}),m=useCallback(()=>{l(d=>d+1);},[l]),u=useMemo(()=>Array.isArray(s)?s.flat().map(d=>({...d,funding_fee:-d.funding_fee})):[],[s]),c=useMemo(()=>n?jsx(Un,{data:u??EMPTY_LIST,isLoading:a,loadMore:m}):jsx(Wn,{data:u??EMPTY_LIST,isLoading:a,loadMore:m}),[n,u,a]);return jsxs("div",{children:[jsxs(Grid,{cols:2,gapX:3,className:"oui-sticky oui-top-0 oui-z-10 oui-bg-base-8 oui-py-4",children:[jsx("div",{className:"oui-rounded-lg oui-border oui-border-line-6 oui-bg-base-9 oui-p-3",children:jsxs(Flex,{direction:"column",gap:1,itemAlign:"start",children:[jsx("span",{className:"oui-text-2xs oui-text-base-contrast-36",children:r("common.symbol")}),jsx(Text.formatted,{rule:"symbol",className:"oui-font-semibold",intensity:98,children:e})]})}),jsx("div",{className:"oui-rounded-lg oui-border oui-border-line-6 oui-bg-base-9 oui-p-3",children:jsx(Statistic,{label:`${r("funding.fundingFee")} (USDC)`,valueProps:{ignoreDP:true,coloring:true,showIdentifier:true},children:t})})]}),c]})},Wn=({isLoading:t,data:e,loadMore:o})=>{let{t:i}=useTranslation(),r=useMemo(()=>[{title:i("common.time"),dataIndex:"created_time",width:120,render:n=>jsx(Text.formatted,{rule:"date",children:n})},{title:i("funding.fundingRate"),dataIndex:"funding_rate",formatter:n=>new Decimal(n).mul(100).toString(),render:n=>jsx("span",{children:`${n}%`})},{title:i("funding.paymentType"),dataIndex:"payment_type",formatter:n=>i(n==="Pay"?"funding.paymentType.paid":"funding.paymentType.received"),render:n=>jsx("span",{children:n})},{title:`${i("funding.fundingFee")} (USDC)`,dataIndex:"funding_fee",render:n=>jsx(Text.numeral,{rule:"price",coloring:true,showIdentifier:true,ignoreDP:true,children:n})}],[i]);return jsx("div",{className:"oui-h-[calc(80vh_-_132px_-_8px)] oui-overflow-y-auto",children:jsx(Ho,{onEndReached:o,children:jsx(DataTable,{classNames:{root:cn("oui-h-auto oui-bg-base-8 oui-text-sm")},columns:r,dataSource:e??EMPTY_LIST,loading:t})})})},Un=({data:t,isLoading:e,loadMore:o})=>{let i=useCallback(r=>jsx(Qn,{item:r}),[]);return jsx("div",{className:"oui-h-[calc(80vh_-_104px)] oui-overflow-y-auto",children:jsx(ListView,{dataSource:t,renderItem:i,isLoading:e,contentClassName:"oui-space-y-0",loadMore:o})})},Qn=({item:t})=>{let{t:e}=useTranslation();return jsxs("div",{className:"oui-flex oui-flex-col oui-space-y-2 oui-border-t oui-border-line-6 oui-py-2",children:[jsxs(Flex,{justify:"between",children:[jsx(Statistic,{label:e("funding.fundingRate"),classNames:{label:"oui-text-2xs"},valueProps:{ignoreDP:true,rule:"percentages",className:"oui-text-xs"},children:t.funding_rate}),jsx(Statistic,{label:e("common.amount"),className:"oui-items-end",classNames:{label:"oui-text-2xs"},valueProps:{ignoreDP:true,coloring:true,as:"div",className:"oui-text-xs",showIdentifier:true},children:t.funding_fee})]}),jsxs(Flex,{justify:"between",children:[jsx(Text.formatted,{rule:"date",className:"oui-text-base-contrast-36",size:"2xs",children:t.created_time}),jsx(Text,{size:"sm",intensity:80,children:t.payment_type==="Pay"?e("funding.paymentType.paid"):e("funding.paymentType.received")})]})]})};var mt=({fee:t,symbol:e,start_t:o,end_t:i})=>{let{t:r}=useTranslation(),[n,{setTrue:a,setFalse:s}]=useBoolean(false),{isMobile:l}=useScreen();return jsxs(Fragment,{children:[jsx("button",{onClick:a,children:jsx(Text.numeral,{rule:"price",coloring:true,showIdentifier:true,ignoreDP:true,className:"oui-border-b oui-border-line-16 oui-border-dashed oui-py-0.5",children:t})}),l?jsx(SimpleSheet,{open:n,onOpenChange:s,title:r("funding.fundingFee"),classNames:{body:"oui-max-h-[80vh] oui-py-0"},children:jsx(ue,{total:t,symbol:e,start_t:o,end_t:i})}):jsx(SimpleDialog,{open:n,onOpenChange:s,title:r("funding.fundingFee"),classNames:{content:"lg:oui-max-w-[640px]",body:"oui-max-h-[80vh] oui-bg-base-8 lg:oui-py-0"},children:jsx(ue,{total:t,symbol:e,start_t:o,end_t:i})})]})};var nr=(t,e)=>{let o=useConfig("apiBaseUrl");return i=>(r,n,a)=>{try{return i(r,async l=>{let m=Array.isArray(l)?l[0]:l,u=`${o}${m}`,c=t.signer,d={method:"GET",url:m},g=await c.sign(d,getTimestamp()),p=Array.isArray(e)?e:[e];return Promise.all(p.map(x=>n(u,{headers:{...g,"orderly-account-id":x}})))},a)}catch(s){throw s}}},Wo=(t,e)=>{let{formatter:o,accountId:i,...r}=e||{},{state:n,account:a}=useAccount(),s=Array.isArray(e?.use)?e?.use??[]:[],l=Array.isArray(i)?i:[i],m=l.filter(Boolean).length&&(n.status>=AccountStatusEnum.EnableTrading||n.status===AccountStatusEnum.EnableTradingWithoutConnected);return useSWR(()=>m?[t,l]:null,(u,c)=>fetcher(u,c,{formatter:o}),{...r,use:[...s,nr(a,l)],onError:()=>{}})};var Uo=t=>{let{symbol:e,calcMode:o,includedPendingOrder:i,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,onSymbolChange:a,selectedAccount:s}=t,{pagination:l,setPage:m}=usePagination({pageSize:50});useEffect(()=>{m(1);},[e]);let u=useSymbolsInfo(),{state:c}=useAccount(),[d,,{isLoading:g}]=usePositionStream(e,{calcMode:o,includedPendingOrder:i}),{data:p=[],isLoading:x,mutate:w}=usePrivateQuery("/v1/client/aggregate/positions",{errorRetryCount:3}),{data:k=[],isLoading:F}=Wo("/v1/client/info",{accountId:p.map(R=>R.account_id),revalidateOnFocus:false}),f=produce(p.filter(R=>R.account_id!==c.mainAccountId),R=>{for(let b of R){let nt=u[b.symbol],rt=positions.notional(b.position_qty,b.mark_price),h=k.find($t=>$t.account_id===b.account_id),U=positions.MMR({baseMMR:nt?.("base_mmr"),baseIMR:nt?.("base_imr"),IMRFactor:h?.imr_factor[b.symbol]??0,positionNotional:rt,IMR_factor_power:4/5}),ee=positions.maintenanceMargin({positionQty:b.position_qty,markPrice:b.mark_price,MMR:U}),oe=positions.unrealizedPnL({qty:b.position_qty,openPrice:b?.average_open_price,markPrice:b.mark_price}),ie=account.IMR({maxLeverage:h?.max_leverage??1,baseIMR:nt?.("base_imr"),IMR_Factor:h?.imr_factor[b.symbol]??0,positionNotional:rt,ordersNotional:0,IMR_factor_power:4/5}),ne=positions.unrealizedPnLROI({positionQty:b.position_qty,openPrice:b.average_open_price,IMR:ie,unrealizedPnL:oe}),Qt=0,re=0;b.index_price&&(Qt=positions.unrealizedPnL({qty:b.position_qty,openPrice:b?.average_open_price,markPrice:b.index_price}),re=positions.unrealizedPnLROI({positionQty:b.position_qty,openPrice:b.average_open_price,IMR:ie,unrealizedPnL:Qt})),b.mmr=U,b.mm=ee,b.notional=rt,b.unrealized_pnl=oe,b.unrealized_pnl_ROI=ne,b.unrealized_pnl_ROI_index=re;}}),q=useDataTap([...d?.rows,...f].filter(R=>R.position_qty!==0))??[],H=useMemo(()=>!s||s==="All accounts"?q:q.filter(R=>s==="Main accounts"?R.account_id===c.mainAccountId||!R.account_id:R.account_id===s),[q,s,c.mainAccountId]),W=useMemo(()=>gr(H,{mainAccountId:c.mainAccountId,subAccounts:c.subAccounts}),[H,c.mainAccountId,c.subAccounts]),it=useMemo(()=>g||x||F,[g,x,F]);return {tableData:W,isLoading:it,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,symbol:e,onSymbolChange:a,pagination:l,mutatePositions:w}},gr=(t,e)=>{let{mainAccountId:o="",subAccounts:i=[]}=e,r=new Map;for(let n of t){let a=n.account_id||o,s=i.find(l=>l.id===a);r.has(a)?r.get(a)?.children?.push(n):r.set(a,{id:a,description:a===o?i18n.t("common.mainAccount"):s?.description||formatAddress(s?.id||""),children:[n]});}return {expanded:Array.from(r.keys()),dataSource:Array.from(r.values())}};var We=t=>{let{symbol:e,calcMode:o,includedPendingOrder:i,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,onSymbolChange:a}=t,{pagination:s,setPage:l}=usePagination({pageSize:50});xr.useEffect(()=>{l(1);},[e]);let[m,,{isLoading:u}]=usePositionStream(e,{calcMode:o,includedPendingOrder:i});return {dataSource:useDataTap(m?.rows,{fallbackData:[]})??void 0,isLoading:u,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,symbol:e,onSymbolChange:a,pagination:s}};var Ue=createContext({}),$=()=>useContext(Ue);var wt=t=>{let{symbol:e,children:o}=t,i=useSymbolsInfo()[e],r=useMemo(()=>({symbol:e,base_dp:i("base_dp"),quote_dp:i("quote_dp"),base_tick:i("base_tick"),quote_tick:i("quote_tick"),base:i("base"),quote:i("quote"),origin:i(),quote_max:i("quote_max"),quote_min:i("quote_min")}),[e,i]);return jsx(Ue.Provider,{value:r,children:o})};var ce=t=>{let{t:e}=useTranslation();return jsxs(Fragment,{children:[jsx(Slider,{showTip:true,markCount:4,value:[t.value],color:"primary",onValueChange:o=>{t.onValueChange(o[0]);}}),jsxs(Flex,{width:"100%",justify:"between",children:[jsx(Text,{color:"primary",size:"2xs",children:`${t.value}%`}),jsxs(Flex,{gap:1,onClick:t.onMax,className:"oui-cursor-pointer",children:[jsx(Text,{size:"2xs",color:"primary",children:e("common.max")}),jsx(Text.numeral,{intensity:54,size:"2xs",dp:t.base_dp,padding:false,children:t.max})]})]})]})};var Ge=t=>{let{base:e,base_dp:o,quote:i,quote_dp:r,sheetOpen:n,setSheetOpen:a,dialogOpen:s,setDialogOpen:l,quantity:m,price:u,submitting:c,priceErrorMsg:d,quantityErrorMsg:g,disabled:p,isMarketClose:x,position:w,maxQty:k,isBuy:F}=t,{t:f}=useTranslation(),q=f(x?"positions.marketClose":"positions.limitClose"),H=f(x?"orderEntry.orderType.market":"orderEntry.orderType.limit"),W=F?jsx(Badge,{color:"success",size:"xs",children:f("common.buy")}):jsx(Badge,{color:"danger",size:"xs",children:f("common.sell")}),it=jsxs(Flex,{width:"100%",justify:"between",children:[jsx(Text.formatted,{rule:"symbol",showIcon:true,children:w.symbol}),jsxs(Flex,{gap:1,children:[jsx(Badge,{color:"neutral",size:"xs",children:H}),W]})]}),R=jsxs(Flex,{width:"100%",justify:"between",children:[jsx(Text,{intensity:54,children:f("common.lastPrice")}),jsx(Text.numeral,{dp:r,suffix:jsxs(Text,{intensity:36,children:[" ",i]}),children:w.mark_price})]}),b=!x&&jsx(Fragment,{children:jsxs(Flex,{width:"100%",direction:"column",gap:2,children:[jsx(Input.tooltip,{prefix:f("common.price"),suffix:i,align:"right",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(r)],triggerClassName:"oui-w-full",tooltip:d,color:d?"danger":void 0,value:u,onValueChange:t.updatePriceChange,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",d?"oui-outline-danger":void 0)}}),jsx(Input.tooltip,{prefix:f("common.quantity"),suffix:e,align:"right",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(o)],triggerClassName:"oui-w-full",tooltip:g,color:g?"danger":void 0,value:m,onBlur:()=>t.formatQuantityToBaseTick(m),onValueChange:t.updateQuantity,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",g?"oui-outline-danger":void 0)}})]})}),nt=jsx(ce,{value:t.sliderValue,onValueChange:t.onSliderValueChange,base_dp:o,max:k,onMax:t.onMax}),rt=jsxs(Flex,{width:"100%",gap:3,mt:2,children:[jsx(Button,{fullWidth:true,color:"secondary",onClick:t.onCloseSheet,children:f("common.cancel")}),jsx(ThrottledButton,{fullWidth:true,disabled:c||p,loading:c,onClick:h=>{h.stopPropagation(),h.preventDefault(),t.onDoubleConfirm();},children:f("common.confirm")})]});return jsxs(Fragment,{children:[jsx(Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",onClick:h=>{h.stopPropagation(),h.preventDefault(),a(true);},children:q}),jsx(SimpleSheet,{title:q,open:n,onOpenChange:a,children:jsxs(Flex,{direction:"column",gap:3,width:"100%",itemAlign:"start",className:"oui-text-sm",children:[it,jsx(Divider,{className:"oui-w-full"}),R,b,nt,rt]})}),jsx(SimpleDialog,{open:s,onOpenChange:l,size:"xs",children:x?jsx(Lt,{base:e,quantity:m,submitting:c,onClose:t.onCloseDialog,onConfirm:t.onConfirm,hideCloseIcon:true}):jsx(le,{base:e,quoteDp:r,quantity:m,price:u,submitting:c,order:t.closeOrderData,onClose:t.onCloseDialog,onConfirm:t.onConfirm,hideCloseIcon:true})})]})};var Ke=t=>{let{position:e,base:o,base_dp:i,quote_dp:r,price:n,quantity:a,submitting:s,dialogOpen:l,setDialogOpen:m,isMarketClose:u,popoverOpen:c,setPopoverOpen:d,maxQty:g,quantityErrorMsg:p,priceErrorMsg:x,isEntirePosition:w}=t,{t:k}=useTranslation(),F=jsxs(Flex,{width:"100%",gap:2,mb:1,children:[jsx(Input.tooltip,{ref:t.quantityInputRef,prefix:k("common.quantity"),suffix:w?jsx(Text,{size:"2xs",intensity:54,className:"oui-cursor-pointer oui-px-3",onClick:t.onEntirePosition,children:k("tpsl.entirePosition")}):o,align:"right",size:"md",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(i)],triggerClassName:"oui-w-full",tooltip:p,color:p?"danger":void 0,value:w?"":a,onBlur:()=>t.formatQuantityToBaseTick(a),onValueChange:t.updateQuantity,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",p?"oui-outline-danger":void 0)}}),jsx(Button,{onClick:t.onMax,size:"md",variant:"outlined",className:cn("oui-text-2xs",w?"oui-border-primary-light oui-text-primary-light hover:oui-bg-primary-light/20":"oui-border-line-12 oui-bg-base-6 oui-text-base-contrast-54 hover:oui-bg-base-5"),children:k("common.position")})]}),f=jsx(Select.options,{variant:"text",size:"md",options:[{label:k("orderEntry.orderType.limit"),value:OrderType.LIMIT},{label:k("orderEntry.orderType.market"),value:OrderType.MARKET}],classNames:{trigger:"oui-w-[--radix-select-content-available-width]"},value:t.type,onValueChange:W=>{t.updateOrderType(W);},contentProps:{align:"end",className:"oui-border oui-border-line-6"}}),q=u,H=jsx(Input.tooltip,{suffix:f,size:"md",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(r)],triggerClassName:"oui-w-full",tooltip:x,color:x?"danger":void 0,value:n,onValueChange:t.updatePriceChange,placeholder:q?"--":"",disabled:q,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",x?"oui-outline-danger":void 0,q?"focus-within:oui-outline-line-12":void 0)}});return jsxs(Fragment,{children:[jsxs(PopoverRoot,{open:c,onOpenChange:d,children:[jsx(PopoverTrigger,{asChild:true,onClick:()=>{d(true);},children:jsx(Button,{variant:"outlined",size:"sm",color:"secondary",children:k("positions.column.close")})}),jsx(PopoverContent,{className:cn("oui-w-[360px] oui-p-5",c?"oui-visible":"oui-invisible"),align:"end",side:"top",onOpenAutoFocus:W=>W.preventDefault(),children:jsxs(Flex,{gapY:2,direction:"column",children:[F,jsx(ce,{value:t.sliderValue,onValueChange:t.onSliderValueChange,base_dp:i,max:g,onMax:t.onMax}),jsx(Divider,{my:2,intensity:8,className:"oui-w-full"}),H,jsx(ae,{onConfirm:t.onDoubleConfirm,onCancel:t.onClosePopover,submitting:s,disabled:t.disabled})]})})]}),jsx(SimpleDialog,{open:l,onOpenChange:m,size:"sm",children:u?jsx(Lt,{base:o,quantity:a,submitting:s,onClose:t.onCloseDialog,onConfirm:t.onConfirm,classNames:{root:"oui-items-start"},hideCloseIcon:true}):jsx(le,{base:o,quoteDp:r,quantity:a,price:n,submitting:s,order:t.closeOrderData,onClose:t.onCloseDialog,onConfirm:t.onConfirm,hideCloseIcon:true})})]})};var Xe=t=>{let[e,o]=useState(false),[i,r]=useState(false),[n,a]=useState(false),[s,l]=useState(100),m=useRef(null),[u]=useLocalStorage("orderly_order_confirm",true),{position:c,onSubmit:d,price:g,quantity:p,closeOrderData:x,submitting:w,updatePriceChange:k,updateOrderType:F,updateQuantity:f,errors:q,baseTick:H,type:W}=Z(),{quote_dp:it,base_dp:R,base:b,quote:nt}=$(),{getErrorMsg:rt}=useOrderEntryFormErrorMsg(q),h=c.position_qty>0,U=Math.abs(c.position_qty),ee=t.type||W,oe=ee===OrderType.MARKET,ie=U?.toString()===p.toString();useEffect(()=>{e&&F(t.type);},[t.type,e]);let{priceErrorMsg:ne,quantityErrorMsg:Qt}=useMemo(()=>({priceErrorMsg:rt("order_price"),quantityErrorMsg:rt("order_quantity")}),[q]),re=!!(ne||Qt),$t=useCallback(bt=>{if(H&&H>0){let Vt=utils.formatNumber(bt,H)??bt;f(Vt);}},[H,f]),dn=useCallback(bt=>{l(bt);let Vt=new Decimal(bt).div(100).mul(U).toFixed(R,Decimal.ROUND_DOWN);$t(Vt);},[U,R,$t]);useEffect(()=>{let bt=Math.min(Number(p||0),U),Vt=new Decimal(bt).div(U).mul(100).toDecimalPlaces(2,Decimal.ROUND_DOWN).toNumber();l(Vt);},[p]);let pn=useCallback(()=>{f(U?.toString());},[U,f]),Re=useCallback(()=>d().then(bt=>{o(false),r(false),a(false);}),[d]),fn=useCallback(()=>u?(r(true),Promise.resolve()):Re(),[Re,u]),yn=useCallback(()=>{o(false);},[]),gn=useCallback(()=>{r(false);},[]),xn=useCallback(()=>{a(false);},[]),bn=useCallback(()=>{f("0"),m.current?.focus(),setTimeout(()=>{m.current?.setSelectionRange(0,1);},0);},[f]);return {position:c,closeOrderData:x,quote_dp:it,base_dp:R,base:b,quote:nt,price:g,quantity:p,submitting:w,onConfirm:Re,onDoubleConfirm:fn,updatePriceChange:k,updateQuantity:f,formatQuantityToBaseTick:$t,updateOrderType:F,sliderValue:s,onSliderValueChange:dn,priceErrorMsg:ne,quantityErrorMsg:Qt,disabled:re,isMarketClose:oe,maxQty:U,onMax:pn,isBuy:h,isEntirePosition:ie,type:ee,quantityInputRef:m,onEntirePosition:bn,sheetOpen:e,onCloseSheet:yn,setSheetOpen:o,dialogOpen:i,setDialogOpen:r,onCloseDialog:gn,popoverOpen:n,setPopoverOpen:a,onClosePopover:xn}};var At=t=>{let e=Xe(t),{isMobile:o}=useScreen();return o?jsx(Ge,{...e}):jsx(Ke,{...e})};var Nt=()=>{let{position:t,baseDp:e,quoteDp:o,tpslOrder:i}=Z(),{isMobile:r}=useScreen();return jsx(EditIcon,{onClick:()=>{let a=r?TPSLDetailSheetId:TPSLDetailDialogId;modal.show(a,{order:i,position:t,baseDP:e,quoteDP:o});},opacity:1,className:"oui-cursor-pointer oui-text-base-contrast-54",size:16})},dt=t=>{let{position:e,baseDp:o,quoteDp:i,tpslOrder:r}=Z(),[n]=useLocalStorage("orderly_order_confirm",true),{t:a}=useTranslation(),{isMobile:s}=useScreen(),l=()=>{let m=s?TPSLSheetId:TPSLDialogId,u={symbol:e.symbol,baseDP:o,quoteDP:i,isEditing:false,positionType:t.positionType};modal.show(m,u);};return jsx(Text,{className:cn("oui-text-base-contrast oui-cursor-pointer",s&&"oui-text-base-contrast-80"),onClick:l,children:a("tpsl.add")})},Pe=({symbol:t})=>t?jsxs("div",{className:"oui-flex oui-h-[18px] oui-items-center oui-gap-1 oui-rounded oui-bg-white/[0.06] oui-px-2 oui-text-2xs oui-font-semibold oui-text-base-contrast-36",children:[jsx(Text,{children:"Cross"}),jsx(rs,{symbol:t})]}):null,rs=({symbol:t})=>{let e=useSymbolLeverage(t);return jsx(Text.numeral,{dp:0,size:"2xs",unit:"X",children:e!=="-"?e:"--"})};var ii=t=>{let e=$();return jsx(Text.numeral,{dp:e.base_dp,rm:Decimal.ROUND_DOWN,padding:false,coloring:true,children:t})};var Ce=t=>{let{tick:e="quote_dp",children:o,...i}=t,r=$();if(!r)throw new Error("NumeralWithCtx must be used inside SymbolProvider");return jsx(Text.numeral,{as:"span",dp:r[e],...i,children:o})};var ri=t=>{let{orderNum:e,tpTriggerPrice:o,slTriggerPrice:i,direction:r="column"}=t,{partialTPSLOrder:n,quoteDp:a,baseDp:s}=Z(),l=useSymbolsInfo(),{t:m}=useTranslation(),u=useMemo(()=>{let d=[];return n?.symbol?(o&&d.push(jsx(Text.formatted,{className:cn("oui-text-trade-profit oui-gap-0 oui-decoration-white/20"),rule:"price",dp:l[n.symbol]("quote_dp",2),children:o,prefix:!i||r==="column"?jsx(Text,{intensity:54,children:`${m("tpsl.tp")} - `}):""},"tp")),i&&d.push(jsx(Text.formatted,{className:cn("oui-text-trade-loss oui-gap-0 oui-decoration-white/20 "),rule:"price",dp:l[n.symbol]("quote_dp",2),prefix:jsx(Text,{intensity:54,children:`${m("tpsl.sl")} - `}),children:i},"sl")),d.length===0?jsx(dt,{positionType:PositionType.PARTIAL}):(d.length===2&&r==="row"&&d.splice(1,0,jsx(Text,{children:"/"},"split")),d)):jsx(dt,{positionType:PositionType.PARTIAL})},[o,i,n?.symbol,m]),c=Array.isArray(u)?!!u.length:!u;return jsxs(Flex,{className:"oui-gap-[6px]",children:[jsx("div",{className:cn("oui-inline-flex oui-text-base-contrast-36",r==="column"?"oui-flex-col":"oui-flex-row oui-gap-1"),children:u}),c&&jsxs(Fragment,{children:[jsxs(Text,{className:"oui-text-base-contrast-54",children:["(",e,")"]}),jsx(Nt,{})]})]})};var to=t=>{if(t.sharePnLConfig==null)return jsx(Fragment,{});let{position:e}=t,o=useSymbolsInfo(),{data:i}=useAccountInfo(),r=()=>{let n=t.isPositionHistory?(()=>{let a=e.netPnL||0,s=Math.abs(e.avg_open_price),l=Math.abs(e.closed_position_qty),m;if(a!==0&&l!==0&&s!==0&&i&&typeof t.leverage=="number"){let u=o[e.symbol],c=u("base_imr"),d=i.imr_factor[e.symbol]||1;if(c){let g=positions.notional(l,s),p=account.IMR({maxLeverage:i.max_leverage,baseIMR:c,IMR_Factor:d,positionNotional:g,ordersNotional:0,IMR_factor_power:4/5}),x=positions.unrealizedPnLROI({positionQty:l,openPrice:s,IMR:p,unrealizedPnL:a});m=new Decimal(x*100).toFixed(2,Decimal.ROUND_DOWN);}}return {side:e.side,pnl:a,roi:m,openPrice:s,closePrice:Math.abs(e.avg_close_price),openTime:e.open_timestamp,closeTime:e.close_timestamp,quantity:e.closed_position_qty}})():{side:e.position_qty>0?"LONG":"SHORT",pnl:e.unrealized_pnl,roi:new Decimal(e.unrealized_pnl_ROI*100).toFixed(2,Decimal.ROUND_DOWN),openPrice:Math.abs(e.average_open_price),markPrice:e.mark_price,openTime:e.timestamp,quantity:e.position_qty};modal.show(t.modalId,{pnl:{entity:{symbol:e.symbol,...n},refCode:t.refCode,...t.sharePnLConfig}});};return jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),r();},children:jsx(ShareIcon,{color:"white",opacity:.54,size:t.iconSize??16})})};var ai=t=>{let{sharePnLConfig:e,position:o,modalId:i,iconSize:r,isPositionHistory:n}=t,{getFirstRefCode:a}=useReferralInfo(),s=useMemo(()=>a()?.code,[a]),l=useSymbolLeverage(t.position.symbol);return {iconSize:r,position:o,refCode:s,leverage:l,sharePnLConfig:e,modalId:i,isPositionHistory:n}};var ft=t=>{let e=ai(t);return jsx(to,{...e})};var di=t=>{let{stopLossPrice:e,takeProfitPrice:o}=t,{tpslOrder:i,position:r}=Z();return jsx(Ls,{stopLossPrice:e,takeProfitPrice:o,direction:"column",order:i,position:r,tooltip:true})},mi=t=>{let{qty:e,price:o,entryPrice:i,orderSide:r,orderType:n,symbolInfo:a}=t,s=utils.priceToPnl({qty:e,price:o,entryPrice:i,orderSide:r,orderType:n},{symbol:a}),l=n===AlgoOrderType.TAKE_PROFIT?"TP":"SL";return jsxs(Flex,{children:[jsx(Text,{intensity:54,className:"oui-mr-1",children:`${l} PnL:`}),jsx(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:jsx(Text,{children:s===0?"":s>0?"+":"-"}),suffix:jsx(Text,{intensity:36,className:"oui-ml-1",children:"USDC"}),children:`${Math.abs(s)}`})]})},Ls=t=>{let{direction:e="row",order:o,position:i}=t,r=useSymbolsInfo(),{t:n}=useTranslation(),a=useMemo(()=>{let u=[];if(!t.tooltip||!o||!i)return;let c=o.quantity;return c===0&&o.child_orders[0].type==="CLOSE_POSITION"&&(c=i.position_qty),t.takeProfitPrice&&u.push(jsx(mi,{qty:c,price:t.takeProfitPrice,entryPrice:i.average_open_price,orderSide:o.side,orderType:AlgoOrderType.TAKE_PROFIT,symbolInfo:r[o.symbol]()},"tp")),t.stopLossPrice&&u.push(jsx(mi,{qty:c,price:t.stopLossPrice,entryPrice:i.average_open_price,orderSide:o.side,orderType:AlgoOrderType.STOP_LOSS,symbolInfo:r[o.symbol]()},"sl")),jsx("div",{children:u})},[t.takeProfitPrice,t.stopLossPrice,i?.average_open_price,o?.side,o?.quantity,o?.algo_type]),s=useMemo(()=>{let u=[];if(!o?.symbol)return jsx(dt,{positionType:PositionType.FULL});return t.takeProfitPrice&&u.push(jsx(Text.formatted,{className:cn("oui-text-trade-profit oui-gap-0 oui-decoration-white/20"),rule:"price",dp:r[o.symbol]("quote_dp",2),children:t.takeProfitPrice,prefix:!t.stopLossPrice||e==="column"?jsx(Text,{intensity:54,children:`${n("tpsl.tp")} - `}):""},"tp")),t.stopLossPrice&&u.push(jsx(Text.formatted,{className:cn("oui-text-trade-loss oui-gap-0 oui-decoration-white/20 "),rule:"price",dp:r[o.symbol]("quote_dp",2),children:t.stopLossPrice,prefix:!t.takeProfitPrice||e==="column"?jsx(Text,{intensity:54,children:`${n("tpsl.sl")} - `}):""},"sl")),u.length===0?jsx(dt,{positionType:PositionType.FULL}):(u.length===2&&e==="row"&&u.splice(1,0,jsx(Text,{children:"/"},"split")),u)},[t.takeProfitPrice,t.stopLossPrice,o?.symbol,n]),l=jsx("div",{className:cn("oui-inline-flex oui-text-base-contrast-36",t.direction==="column"?"oui-flex-col":"oui-flex-row oui-gap-1",t.className),children:s}),m=Array.isArray(s)?!!s.length:!s;return t.tooltip?jsxs(Flex,{gapX:2,children:[jsx(Tooltip,{content:a,children:l}),m&&jsx(Nt,{})]}):l};var xi=t=>{let[e,o]=useLocalStorage("unPnlPriceBasis","markPrice"),{t:i}=useTranslation();return jsxs(Flex,{direction:"column",gap:3,className:"oui-text-base-contrast-54 oui-items-start",children:[jsx(Text,{children:i("positions.column.unrealPnl.tooltip")}),jsx(Divider,{className:"oui-w-full"}),jsx("div",{className:"oui-mb-0",children:i("positions.column.unrealPnl.priceBasis")}),jsx(Ms,{value:e,onValueChange:o})]})},Ms=t=>{let{value:e,onValueChange:o}=t,{t:i}=useTranslation();return jsxs(Flex,{gap:2,children:[jsx(fi,{sel:e==="markPrice",label:i("common.markPrice"),value:"markPrice",onCheckChange:o}),jsx(fi,{sel:e==="lastPrice",label:i("common.lastPrice"),value:"lastPrice",onCheckChange:o})]})},fi=t=>{let{sel:e,label:o,value:i,onCheckChange:r}=t;return jsxs(Flex,{onClick:n=>{r(i),n.stopPropagation();},gap:1,className:"oui-cursor-pointer",children:[e?jsx(As,{}):jsx(Os,{}),jsx(Text,{size:"xs",intensity:e?98:54,children:o})]})},As=()=>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:[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"}),jsx("circle",{cx:"8",cy:"8",r:"3.333"})]}),Os=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children: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 no=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:i}=t,{t:r}=useTranslation(),n=useRef(Date.now().toString());return useMemo(()=>[{title:r("common.symbol"),dataIndex:"symbol",fixed:"left",width:140,onSort:(s,l)=>s.symbol.localeCompare(l.symbol),render:(s,l)=>jsxs(Flex,{gap:2,children:[jsx(Box,{width:4,height:20,className:cn("oui-h-[38px] oui-rounded-[1px]",l.position_qty>0?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxs(Flex,{direction:"column",itemAlign:"start",children:[jsx(Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:m=>{i?.({symbol:s}),m.stopPropagation(),m.preventDefault();},children:`${s.split("_")[1]}-PERP`}),jsx(Pe,{symbol:s})]})]})},{title:r("common.quantity"),dataIndex:"position_qty",onSort:(s,l)=>s.position_qty-l.position_qty,width:120,className:"oui-pl-6",render:ii},{title:r("common.avgOpen"),className:"oui-h-[48px]",width:120,onSort:true,dataIndex:"average_open_price",render:s=>jsx(Ce,{rm:Decimal.ROUND_DOWN,children:s})},{title:r("common.markPrice"),dataIndex:"mark_price",width:120,onSort:true,className:"oui-h-[48px]",render:s=>jsx(Ce,{rm:Decimal.ROUND_DOWN,children:s})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast-54",content:r("positions.column.liqPrice.tooltip"),children:jsx(Text,{children:r("positions.column.liqPrice")})}),width:100,onSort:true,dataIndex:"est_liq_price",render:s=>Number(s)===0?"--":jsx(Ce,{rm:Decimal.ROUND_DOWN,className:Number(s)>0?"oui-text-warning-light":"",children:s??"--"})},{title:jsx(HoverCard,{content:jsx(xi,{}),side:"top",align:"center",className:"oui-max-w-[280px] oui-text-2xs",children:jsx(Text,{children:r("common.unrealizedPnl")})}),dataIndex:"unrealized_pnl",width:180,onSort:true,rule:"price",numeralProps:{coloring:true},render:(s,l)=>jsxs(Flex,{gap:2,children:[jsxs(Flex,{children:[jsx(Text.numeral,{dp:e,rm:Decimal.ROUND_DOWN,coloring:true,className:"oui-font-semibold",children:s}),jsx(Text.numeral,{rule:"percentages",dp:e,rm:Decimal.ROUND_DOWN,coloring:true,className:"oui-font-semibold",prefix:"(",suffix:")",children:l.unrealized_pnl_ROI})]}),jsx(ft,{position:l,sharePnLConfig:o,modalId:SharePnLDialogId})]})},{title:r("common.fullTPSL"),dataIndex:"full_tpsl",width:150,render:(s,l)=>jsx(di,{stopLossPrice:l.full_tp_sl?.sl_trigger_price,takeProfitPrice:l.full_tp_sl?.tp_trigger_price})},{title:r("common.partialTPSL"),dataIndex:"partial_tpsl",width:150,render:(s,l)=>jsx(ri,{orderNum:l.partial_tp_sl?.order_num,tpTriggerPrice:l.partial_tp_sl?.tp_trigger_price,slTriggerPrice:l.partial_tp_sl?.sl_trigger_price})},{title:r("common.notional"),dataIndex:"notional",className:"oui-h-[48px]",width:100,onSort:true,render:s=>jsx(Text.numeral,{dp:e,children:s})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast-54",content:jsxs(Flex,{direction:"column",gap:3,className:"oui-rounded-sm oui-bg-base-8 oui-text-base-contrast-54",children:[jsx("span",{children:r("positions.column.margin.tooltip")}),jsx(Divider,{className:"oui-w-full"}),jsx("span",{children:r("positions.column.margin.formula")})]}),children:jsx(Text,{children:r("positions.column.margin")})}),dataIndex:"mm",onSort:true,width:100,rule:"price",render:s=>jsx(Text.numeral,{children:s})},{title:r("funding.fundingFee"),dataIndex:"fundingFee",width:100,render:(s,l)=>jsx(mt,{fee:s,symbol:l.symbol,start_t:l.timestamp.toString(),end_t:n.current})},{title:null,dataIndex:"close_position",align:"right",width:70,fixed:"right",render(){return jsx(Flex,{gapX:2,justify:"end",children:jsx(At,{})})}}],[e,o,r])};var hi=t=>{let{item:e}=t,o=e.position_qty>0,{t:i}=useTranslation();return jsx(Text.formatted,{rule:"symbol",formatString:"base-type",size:"2xs",suffix:jsxs("div",{className:"oui-flex oui-items-center oui-gap-1",children:[jsx(Badge,{color:o?"success":"danger",size:"xs",children:i(o?"common.long":"common.short")}),jsx(Pe,{symbol:e.symbol})]}),showIcon:true,onClick:()=>{t.onSymbolChange?.({symbol:e.symbol});},children:e.symbol})},_i=t=>{let{item:e}=t,{t:o}=useTranslation();return jsxs(Flex,{gap:3,children:[jsxs(Flex,{direction:"column",className:"oui-text-2xs",itemAlign:"end",children:[jsxs("div",{children:[jsx(Text,{intensity:36,children:o("common.unrealizedPnl")}),jsx(Text,{intensity:20,children:"(USDC)"})]}),jsx(Text.numeral,{size:"xs",dp:t.pnlNotionalDecimalPrecision,rm:Decimal.ROUND_DOWN,coloring:true,className:"orderly-font-semibold",suffix:jsx(Text.numeral,{rule:"percentages",dp:t.pnlNotionalDecimalPrecision,rm:Decimal.ROUND_DOWN,prefix:"(",suffix:")",className: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})]}),jsx(ft,{position:e,sharePnLConfig:t.sharePnLConfig,modalId:SharePnLBottomSheetId,iconSize:12})]})},Si=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:o("common.qty"),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.base_dp,padding:false,coloring:true,children:e.position_qty})})},Ti=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:jsxs("span",{children:[o("positions.column.margin"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,intensity:80,children:e.mm})})},Fi=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{align:"end",label:jsxs("span",{children:[o("common.notional"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,intensity:80,children:e.notional})})},wi=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:o("common.avgOpen"),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,rm:Decimal.ROUND_DOWN,intensity:80,children:e.average_open_price})})},Ni=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:o("common.markPrice"),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,rm:Decimal.ROUND_DOWN,intensity:80,children:e.mark_price})})},vi=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.est_liq_price&&e.est_liq_price>0?e.est_liq_price:"-";return jsx(Statistic,{label:o("positions.column.liqPrice"),align:"end",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,rm:Decimal.ROUND_DOWN,color:"warning",children:i})})},Ii=t=>{let{item:e}=t,{t:o}=useTranslation(),i=useMemo(()=>e.full_tp_sl?.tp_trigger_price==null&&e.full_tp_sl?.sl_trigger_price==null?jsx(dt,{positionType:PositionType.FULL}):jsxs(Flex,{className:"oui-gap-[2px]",children:[e.full_tp_sl?.tp_trigger_price&&jsx(Text.numeral,{color:"buy",children:e.full_tp_sl.tp_trigger_price}),e.full_tp_sl?.sl_trigger_price&&"/",e.full_tp_sl?.sl_trigger_price&&jsx(Text.numeral,{color:"sell",children:e.full_tp_sl.sl_trigger_price}),jsx(Nt,{})]}),[e.full_tp_sl]),r=useMemo(()=>e.partial_tp_sl?.tp_trigger_price==null&&e.partial_tp_sl?.sl_trigger_price==null?jsx(dt,{positionType:PositionType.PARTIAL}):jsxs(Flex,{className:"oui-gap-[2px]",itemAlign:"center",children:[e.partial_tp_sl?.tp_trigger_price&&jsx(Text.numeral,{color:"buy",children:e.partial_tp_sl.tp_trigger_price}),e.partial_tp_sl?.sl_trigger_price&&"/",e.partial_tp_sl?.sl_trigger_price&&jsx(Text.numeral,{color:"sell",children:e.partial_tp_sl.sl_trigger_price}),jsx(Text,{children:`(${e.partial_tp_sl?.order_num})`}),jsx(Nt,{})]}),[e.partial_tp_sl]);return jsxs(Grid,{cols:2,rows:1,gap:2,width:"100%",children:[jsxs(Flex,{className:"oui-text-2xs oui-text-base-contrast-36",direction:"column",itemAlign:"start",children:[jsxs(Text,{children:[o("common.fullTPSL"),": "]}),i]}),jsxs(Flex,{className:"oui-text-2xs oui-text-base-contrast-36 oui-grid-cols-end",direction:"column",itemAlign:"end",children:[jsxs(Text,{children:[o("common.partialTPSL"),": "]}),r]})]})},Di=t=>{let{t:e}=useTranslation(),o=useRef(Date.now().toString());return jsxs(Flex,{justify:"end",className:"oui-w-full oui-text-2xs",children:[jsxs(Text,{intensity:36,children:[e("funding.fundingFee"),": "]}),jsx(mt,{fee:t.item.fundingFee,symbol:t.item.symbol,start_t:t.item.timestamp.toString(),end_t:o.current})]})};var ro=t=>{let{className:e,...o}=t,i=jsxs(Flex,{justify:"between",width:"100%",children:[jsx(hi,{...t}),jsx(_i,{...t})]}),r=jsxs(Grid,{cols:3,rows:2,gap:2,width:"100%",children:[jsx(Si,{...t}),jsx(Ti,{...t}),jsx(Fi,{...t}),jsx(wi,{...t}),jsx(Ni,{...t}),jsx(vi,{...t})]}),n=jsxs(Grid,{width:"100%",gap:2,cols:2,rows:1,children:[jsx(At,{type:OrderType.LIMIT}),jsx(At,{type:OrderType.MARKET})]});return jsxs(Flex,{direction:"column",width:"100%",gap:2,p:2,r:"xl",itemAlign:"start",className:cn(e,"oui-bg-base-9"),children:[i,jsx(Divider,{intensity:6,className:"oui-w-full"}),r,jsx(Ii,{...o}),jsx(Di,{...o}),n]})};var so=t=>{let e=$();return {...t,...e}};var ao=t=>{let e=so(t);return jsx(ro,{...e,className:t.className})};var Fe=t=>{let{position:e,children:o,mutatePositions:i}=t,{t:r}=useTranslation(),[n,a]=useState(Math.abs(e.position_qty).toString()),[s,l]=useState(""),[m,u]=useState(OrderType.MARKET);useEffect(()=>{a(Math.abs(e.position_qty).toString());},[e.position_qty]);let c=e.symbol,d=useSymbolsInfo(),g=d?.[c],p=g("quote_dp"),x=g("base_dp"),w=g("base_tick"),{side:k,closeOrderData:F,submit:f,isMutating:q,errors:H,calculate:W}=usePositionClose({position:e,order:{type:m,quantity:n,price:s}}),it=useCallback(h=>{let U=W({},"order_quantity",h,e.mark_price,g());a(U.order_quantity);},[W,d,e.mark_price]),R=useCallback(h=>{let U=W({},"order_price",h,e.mark_price,g());l(U.order_price);},[W,d,e.mark_price]),b=useCallback(h=>{u(h),l(h===OrderType.LIMIT?e.mark_price?.toString():"");},[e.mark_price]),nt=useCallback(async()=>{if(Number(n)>g("base_max")){toast.error(jsxs("div",{children:[r("positions.limitClose.errors.exceed.title"),jsx("br",{}),jsx("div",{className:"oui-break-normal",children:r("positions.limitClose.errors.exceed.description",{quantity:n,symbol:na(c,"base"),maxQuantity:g("base_max")})})]}));return}return f().then(h=>{if(h.success)return i?.(),h;throw h.message&&toast.error(h.message),true}).catch(h=>(h.message&&toast.error(h.message),false))},[f]),rt=useMemo(()=>({quantity:n,price:s,type:m,side:k,position:e,updatePriceChange:R,updateQuantity:it,updateOrderType:b,tpslOrder:e.full_tp_sl?.algo_order,partialTPSLOrder:e.partial_tp_sl?.algo_order,onSubmit:nt,submitting:q,closeOrderData:F,quoteDp:p,baseDp:x,baseTick:w,errors:H}),[n,s,m,k,e,R,it,b,nt,q,F,p,x,w,H]);return jsx(Ae.Provider,{value:rt,children:o})};function na(t,e="base"){let o=t.split("_"),i=o[0],r=o[1],n=o[2];return (e??"base-quote").replace("type",i).replace("base",r).replace("quote",n)}var Oi=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,pagination:i,isLoading:r,dataSource:n,onSymbolChange:a}=t,s=no({pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:a});return jsx(AuthGuardDataTable,{loading:r,id:"oui-desktop-positions-content",columns:s,bordered:true,dataSource:n,generatedRowKey:l=>l.symbol,renderRowContainer:(l,m,u)=>jsx(wt,{symbol:l.symbol,children:jsx(Fe,{position:l,children:u})}),manualPagination:false,pagination:i,testIds:{body:"oui-testid-dataList-position-tab-body"}})},ki=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,dataSource:i,onSymbolChange:r}=t;return jsx(ListView,{className:"oui-hide-scrollbar oui-w-full oui-space-y-0 oui-overflow-y-hidden",contentClassName:"!oui-space-y-1",dataSource:i,renderItem:(n,a)=>jsx(wt,{symbol:n.symbol,children:jsx(Fe,{position:n,children:jsx(ao,{item:n,index:a,pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:r})})})})},Ei=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,pagination:i,isLoading:r,tableData:n,onSymbolChange:a,mutatePositions:s}=t,l=no({pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:a}),{dataSource:m=[]}=n;return jsx(AuthGuardDataTable,{bordered:true,loading:r,id:"oui-desktop-positions-content",columns:l,dataSource:m,expanded:true,getSubRows:u=>u.children,generatedRowKey:u=>u.id,onCell:(u,c)=>{if((c.children??[]).length>0)return {children:u.id==="symbol"?jsx(Badge,{color:"neutral",size:"xs",children:c?.description||formatAddress(c?.id)}):null}},renderRowContainer:(u,c,d)=>u.symbol?jsx(wt,{symbol:u.symbol,children:jsx(Fe,{position:u,mutatePositions:s,children:d})}):d,manualPagination:false,pagination:i,testIds:{body:"oui-testid-dataList-position-tab-body"}})};var ua=t=>{let e=We(t);return jsx(Oi,{...e})},ma=t=>{let e=We(t);return jsx(ki,{...e})},ca=t=>{let e=Uo(t);return jsx(Ei,{...e})};var Bi=t=>{let{onSymbolChange:e,pnlNotionalDecimalPrecision:o}=t,{t:i}=useTranslation();return useMemo(()=>[{title:i("common.symbol"),dataIndex:"symbol",fixed:"left",width:200,onSort:(n,a)=>n.symbol.localeCompare(a.symbol),render:(n,a)=>jsx(ga,{record:a,onSymbolChange:e})},{title:i("positions.history.column.closed&maxClosed"),dataIndex:"close_maxClose",width:200,render:(n,a)=>jsx(xa,{record:a})},{title:i("positions.history.column.netPnl"),dataIndex:"netPnL",width:140,onSort:(n,a)=>n.netPnL==null||a.netPnL==null?-1:(n.netPnL??0)-(a.netPnL??0),render:(n,a)=>jsxs(Flex,{gapX:1,children:[jsx(ba,{record:a,pnlNotionalDecimalPrecision:o}),jsx(ft,{position:a,sharePnLConfig:t.sharePnLConfig,modalId:SharePnLDialogId,isPositionHistory:true})]})},{title:i("common.avgPrice"),dataIndex:"avg_open",width:140,render:(n,a)=>{let s=a.avg_open_price!=null?Math.abs(a.avg_open_price):"--",{quote_dp:l}=$();return jsx(Text.numeral,{dp:l,padding:false,children:s})}},{title:i("common.avgClose"),dataIndex:"avg_close",width:175,render:(n,a)=>{let s=a.avg_close_price!=null?Math.abs(a.avg_close_price):"--",{quote_dp:l}=$();return jsx(Text.numeral,{dp:l,padding:false,children:s})}},{title:i("funding.fundingFee"),dataIndex:"accumulated_funding_fee",render:(n,a)=>jsx(mt,{fee:-n,symbol:a.symbol,start_t:a.open_timestamp.toString(),end_t:a.close_timestamp?.toString()})},{title:i("positions.history.column.timeOpened"),dataIndex:"open_timestamp",width:175,onSort:true,render:(n,a)=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:a.open_timestamp})},{title:i("positions.history.column.timeClosed"),dataIndex:"close_timestamp",width:175,onSort:true,render:(n,a)=>a.position_status=="closed"&&a.close_timestamp?jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:a.close_timestamp??"--"}):"--"},{title:i("positions.history.column.updatedTime"),dataIndex:"last_update_time",width:175,onSort:true,render:(n,a)=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:a.last_update_time})}],[o,i])},ga=t=>{let{record:e,onSymbolChange:o}=t,{t:i}=useTranslation(),r=useMemo(()=>{let n=[],a=e.position_status,s=()=>a==="closed"?i("positions.history.status.closed"):a==="partial_closed"?i("positions.history.status.partialClosed"):capitalizeFirstLetter(a.replace("_"," "));return n.push(jsx(Badge,{color:a!=="closed"?"primaryLight":"neutral",size:"xs",className:"oui-break-normal oui-whitespace-nowrap",children:s()})),e.type==="adl"?n.push(jsx(Badge,{color:"danger",size:"xs",children:i("positions.history.type.adl")})):e.type==="liquidated"&&n.push(jsx(Tooltip,{className:"oui-min-w-[204px] oui-bg-base-5",arrow:{className:"oui-fill-base-5"},content:jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[e.liquidation_id!=null&&jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.liquidated.liquidationId")}),jsx(Text,{intensity:98,children:e.liquidation_id})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.liquidated.liquidatorFee")}),jsxs(Text,{color:"lose",children:[e.liquidator_fee>0&&"-",commifyOptional(e.liquidator_fee)]})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.liquidated.insFundFee")}),jsxs(Text,{color:"lose",children:[e.insurance_fund_fee>0&&"-",commifyOptional(e.insurance_fund_fee)]})]})]}),children:jsx("div",{children:jsx(Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",children:jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-[1px]",children:i("positions.history.type.liquidated")})})})})),n},[e,i]);return jsxs(Flex,{gap:2,height:48,children:[jsx(Box,{width:4,height:38,className:cn("oui-rounded-[1px] oui-shrink-0",e.side==="LONG"?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxs(Flex,{direction:"column",itemAlign:"start",children:[jsx(Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:n=>{o?.({symbol:e.symbol}),n.stopPropagation(),n.preventDefault();},children:`${e.symbol.split("_")[1]}-PERP`}),jsx(Flex,{gap:1,children:r})]})]})},xa=t=>{let{record:e}=t,{base_dp:o}=$();return jsxs(Flex,{gap:1,direction:"column",itemAlign:"start",className:"oui-overflow-hidden oui-whitespace-nowrap oui-text-ellipsis",children:[jsx(Text.numeral,{dp:o,padding:false,children:Math.abs(e.closed_position_qty)}),jsx(Text.numeral,{dp:o,padding:false,className:"oui-truncate",children:Math.abs(e.max_position_qty)})]})},ba=t=>{let{record:e,pnlNotionalDecimalPrecision:o}=t,{t:i}=useTranslation(),r=e.netPnL!=null?e.netPnL:void 0,n=()=>jsx(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?n():jsx(Tooltip,{delayDuration:200,content:jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsx(Text,{intensity:80,children:i("positions.history.column.netPnl")}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("common.realizedPnl")}),jsx(Text,{color:e.realized_pnl>=0?"profit":"lose",className:"oui-cursor-pointer",children:commifyOptional(e.realized_pnl)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("funding.fundingFee")}),jsx(Text,{color:e.accumulated_funding_fee>0?"lose":"profit",className:"oui-cursor-pointer",children:commifyOptional(-e.accumulated_funding_fee)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.netPnl.tradingFee")}),jsx(Text,{color:e.trading_fee>0?"lose":"profit",className:"oui-cursor-pointer",children:commifyOptional(-e.trading_fee)})]})]}),className:"oui-min-w-[204px] oui-bg-base-5",arrow:{className:"oui-fill-base-5"},children:jsx("div",{children:n()})})};function z(t){if(t==null)return t;let e=new Date(t);return e.setHours(0,0,0,0),e}function B(t){if(t==null)return t;let e=new Date(t);return e.setHours(23,59,59,999),e}var Ht=t=>({from:z(t.from),to:B(t.to??t.from)}),zt=(t,e)=>t.getTime()===e.getTime();var Ne=t=>{let{onSymbolChange:e,symbol:o,pnlNotionalDecimalPrecision:i}=t,{state:r}=useAccount(),{data:n,isLoading:a}=usePrivateQuery(o?`/v1/position_history?symbol=${o}&limit=1000`:"/v1/position_history?limit=1000",{formatter(F){return (F.rows??null)?.map(f=>{if(f.realized_pnl!=null&&f.accumulated_funding_fee!=null&&f.trading_fee!=null){let q=f.realized_pnl-f.accumulated_funding_fee-f.trading_fee;return {...f,netPnL:q}}return f})},revalidateOnFocus:true}),{pagination:s,setPage:l}=usePagination({pageSize:10}),{status:m,side:u,dateRange:c,filterDays:d,updateFilterDays:g,filterItems:p,onFilter:x}=Na();useEffect(()=>{l(1);},[m,u,c,d,o]);let w=useMemo(()=>n==null?n:n.filter(F=>{let f=u==="all"?true:F.side.toLowerCase()===u.toLowerCase(),q=m==="all"?true:F.position_status.toLowerCase()===m.toLowerCase(),H=F?.last_update_time??F.open_timestamp,W=c.from&&c.to?H>=c.from.getTime()&&H<=c.to.getTime():true,it=o?F.symbol==o:true;return f&&q&&W&&it}),[m,u,c,n,o]);return {dataSource:useDataTap(w,{accountStatus:r.status===AccountStatusEnum.EnableTradingWithoutConnected?AccountStatusEnum.EnableTradingWithoutConnected:AccountStatusEnum.EnableTrading,fallbackData:[]}),isLoading:a,onSymbolChange:e,pagination:s,filterItems:p,onFilter:x,symbol:o,filterDays:d,updateFilterDays:g,pnlNotionalDecimalPrecision:i}},Na=()=>{let{t}=useTranslation(),[e,o]=useState("all"),[i,r]=useState("all"),n=Ht({to:B(new Date),from:z(subDays(new Date,89))}),[a,s]=useState(90),[l,m]=useState(n),u=p=>{s(p),m({from:z(subDays(new Date,p-1)),to:B(new Date)});},c=p=>{if(p.name==="side"&&r(p.value),p.name==="status"&&o(p.value),p.name==="dateRange"){let x=Ht(p.value);if(m(x),x.from&&x.to){let w=Math.abs(differenceInDays(x.from,x.to))+1,F={1:{from:z(new Date),to:B(new Date)},7:{from:z(subDays(new Date,6)),to:B(new Date)},30:{from:z(subDays(new Date,29)),to:B(new Date)},90:{from:z(subDays(new Date,89)),to:B(new Date)}}[w];F&&zt(F.from,x.from)&&zt(F.to,x.to)?s(w):s(null);}}},{isMobile:d}=useScreen();return {filterItems:useMemo(()=>{let p={type:"select",name:"side",options:[{label:t("common.side.all"),value:"all"},{label:t("common.buy"),value:"LONG"},{label:t("common.sell"),value:"SHORT"}],value:i},x={type:"range",name:"dateRange",value:l,fromDate:z(subDays(new Date,89)),toDate:B(new Date)},w={type:"select",name:"status",options:[{label:t("common.status.all"),value:"all"},{label:t("positions.history.status.closed"),value:"closed"},{label:t("positions.history.status.partialClosed"),value:"partial_closed"}],value:e};return d?[p,w]:[p,w,x]},[i,e,l]),onFilter:c,side:i,dateRange:l,status:e,filterDays:a,updateFilterDays:u}};var Qi=t=>{let{side:e,symbol:o}=t.item,{t:i}=useTranslation(),r=e==="LONG";return jsx(Text.formatted,{intensity:80,rule:"symbol",formatString:"base-type",size:"sm",prefix:jsx(Badge,{color:r?"success":"danger",size:"xs",children:i(r?"common.buy":"common.sell")}),onClick:()=>{t.onSymbolChange?.({symbol:o});},children:o})};var $i=t=>{let{item:e}=t,{t:o}=useTranslation(),i=()=>{modal.alert({title:o("positions.liquidation"),message:jsxs(Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[e.liquidation_id!=null&&jsxs(Flex,{justify:"between",width:"100%",children:[jsx(Text,{children:o("positions.history.liquidated.liquidationId")}),jsx(Text,{intensity:98,children:e.liquidation_id})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsx(Text,{children:o("positions.history.liquidated.liquidatorFee")}),jsxs(Text,{color:"lose",children:[e.liquidator_fee>0&&"-",commifyOptional(e.liquidator_fee)]})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsx(Text,{children:o("positions.history.liquidated.insFundFee")}),jsxs(Text,{color:"lose",children:[e.insurance_fund_fee>0&&"-",commifyOptional(e.insurance_fund_fee)]})]})]})});},r=useMemo(()=>{let n=[],a=e.position_status,s=()=>a==="closed"?o("positions.history.status.closed"):a==="partial_closed"?o("positions.history.status.partialClosed"):capitalizeFirstLetter(a.replace("_"," "));return n.push(jsx(Badge,{color:a!=="closed"?"primaryLight":"neutral",size:"xs",children:s()})),e.type==="adl"?n.push(jsx(Badge,{color:"danger",size:"xs",children:o("positions.history.type.adl")})):e.type==="liquidated"&&n.push(jsx(Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",onClick:i,children:jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-[1px]",children:o("positions.history.type.liquidated")})})),n},[e]);return jsx(Flex,{gap:1,children:r})},Vi=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.closed_position_qty!=null?Math.abs(e.closed_position_qty):"--";return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.closed")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.base_dp,padding:false,coloring:true,intensity:80,children:i})})},Gi=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.max_position_qty!=null?Math.abs(e.max_position_qty):"--";return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.maxClosed")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.base_dp,padding:false,coloring:true,intensity:80,children:i})})},Ki=t=>{let{item:e}=t,o=e.avg_open_price!=null?Math.abs(e.avg_open_price):"--",{t:i}=useTranslation();return jsx(Statistic,{label:jsxs(Flex,{gap:1,children:[i("common.avgOpen"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,padding:false,coloring:true,intensity:80,children:o})})},Xi=t=>{let{item:e}=t,o=e.avg_close_price!=null?Math.abs(e.avg_close_price):"--",{t:i}=useTranslation();return jsx(Statistic,{label:jsxs(Flex,{gap:1,children:[i("common.avgClose"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,padding:false,coloring:true,intensity:80,children:o})})},Yi=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.timeOpened")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:jsx(Text.formatted,{intensity:80,formatString:"yyyy-MM-dd HH:mm:ss",rule:"date",children:e.open_timestamp})})},Ji=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.position_status=="closed"&&e.close_timestamp?jsx(Text.formatted,{intensity:80,formatString:"yyyy-MM-dd HH:mm:ss",rule:"date",children:e.close_timestamp}):"--";return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.timeClosed")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:i})},Zi=t=>{let{t:e}=useTranslation();return jsxs(Flex,{justify:"end",className:"oui-text-2xs oui-w-full oui-py-2 oui-gap-1 oui-gap-1",children:[jsxs(Text,{intensity:36,children:[e("funding.fundingFee"),": "]}),jsx(mt,{fee:-t.item.accumulated_funding_fee,symbol:t.item.symbol,start_t:t.item.open_timestamp.toString(),end_t:t.item.close_timestamp?.toString()})]})};var xo=t=>jsxs(Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:t.classNames?.root,children:[jsx(Oa,{...t}),jsx(Divider,{intensity:6,className:"oui-w-full"}),jsx(ka,{...t})]}),Oa=t=>{let{t:e}=useTranslation(),o=()=>{let{item:i}=t;modal.alert({title:e("positions.history.column.netPnl"),message:jsxs(Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:e("common.realizedPnl")}),jsx(Text,{color:i.realized_pnl>=0?"profit":"lose",children:commifyOptional(i.realized_pnl)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:e("funding.fundingFee")}),jsx(Text,{color:i.accumulated_funding_fee>0?"lose":"profit",children:commifyOptional(-i.accumulated_funding_fee)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:e("positions.history.netPnl.tradingFee")}),jsx(Text,{color:i.trading_fee>0?"lose":"profit",children:commifyOptional(-i.trading_fee)})]})]})});};return jsxs(Flex,{gap:1,width:"100%",children:[jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",gap:1,children:[jsx(Qi,{...t}),jsx($i,{...t})]}),jsxs(Flex,{direction:"column",itemAlign:"end",className:"oui-flex-1",children:[jsx(Text,{size:"2xs",intensity:36,children:e("positions.history.column.netPnl")}),jsxs(Flex,{gapX:1,children:[jsx("button",{onClick:o,children:jsx(Text.numeral,{size:"xs",coloring:true,children:t.item.netPnL??"--"})}),jsx(ft,{position:t.item,sharePnLConfig:t.sharePnLConfig,modalId:SharePnLBottomSheetId,iconSize:12,isPositionHistory:true})]})]})]})},ka=t=>jsxs("div",{className:"oui-w-full",children:[jsxs(Grid,{cols:3,rows:2,width:"100%",gap:0,className:"oui-grid-cols-[1fr,1fr,135px]",children:[jsx(Vi,{...t}),jsx(Gi,{...t}),jsx(Yi,{...t}),jsx(Ki,{...t}),jsx(Xi,{...t}),jsx(Ji,{...t})]}),jsx(Zi,{...t})]});var bo=t=>{let e=$();return {...t,...e}};var Po=t=>{let e=bo(t);return jsx(xo,{...e})};var _o=t=>{let{onSymbolChange:e,pagination:o,pnlNotionalDecimalPrecision:i}=t,r=Bi({onSymbolChange:e,pnlNotionalDecimalPrecision:i,sharePnLConfig:t.sharePnLConfig}),{t:n}=useTranslation(),a=useMemo(()=>({1:n("common.select.1d"),7:n("common.select.7d"),30:n("common.select.30d"),90:n("common.select.90d")}),[n]);return jsxs(Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxs(Flex,{gap:3,children:[t.filterItems.length>0&&jsx(DataFilter,{items:t.filterItems,onFilter:s=>{t.onFilter(s);}}),[1,7,30,90].map(s=>jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsx("div",{className:"oui-z-10",children:jsx(Text.gradient,{color:t.filterDays===s?"brand":void 0,className:cn("oui-whitespace-nowrap oui-break-normal",t.filterDays!==s?"oui-text-base-contrast-54":""),children:a[s]||`${s}D`})}),jsx("div",{className:"oui-absolute oui-inset-0 oui-rounded oui-opacity-[.12] oui-gradient-primary",onClick:()=>{t.updateFilterDays(s);}})]},`item-${s}`))]}),jsx(AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-positions-content",columns:r,bordered:true,dataSource:t.dataSource,generatedRowKey:s=>`${s.symbol}_${s.position_id}`,renderRowContainer:(s,l,m)=>jsx(wt,{symbol:s.symbol,children:m}),manualPagination:false,pagination:o,testIds:{body:"oui-testid-dataList-positionHistory-tab-body"},classNames:{root:"!oui-h-[calc(100%_-_49px)]"}})]})},So=t=>jsxs(Grid,{cols:1,rows:2,className:"oui-w-full oui-grid-rows-[auto,1fr]",gap:1,children:[jsx(Flex,{gap:2,p:2,className:"oui-rounded-b-xl oui-bg-base-9",children:jsx(DataFilter,{className:"oui-border-none oui-py-0",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsx(ListView,{className:cn("oui-hide-scrollbar oui-w-full oui-space-y-0 oui-overflow-y-hidden",t.classNames?.root),contentClassName:cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,renderItem:(e,o)=>jsx(wt,{symbol:e.symbol,children:jsx(Po,{item:e,index:o,onSymbolChange:t.onSymbolChange,classNames:{root:t.classNames?.cell},sharePnLConfig:t.sharePnLConfig})})})]});var $a=t=>{let e=Ne(t);return jsx(_o,{...e,sharePnLConfig:t.sharePnLConfig})},Va=t=>{let{classNames:e,...o}=t,i=Ne(o);return jsx(So,{...i,classNames:e,sharePnLConfig:t.sharePnLConfig})};var en=t=>jsx(Tooltip,{className:"oui-w-[275px] oui-bg-base-6",content:t.tooltip,arrow:{className:"oui-fill-base-6"},children:jsx("button",{className:"oui-border-b oui-border-dashed oui-border-line-12",children:t.label})}),on=t=>{let{t:e}=useTranslation();return useMemo(()=>[{title:e("common.time"),dataIndex:"timestamp",width:202,render:i=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:i})},{title:e("positions.Liquidation.column.liquidationId"),dataIndex:"liquidation_id",width:120,render:i=>jsx(Text,{children:i})},{title:e("common.symbol"),dataIndex:"Symbol",render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(Text.formatted,{rule:"symbol",formatString:"base-quote",children:n.symbol},n.symbol))})},{title:e("positions.Liquidation.column.markPrice"),dataIndex:"Price_(USDC)",render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(To,{value:n.mark_price,type:"quote"},n.symbol))})},{title:e("common.quantity"),dataIndex:"Quantity",render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(To,{value:n.position_qty,type:"base"},n.symbol))})},{title:jsx(en,{tooltip:e("positions.Liquidation.col.tooltip.feeRate"),label:e("positions.Liquidation.column.liquidationFeeRate")}),dataIndex:"liquidationFeeRate",render:i=>jsx(Text.numeral,{rule:"percentages",children:i})},{title:jsx(en,{tooltip:e("positions.Liquidation.col.tooltip.fee"),label:e("positions.Liquidation.column.liquidationFee")}),dataIndex:"abs_liquidation_fee",width:100,render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(To,{value:n.abs_liquidation_fee,type:"quote"},n.symbol))})},{title:"",dataIndex:"actions",align:"right",width:40,render:(i,r,n,a)=>{let s=a.row.getIsExpanded();return jsx("button",{className:"oui-p-2",onClick:()=>{a.row.getToggleExpandedHandler()();},children:jsx(Ja,{className:s?"oui-rotate-180":""})})}}],[e])},To=t=>jsx(Text,{children:commifyOptional(t.value)}),Ja=t=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t.className,children:jsx("path",{d:"M3.884 6.02a.67.67 0 0 0-.436.27.68.68 0 0 0 .187.933L7.63 9.88a.68.68 0 0 0 .749 0l3.994-2.657a.68.68 0 0 0 .187-.934.68.68 0 0 0-.936-.186L8.003 8.51l-3.62-2.407a.65.65 0 0 0-.499-.084",fill:"#fff",fillOpacity:".54"})});var Fo=t=>jsxs(Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:cn("oui-rounded-xl oui-bg-base-9 oui-p-2",t.classNames?.root),children:[jsx(el,{...t}),jsx(Divider,{}),jsx(ol,{...t})]},t.item.timestamp),el=t=>{let{t:e}=useTranslation();return jsxs(Flex,{width:"100%",justify:"between",itemAlign:"start",children:[jsx(Flex,{direction:"column",itemAlign:"start",gap:1,children:jsx(Flex,{gap:2,itemAlign:"center",children:jsx(Flex,{direction:"column",gap:1,itemAlign:"start",children:jsx(Text.formatted,{rule:"symbol",formatString:"base-quote",size:"xs",intensity:80,children:t.item.positions_by_perp?.[0]?.symbol||""})})})}),jsxs(Flex,{direction:"column",itemAlign:"end",children:[jsx(Text,{size:"2xs",intensity:36,children:jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:t.item.timestamp})}),jsxs(Text,{size:"2xs",intensity:36,children:[`${e("positions.Liquidation.column.liquidationId")}: `,jsx(Text,{as:"span",intensity:80,children:t.item.liquidation_id})]})]})]})},ol=t=>{let e=t.item.positions_by_perp?.[0],{t:o}=useTranslation(),i=useMemo(()=>isNaN(t.item?.margin_ratio)?"--":`${new Decimal(t.item.margin_ratio).mul(100).todp(2,Decimal.ROUND_DOWN).toNumber()}%`,[t.item?.margin_ratio]);return e?jsxs(Flex,{direction:"column",width:"100%",gap:1,children:[jsxs(Flex,{gap:2,width:"100%",children:[jsx(Tt,{label:o("positions.Liquidation.column.markPrice"),value:commifyOptional(e.transfer_price),className:"oui-flex-1"}),jsx(Tt,{label:o("common.quantity"),value:commifyOptional(e.position_qty),className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.column.liquidationFeeRate"),value:t.item.liquidationFeeRate,className:"oui-flex-1",align:"end"})]}),jsxs(Flex,{gap:2,width:"100%",children:[jsx(Tt,{label:o("positions.Liquidation.column.liquidationFee"),value:commifyOptional(e.abs_liquidation_fee),className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.expand.label.mr"),value:i,className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.expand.label.mmr"),value:t.item.formatted_account_mmr?`${t.item.formatted_account_mmr}%`:"--",className:"oui-flex-1",align:"end"})]}),jsxs(Flex,{gap:2,width:"100%",children:[jsx(Tt,{label:o("positions.Liquidation.expand.label.collateral"),value:commifyOptional(t.item.collateral_value),className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.expand.label.notional"),value:commifyOptional(t.item.position_notional),className:"oui-flex-1"}),jsx("div",{className:"oui-flex-1 oui-opacity-0"})," "]})]}):null},Tt=({label:t,value:e,className:o,align:i="start"})=>jsxs(Flex,{direction:"column",itemAlign:i,className:o,children:[jsx(Text,{size:"2xs",intensity:36,children:t}),jsx(Text,{size:"xs",intensity:80,children:e})]});var wo=t=>({...t});var No=t=>{let{classNames:e,...o}=t,i=wo(o);return jsx(Fo,{classNames:e,...i})};var Do=t=>{let[e,o]=useState({}),i=on();return jsxs(Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxs(Flex,{gap:3,children:[t.filterItems.length>0&&jsx(DataFilter,{items:t.filterItems,onFilter:r=>{t.onFilter(r);}}),[1,7,30,90].map(r=>jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsx("div",{className:"oui-z-10",children:jsx(Text.gradient,{color:t.filterDays===r?"brand":void 0,className:t.filterDays!==r?"oui-text-base-contrast-54":"",children:`${r}D`})}),jsx("div",{className:"oui-absolute oui-inset-0 oui-rounded oui-opacity-[.12] oui-gradient-primary",onClick:()=>{t.updateFilterDays(r);}})]},`item-${r}`))]}),jsx(AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-liquidation-content",columns:i,bordered:true,dataSource:t.dataSource,generatedRowKey:r=>`${r.liquidation_id}`,pagination:t.pagination,testIds:{body:"oui-testid-dataList-liquidation-tab-body"},classNames:{root:"!oui-h-[calc(100%_-_49px)]"},expanded:e,onExpandedChange:o,getRowCanExpand:()=>true,expandRowRender:r=>jsx(ml,{record:r.original})})]})},Le=t=>jsx("th",{className:"oui-h-10 oui-border-b oui-border-line oui-text-left oui-text-base-contrast-36",children:jsx(Tooltip,{content:t.tooltip,className:"oui-w-[275px] oui-bg-base-6",side:t.side,arrow:{className:"oui-fill-base-6"},children:jsx("button",{className:"oui-border-b oui-border-dashed oui-border-line-12",children:t.label})})}),ml=t=>{let{margin_ratio:e,account_mmr:o,collateral_value:i,position_notional:r}=t.record,{t:n}=useTranslation();return jsx("div",{className:"oui-w-full oui-bg-base-8 oui-px-6",children:jsxs("table",{className:"oui-w-full",children:[jsx("thead",{children:jsxs("tr",{children:[jsx(Le,{tooltip:n("positions.Liquidation.expand.tooltip.mr"),label:n("positions.Liquidation.expand.label.mr"),side:"left"}),jsx(Le,{tooltip:n("positions.Liquidation.expand.tooltip.mmr"),label:n("positions.Liquidation.expand.label.mmr")}),jsx(Le,{tooltip:n("positions.Liquidation.expand.tooltip.collateral"),label:n("positions.Liquidation.expand.label.collateral")}),jsx(Le,{tooltip:n("positions.Liquidation.expand.tooltip.notional"),label:n("positions.Liquidation.expand.label.notional")})]})}),jsx("tbody",{children:jsxs("tr",{children:[jsx("td",{className:"oui-h-10",children:jsx(Text.numeral,{rule:"percentages",children:e})}),jsx("td",{className:"oui-h-10",children:jsx(Text.numeral,{rule:"percentages",children:o})}),jsx("td",{className:"oui-h-10",children:commifyOptional(i)}),jsx("td",{className:"oui-h-10",children:commifyOptional(r)})]})})]})})},Lo=t=>jsxs(Grid,{cols:1,rows:2,className:"oui-w-full oui-grid-rows-[auto,1fr]",gap:1,children:[jsx(Flex,{gap:2,p:2,className:"oui-rounded-b-xl oui-bg-base-9",children:jsx(DataFilter,{className:"oui-border-none oui-py-0",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsx(ListView,{className:cn("oui-hide-scrollbar oui-w-full oui-space-y-0 oui-overflow-y-hidden",t.classNames?.root),contentClassName:cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,loadMore:t.loadMore,renderItem:(e,o)=>jsx(No,{item:e,index:o,classNames:{root:t.classNames?.cell}})})]});var qe=t=>{let{symbol:e,enableLoadMore:o}=t,{page:i,pageSize:r,setPage:n,pagination:a,parsePagination:s}=usePagination({pageSize:10}),{dateRange:l,filterDays:m,updateFilterDays:u,filterItems:c,onFilter:d}=bl();useEffect(()=>{n(1);},[e,l,m]);let[g,{meta:p,isLoading:x,loadMore:w}]=xl({page:o?void 0:i,size:r,symbol:e,start_t:l.from!=null?l.from.getTime():void 0,end_t:l.to!=null?l.to.getTime():void 0});return {dataSource:useDataTap(g,{fallbackData:[]}),isLoading:x,loadMore:w,pagination:s(p),dateRange:l,filterDays:m,updateFilterDays:u,filterItems:c,onFilter:d}},xl=t=>{let e=usePrivateInfiniteQuery(Pl(t),{initialSize:1,formatter:a=>a,revalidateOnFocus:true}),o=useMemo(()=>e.data?.[0]?.meta,[e.data?.[0]]),i=useMemo(()=>e.data?.map(a=>a.rows?.map(s=>{let l=null,m=s.positions_by_perp[0];return m&&(l=new Decimal(m.liquidator_fee).add(m.insurance_fund_fee).toNumber()),{...s,formatted_account_mmr:isNaN(s.account_mmr)?null:new Decimal(s.account_mmr).mul(100).toFixed(2).toString(),liquidationFeeRate:l}}))?.flat(),[e.data]),r=e.isLoading;return [i,{meta:o,isLoading:r,loadMore:()=>{e.setSize(e.size+1);}}]},bl=()=>{let t=Ht({to:B(new Date),from:z(subDays(new Date,89))}),[e,o]=useState(90),[i,r]=useState(t),n=m=>{o(m),r({from:z(subDays(new Date,m-1)),to:B(new Date)});},a=m=>{if(m.name==="dateRange"){let u=Ht(m.value);if(r(u),u.from&&u.to){let c=Math.abs(differenceInDays(u.from,u.to))+1,g={1:{from:z(new Date),to:B(new Date)},7:{from:z(subDays(new Date,6)),to:B(new Date)},30:{from:z(subDays(new Date,29)),to:B(new Date)},90:{from:z(subDays(new Date,89)),to:B(new Date)}}[c];g&&zt(g.from,u.from)&&zt(g.to,u.to)?o(c):o(null);}}},{isMobile:s}=useScreen();return {filterItems:useMemo(()=>{let m={type:"range",name:"dateRange",value:i,fromDate:z(subDays(new Date,89)),toDate:B(new Date)};return s?[m]:[m]},[i]),onFilter:a,dateRange:i,filterDays:e,updateFilterDays:n}},Pl=t=>(e,o)=>{if(o&&!o.rows?.length)return null;let{symbol:i,size:r=10,page:n,end_t:a,start_t:s}=t,l=new URLSearchParams([["size",r.toString()],["page",`${e+1}`]]);return n&&l.set("page",`${n}`),i&&l.set("symbol",i),a&&l.set("end_t",`${a}`),s&&l.set("start_t",`${s}`),`/v1/liquidations?${l.toString()}`};var Cl=t=>{let e=qe(t);return jsx(Do,{...e})},hl=t=>{let{classNames:e,...o}=t,i=qe(o);return jsx(Lo,{classNames:e,...i})};var Sl="MarketCloseConfirmID";registerSimpleDialog(Sl,Lt,{size:"md",closable:false});
17
+ var Ao=t=>{let{hideCloseIcon:e=false}=t;return jsxs("div",{className:"oui-relative oui-w-full oui-border-b oui-border-line-4 oui-pb-3",children:[jsx(Text,{size:"base",children:t.title}),!e&&jsx("button",{onClick:t.onClose,className:"oui-absolute oui-right-0 oui-top-0 oui-p-2 oui-text-base-contrast-54 hover:oui-text-base-contrast-80",children:jsx(CloseIcon,{size:18,color:"white"})})]})},se=t=>{let{t:e}=useTranslation();return jsxs(Flex,{id:"oui-positions-confirm-footer",gap:2,width:"100%",className:"oui-mt-3 oui-pb-1",children:[jsx(Button,{id:"oui-positions-confirm-footer-cancel-button",color:"secondary",fullWidth:true,onClick:t.onCancel,size:"md",children:e("common.cancel")}),jsx(ThrottledButton,{id:"oui-positions-confirm-footer-confirm-button",onClick:t.onConfirm,fullWidth:true,loading:t.submitting,disabled:t.disabled,size:"md",children:e("common.confirm")})]})},Dn=t=>{let{quantity:e,price:o,quoteDp:i,side:r}=t,{t:n}=useTranslation(),a=useMemo(()=>o&&e?new Decimal(o).mul(e).toFixed(i,Decimal.ROUND_DOWN):"--",[o,e]);return jsxs(Flex,{direction:"column",gap:1,width:"100%",className:"oui-text-sm oui-text-base-contrast-54",py:5,children:[jsxs(Flex,{justify:"between",width:"100%",gap:1,children:[jsx(Text,{children:n("common.qty")}),jsx(Text,{color:r===OrderSide.BUY?"success":"danger",children:e})]}),jsxs(Flex,{justify:"between",width:"100%",gap:1,children:[jsx(Text,{children:n("common.price")}),jsx(Text.formatted,{intensity:98,suffix:jsx(Text,{intensity:54,children:"USDC"}),children:o})]}),jsxs(Flex,{justify:"between",width:"100%",gap:1,children:[jsx(Text,{children:n("common.notional")}),jsx(Text.formatted,{intensity:98,suffix:jsx(Text,{intensity:54,children:"USDC"}),children:a})]})]})},Rt=t=>{let{t:e}=useTranslation(),o=()=>{(t?.onClose??t.close)?.();};return jsxs(Flex,{direction:"column",className:t.classNames?.root,children:[jsx(Ao,{onClose:o,title:e("positions.marketClose"),hideCloseIcon:t.hideCloseIcon}),jsx(Text,{intensity:54,size:"sm",className:"oui-my-5",children:e("positions.marketClose.description",{quantity:commifyOptional(t.quantity),base:t.base})}),jsx(se,{onCancel:o,onConfirm:async()=>{await t.onConfirm?.(),o();},submitting:t.submitting})]})},ae=t=>{let{order:e,quoteDp:o,quantity:i,price:r}=t,{side:n}=e,{t:a}=useTranslation(),s=()=>{t.onClose?.();};return jsxs(Fragment,{children:[jsx(Ao,{onClose:s,title:a("positions.limitClose"),hideCloseIcon:t.hideCloseIcon}),jsx(Box,{mt:5,children:jsx(Text,{intensity:54,size:"sm",children:a("positions.limitClose.description",{quantity:commify(t.quantity),base:t.base})})}),jsxs(Flex,{gap:2,mb:4,mt:5,justify:"between",children:[jsx(Text.formatted,{rule:"symbol",formatString:"base-type",size:"base",showIcon:true,children:e.symbol}),jsxs(Flex,{gap:1,children:[jsx(Badge,{color:"neutral",size:"xs",children:a("orderEntry.orderType.limit")}),jsx(Badge,{color:n===OrderSide.BUY?"success":"danger",size:"xs",children:n===OrderSide.BUY?a("common.buy"):a("common.sell")})]})]}),jsx(Divider,{className:"oui-w-full"}),jsx(Dn,{className:"oui-text-sm",price:r,quantity:i,side:e.side,quoteDp:o??2}),jsx(se,{onCancel:s,onConfirm:t.onConfirm,submitting:t.submitting})]})};var Ee=createContext({}),Z=()=>useContext(Ee);function Ho(t,e){let o=useRef(),i=useRef(e);i.current=e,useEffect(()=>{let r={root:null,rootMargin:"0px",threshold:0},n=a=>{a.forEach(s=>{s.isIntersecting&&i.current?.();});};return o.current=new IntersectionObserver(n,r),()=>{o.current?.disconnect();}},[]),useEffect(()=>{o.current?.observe(t.current);},[]);}var zo=t=>{let e=useRef(null),{onEndReached:o}=t;return Ho(e,()=>{o?.();}),jsxs(Fragment,{children:[t.children,jsx("div",{ref:e,className:"oui-relative oui-invisible oui-h-[25px] oui-bg-red-400 oui-top-[-300px]"})]})};var le=({total:t,symbol:e,start_t:o,end_t:i})=>{let{t:r}=useTranslation(),{isMobile:n}=useScreen(),{isLoading:a,data:s,setSize:l}=usePrivateInfiniteQuery((d,y)=>y&&!y.length?null:`/v1/funding_fee/history?page=${d}&symbol=${e}&start_t=${o}&end_t=${i}`,{revalidateFirstPage:false}),m=useCallback(()=>{l(d=>d+1);},[l]),u=useMemo(()=>Array.isArray(s)?s.flat().map(d=>({...d,funding_fee:-d.funding_fee})):[],[s]),c=useMemo(()=>n?jsx(Gn,{data:u??EMPTY_LIST,isLoading:a,loadMore:m}):jsx(Vn,{data:u??EMPTY_LIST,isLoading:a,loadMore:m}),[n,u,a]);return jsxs("div",{children:[jsxs(Grid,{cols:2,gapX:3,className:"oui-sticky oui-top-0 oui-z-10 oui-bg-base-8 oui-py-4",children:[jsx("div",{className:"oui-rounded-lg oui-border oui-border-line-6 oui-bg-base-9 oui-p-3",children:jsxs(Flex,{direction:"column",gap:1,itemAlign:"start",children:[jsx("span",{className:"oui-text-2xs oui-text-base-contrast-36",children:r("common.symbol")}),jsx(Text.formatted,{rule:"symbol",className:"oui-font-semibold",intensity:98,children:e})]})}),jsx("div",{className:"oui-rounded-lg oui-border oui-border-line-6 oui-bg-base-9 oui-p-3",children:jsx(Statistic,{label:`${r("funding.fundingFee")} (USDC)`,valueProps:{ignoreDP:true,coloring:true,showIdentifier:true},children:t})})]}),c]})},Vn=({isLoading:t,data:e,loadMore:o})=>{let{t:i}=useTranslation(),r=useMemo(()=>[{title:i("common.time"),dataIndex:"created_time",width:120,render:n=>jsx(Text.formatted,{rule:"date",children:n})},{title:i("funding.fundingRate"),dataIndex:"funding_rate",formatter:n=>new Decimal(n).mul(100).toString(),render:n=>jsx("span",{children:`${n}%`})},{title:i("funding.paymentType"),dataIndex:"payment_type",formatter:n=>i(n==="Pay"?"funding.paymentType.paid":"funding.paymentType.received"),render:n=>jsx("span",{children:n})},{title:`${i("funding.fundingFee")} (USDC)`,dataIndex:"funding_fee",render:n=>jsx(Text.numeral,{rule:"price",coloring:true,showIdentifier:true,ignoreDP:true,children:n})}],[i]);return jsx("div",{className:"oui-h-[calc(80vh_-_132px_-_8px)] oui-overflow-y-auto",children:jsx(zo,{onEndReached:o,children:jsx(DataTable,{classNames:{root:cn("oui-h-auto oui-bg-base-8 oui-text-sm")},columns:r,dataSource:e??EMPTY_LIST,loading:t})})})},Gn=({data:t,isLoading:e,loadMore:o})=>{let i=useCallback(r=>jsx(Kn,{item:r}),[]);return jsx("div",{className:"oui-h-[calc(80vh_-_104px)] oui-overflow-y-auto",children:jsx(ListView,{dataSource:t,renderItem:i,isLoading:e,contentClassName:"oui-space-y-0",loadMore:o})})},Kn=({item:t})=>{let{t:e}=useTranslation();return jsxs("div",{className:"oui-flex oui-flex-col oui-space-y-2 oui-border-t oui-border-line-6 oui-py-2",children:[jsxs(Flex,{justify:"between",children:[jsx(Statistic,{label:e("funding.fundingRate"),classNames:{label:"oui-text-2xs"},valueProps:{ignoreDP:true,rule:"percentages",className:"oui-text-xs"},children:t.funding_rate}),jsx(Statistic,{label:e("common.amount"),className:"oui-items-end",classNames:{label:"oui-text-2xs"},valueProps:{ignoreDP:true,coloring:true,as:"div",className:"oui-text-xs",showIdentifier:true},children:t.funding_fee})]}),jsxs(Flex,{justify:"between",children:[jsx(Text.formatted,{rule:"date",className:"oui-text-base-contrast-36",size:"2xs",children:t.created_time}),jsx(Text,{size:"sm",intensity:80,children:t.payment_type==="Pay"?e("funding.paymentType.paid"):e("funding.paymentType.received")})]})]})};var mt=({fee:t,symbol:e,start_t:o,end_t:i})=>{let{t:r}=useTranslation(),[n,{setTrue:a,setFalse:s}]=useBoolean(false),{isMobile:l}=useScreen();return jsxs(Fragment,{children:[jsx("button",{onClick:a,children:jsx(Text.numeral,{rule:"price",coloring:true,showIdentifier:true,ignoreDP:true,className:"oui-border-b oui-border-line-16 oui-border-dashed oui-py-0.5",children:t})}),l?jsx(SimpleSheet,{open:n,onOpenChange:s,title:r("funding.fundingFee"),classNames:{body:"oui-max-h-[80vh] oui-py-0"},children:jsx(le,{total:t,symbol:e,start_t:o,end_t:i})}):jsx(SimpleDialog,{open:n,onOpenChange:s,title:r("funding.fundingFee"),classNames:{content:"lg:oui-max-w-[640px]",body:"oui-max-h-[80vh] oui-bg-base-8 lg:oui-py-0"},children:jsx(le,{total:t,symbol:e,start_t:o,end_t:i})})]})};var lr=(t,e)=>{let o=useConfig("apiBaseUrl");return i=>(r,n,a)=>{try{return i(r,async l=>{let m=Array.isArray(l)?l[0]:l,u=`${o}${m}`,c=t.signer,d={method:"GET",url:m},y=await c.sign(d,getTimestamp()),g=Array.isArray(e)?e:[e];return Promise.all(g.map(x=>n(u,{headers:{...y,"orderly-account-id":x}})))},a)}catch(s){throw s}}},Qo=(t,e)=>{let{formatter:o,accountId:i,...r}=e||{},{state:n,account:a}=useAccount(),s=Array.isArray(e?.use)?e?.use??[]:[],l=Array.isArray(i)?i:[i],m=l.filter(Boolean).length&&(n.status>=AccountStatusEnum.EnableTrading||n.status===AccountStatusEnum.EnableTradingWithoutConnected);return useSWR(()=>m?[t,l]:null,(u,c)=>fetcher(u,c,{formatter:o}),{...r,use:[...s,lr(a,l)],onError:()=>{}})};var $o=t=>{let{symbol:e,calcMode:o,includedPendingOrder:i,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,onSymbolChange:a,selectedAccount:s}=t,{pagination:l,setPage:m}=usePagination({pageSize:50});useEffect(()=>{m(1);},[e]);let u=useSymbolsInfo(),{state:c}=useAccount(),[d,,{isLoading:y}]=usePositionStream(e,{calcMode:o,includedPendingOrder:i}),{data:g=[],isLoading:x,mutate:h}=usePrivateQuery("/v1/client/aggregate/positions",{errorRetryCount:3}),{data:I=[],isLoading:_}=Qo("/v1/client/info",{accountId:g.map(M=>M.account_id),revalidateOnFocus:false}),f=produce(g.filter(M=>M.account_id!==c.mainAccountId),M=>{for(let b of M){let nt=u[b.symbol],rt=positions.notional(b.position_qty,b.mark_price),S=I.find(Oe=>Oe.account_id===b.account_id),Q=positions.MMR({baseMMR:nt?.("base_mmr"),baseIMR:nt?.("base_imr"),IMRFactor:S?.imr_factor[b.symbol]??0,positionNotional:rt,IMR_factor_power:4/5}),ee=positions.maintenanceMargin({positionQty:b.position_qty,markPrice:b.mark_price,MMR:Q}),oe=positions.unrealizedPnL({qty:b.position_qty,openPrice:b?.average_open_price,markPrice:b.mark_price}),Me=account.maxLeverage({symbolLeverage:b.leverage,accountLeverage:S?.max_leverage??1}),Vt=account.IMR({maxLeverage:Me,baseIMR:nt?.("base_imr"),IMR_Factor:S?.imr_factor[b.symbol]??0,positionNotional:rt,ordersNotional:0,IMR_factor_power:4/5}),ie=positions.unrealizedPnLROI({positionQty:b.position_qty,openPrice:b.average_open_price,IMR:Vt,unrealizedPnL:oe}),ne=0,qt=0;b.index_price&&(ne=positions.unrealizedPnL({qty:b.position_qty,openPrice:b?.average_open_price,markPrice:b.index_price}),qt=positions.unrealizedPnLROI({positionQty:b.position_qty,openPrice:b.average_open_price,IMR:Vt,unrealizedPnL:ne})),b.mmr=Q,b.mm=ee,b.notional=rt,b.unrealized_pnl=oe,b.unrealized_pnl_ROI=ie,b.unrealized_pnl_ROI_index=qt;}}),N=useDataTap([...d?.rows,...f].filter(M=>M.position_qty!==0))??[],k=useMemo(()=>!s||s==="All accounts"?N:N.filter(M=>s==="Main accounts"?M.account_id===c.mainAccountId||!M.account_id:M.account_id===s),[N,s,c.mainAccountId]),W=useMemo(()=>Pr(k,{mainAccountId:c.mainAccountId,subAccounts:c.subAccounts}),[k,c.mainAccountId,c.subAccounts]),it=useMemo(()=>y||x||_,[y,x,_]);return {tableData:W,isLoading:it,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,symbol:e,onSymbolChange:a,pagination:l,mutatePositions:h}},Pr=(t,e)=>{let{mainAccountId:o="",subAccounts:i=[]}=e,r=new Map;for(let n of t){let a=n.account_id||o,s=i.find(l=>l.id===a);r.has(a)?r.get(a)?.children?.push(n):r.set(a,{id:a,description:a===o?i18n.t("common.mainAccount"):s?.description||formatAddress(s?.id||""),children:[n]});}return {expanded:Array.from(r.keys()),dataSource:Array.from(r.values())}};var $e=t=>{let{symbol:e,calcMode:o,includedPendingOrder:i,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,onSymbolChange:a}=t,{pagination:s,setPage:l}=usePagination({pageSize:50});Cr.useEffect(()=>{l(1);},[e]);let[m,,{isLoading:u}]=usePositionStream(e,{calcMode:o,includedPendingOrder:i});return {dataSource:useDataTap(m?.rows,{fallbackData:[]})??void 0,isLoading:u,pnlNotionalDecimalPrecision:r,sharePnLConfig:n,symbol:e,onSymbolChange:a,pagination:s}};var Ve=createContext({}),$=()=>useContext(Ve);var wt=t=>{let{symbol:e,children:o}=t,i=useSymbolsInfo()[e],r=useMemo(()=>({symbol:e,base_dp:i("base_dp"),quote_dp:i("quote_dp"),base_tick:i("base_tick"),quote_tick:i("quote_tick"),base:i("base"),quote:i("quote"),origin:i(),quote_max:i("quote_max"),quote_min:i("quote_min")}),[e,i]);return jsx(Ve.Provider,{value:r,children:o})};var me=t=>{let{t:e}=useTranslation();return jsxs(Fragment,{children:[jsx(Slider,{showTip:true,markCount:4,value:[t.value],color:"primary",onValueChange:o=>{t.onValueChange(o[0]);}}),jsxs(Flex,{width:"100%",justify:"between",children:[jsx(Text,{color:"primary",size:"2xs",children:`${t.value}%`}),jsxs(Flex,{gap:1,onClick:t.onMax,className:"oui-cursor-pointer",children:[jsx(Text,{size:"2xs",color:"primary",children:e("common.max")}),jsx(Text.numeral,{intensity:54,size:"2xs",dp:t.base_dp,padding:false,children:t.max})]})]})]})};var Ye=t=>{let{base:e,base_dp:o,quote:i,quote_dp:r,sheetOpen:n,setSheetOpen:a,dialogOpen:s,setDialogOpen:l,quantity:m,price:u,submitting:c,priceErrorMsg:d,quantityErrorMsg:y,disabled:g,isMarketClose:x,position:h,maxQty:I,isBuy:_}=t,{t:f}=useTranslation(),N=f(x?"positions.marketClose":"positions.limitClose"),k=f(x?"orderEntry.orderType.market":"orderEntry.orderType.limit"),W=_?jsx(Badge,{color:"success",size:"xs",children:f("common.buy")}):jsx(Badge,{color:"danger",size:"xs",children:f("common.sell")}),it=jsxs(Flex,{width:"100%",justify:"between",children:[jsx(Text.formatted,{rule:"symbol",showIcon:true,children:h.symbol}),jsxs(Flex,{gap:1,children:[jsx(Badge,{color:"neutral",size:"xs",children:k}),W]})]}),M=jsxs(Flex,{width:"100%",justify:"between",children:[jsx(Text,{intensity:54,children:f("common.lastPrice")}),jsx(Text.numeral,{dp:r,suffix:jsxs(Text,{intensity:36,children:[" ",i]}),children:h.mark_price})]}),b=!x&&jsx(Fragment,{children:jsxs(Flex,{width:"100%",direction:"column",gap:2,children:[jsx(Input.tooltip,{prefix:f("common.price"),suffix:i,align:"right",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(r)],triggerClassName:"oui-w-full",tooltip:d,color:d?"danger":void 0,value:u,onValueChange:t.updatePriceChange,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",d?"oui-outline-danger":void 0)}}),jsx(Input.tooltip,{prefix:f("common.quantity"),suffix:e,align:"right",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(o)],triggerClassName:"oui-w-full",tooltip:y,color:y?"danger":void 0,value:m,onBlur:()=>t.formatQuantityToBaseTick(m),onValueChange:t.updateQuantity,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",y?"oui-outline-danger":void 0)}})]})}),nt=jsx(me,{value:t.sliderValue,onValueChange:t.onSliderValueChange,base_dp:o,max:I,onMax:t.onMax}),rt=jsxs(Flex,{width:"100%",gap:3,mt:2,children:[jsx(Button,{fullWidth:true,color:"secondary",onClick:t.onCloseSheet,children:f("common.cancel")}),jsx(ThrottledButton,{fullWidth:true,disabled:c||g,loading:c,onClick:S=>{S.stopPropagation(),S.preventDefault(),t.onDoubleConfirm();},children:f("common.confirm")})]});return jsxs(Fragment,{children:[jsx(Button,{variant:"outlined",color:"secondary",size:"sm",className:"oui-border-base-contrast-36",onClick:S=>{S.stopPropagation(),S.preventDefault(),a(true);},children:N}),jsx(SimpleSheet,{title:N,open:n,onOpenChange:a,children:jsxs(Flex,{direction:"column",gap:3,width:"100%",itemAlign:"start",className:"oui-text-sm",children:[it,jsx(Divider,{className:"oui-w-full"}),M,b,nt,rt]})}),jsx(SimpleDialog,{open:s,onOpenChange:l,size:"xs",children:x?jsx(Rt,{base:e,quantity:m,submitting:c,onClose:t.onCloseDialog,onConfirm:t.onConfirm,hideCloseIcon:true}):jsx(ae,{base:e,quoteDp:r,quantity:m,price:u,submitting:c,order:t.closeOrderData,onClose:t.onCloseDialog,onConfirm:t.onConfirm,hideCloseIcon:true})})]})};var Je=t=>{let{position:e,base:o,base_dp:i,quote_dp:r,price:n,quantity:a,submitting:s,dialogOpen:l,setDialogOpen:m,isMarketClose:u,popoverOpen:c,setPopoverOpen:d,maxQty:y,quantityErrorMsg:g,priceErrorMsg:x,isEntirePosition:h}=t,{t:I}=useTranslation(),_=jsxs(Flex,{width:"100%",gap:2,mb:1,children:[jsx(Input.tooltip,{ref:t.quantityInputRef,prefix:I("common.quantity"),suffix:h?jsx(Text,{size:"2xs",intensity:54,className:"oui-cursor-pointer oui-px-3",onClick:t.onEntirePosition,children:I("tpsl.entirePosition")}):o,align:"right",size:"md",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(i)],triggerClassName:"oui-w-full",tooltip:g,color:g?"danger":void 0,value:h?"":a,onBlur:()=>t.formatQuantityToBaseTick(a),onValueChange:t.updateQuantity,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",g?"oui-outline-danger":void 0)}}),jsx(Button,{onClick:t.onMax,size:"md",variant:"outlined",className:cn("oui-text-2xs",h?"oui-border-primary-light oui-text-primary-light hover:oui-bg-primary-light/20":"oui-border-line-12 oui-bg-base-6 oui-text-base-contrast-54 hover:oui-bg-base-5"),children:I("common.position")})]}),f=jsx(Select.options,{variant:"text",size:"md",options:[{label:I("orderEntry.orderType.limit"),value:OrderType.LIMIT},{label:I("orderEntry.orderType.market"),value:OrderType.MARKET}],classNames:{trigger:"oui-w-[--radix-select-content-available-width]"},value:t.type,onValueChange:W=>{t.updateOrderType(W);},contentProps:{align:"end",className:"oui-border oui-border-line-6"}}),N=u,k=jsx(Input.tooltip,{suffix:f,size:"md",fullWidth:true,autoComplete:"off",formatters:[inputFormatter.numberFormatter,inputFormatter.dpFormatter(r)],triggerClassName:"oui-w-full",tooltip:x,color:x?"danger":void 0,value:n,onValueChange:t.updatePriceChange,placeholder:N?"--":"",disabled:N,classNames:{prefix:"oui-text-base-contrast-54",suffix:"oui-text-base-contrast-54",root:cn("oui-w-full oui-outline-line-12",x?"oui-outline-danger":void 0,N?"focus-within:oui-outline-line-12":void 0)}});return jsxs(Fragment,{children:[jsxs(PopoverRoot,{open:c,onOpenChange:d,children:[jsx(PopoverTrigger,{asChild:true,onClick:()=>{d(true);},children:jsx(Button,{variant:"outlined",size:"sm",color:"secondary",children:I("positions.column.close")})}),jsx(PopoverContent,{className:cn("oui-w-[360px] oui-p-5",c?"oui-visible":"oui-invisible"),align:"end",side:"top",onOpenAutoFocus:W=>W.preventDefault(),children:jsxs(Flex,{gapY:2,direction:"column",children:[_,jsx(me,{value:t.sliderValue,onValueChange:t.onSliderValueChange,base_dp:i,max:y,onMax:t.onMax}),jsx(Divider,{my:2,intensity:8,className:"oui-w-full"}),k,jsx(se,{onConfirm:t.onDoubleConfirm,onCancel:t.onClosePopover,submitting:s,disabled:t.disabled})]})})]}),jsx(SimpleDialog,{open:l,onOpenChange:m,size:"sm",children:u?jsx(Rt,{base:o,quantity:a,submitting:s,onClose:t.onCloseDialog,onConfirm:t.onConfirm,classNames:{root:"oui-items-start"},hideCloseIcon:true}):jsx(ae,{base:o,quoteDp:r,quantity:a,price:n,submitting:s,order:t.closeOrderData,onClose:t.onCloseDialog,onConfirm:t.onConfirm,hideCloseIcon:true})})]})};var Ze=t=>{let[e,o]=useState(false),[i,r]=useState(false),[n,a]=useState(false),[s,l]=useState(100),m=useRef(null),[u]=useLocalStorage("orderly_order_confirm",true),{position:c,onSubmit:d,price:y,quantity:g,closeOrderData:x,submitting:h,updatePriceChange:I,updateOrderType:_,updateQuantity:f,errors:N,baseTick:k,type:W}=Z(),{quote_dp:it,base_dp:M,base:b,quote:nt}=$(),{getErrorMsg:rt}=useOrderEntryFormErrorMsg(N),S=c.position_qty>0,Q=Math.abs(c.position_qty),ee=t.type||W,oe=ee===OrderType.MARKET,Me=Q?.toString()===g.toString();useEffect(()=>{e&&_(t.type);},[t.type,e]);let{priceErrorMsg:Vt,quantityErrorMsg:ie}=useMemo(()=>({priceErrorMsg:rt("order_price"),quantityErrorMsg:rt("order_quantity")}),[N]),ne=!!(Vt||ie),qt=useCallback(bt=>{if(k&&k>0){let Gt=utils.formatNumber(bt,k)??bt;f(Gt);}},[k,f]),Oe=useCallback(bt=>{l(bt);let Gt=new Decimal(bt).div(100).mul(Q).toFixed(M,Decimal.ROUND_DOWN);qt(Gt);},[Q,M,qt]);useEffect(()=>{let bt=Math.min(Number(g||0),Q),Gt=new Decimal(bt).div(Q).mul(100).toDecimalPlaces(2,Decimal.ROUND_DOWN).toNumber();l(Gt);},[g]);let xn=useCallback(()=>{f(Q?.toString());},[Q,f]),Ae=useCallback(()=>d().then(bt=>{o(false),r(false),a(false);}),[d]),bn=useCallback(()=>u?(r(true),Promise.resolve()):Ae(),[Ae,u]),Pn=useCallback(()=>{o(false);},[]),Cn=useCallback(()=>{r(false);},[]),hn=useCallback(()=>{a(false);},[]),_n=useCallback(()=>{f("0"),m.current?.focus(),setTimeout(()=>{m.current?.setSelectionRange(0,1);},0);},[f]);return {position:c,closeOrderData:x,quote_dp:it,base_dp:M,base:b,quote:nt,price:y,quantity:g,submitting:h,onConfirm:Ae,onDoubleConfirm:bn,updatePriceChange:I,updateQuantity:f,formatQuantityToBaseTick:qt,updateOrderType:_,sliderValue:s,onSliderValueChange:Oe,priceErrorMsg:Vt,quantityErrorMsg:ie,disabled:ne,isMarketClose:oe,maxQty:Q,onMax:xn,isBuy:S,isEntirePosition:Me,type:ee,quantityInputRef:m,onEntirePosition:_n,sheetOpen:e,onCloseSheet:Pn,setSheetOpen:o,dialogOpen:i,setDialogOpen:r,onCloseDialog:Cn,popoverOpen:n,setPopoverOpen:a,onClosePopover:hn}};var kt=t=>{let e=Ze(t),{isMobile:o}=useScreen();return o?jsx(Ye,{...e}):jsx(Je,{...e})};var Nt=()=>{let{position:t,baseDp:e,quoteDp:o,tpslOrder:i}=Z(),{isMobile:r}=useScreen();return jsx(EditIcon,{onClick:()=>{let a=r?TPSLDetailSheetId:TPSLDetailDialogId;modal.show(a,{order:i,position:t,baseDP:e,quoteDP:o});},opacity:1,className:"oui-cursor-pointer oui-text-base-contrast-54",size:16})},dt=t=>{let{position:e,baseDp:o,quoteDp:i,tpslOrder:r}=Z(),[n]=useLocalStorage("orderly_order_confirm",true),{t:a}=useTranslation(),{isMobile:s}=useScreen(),l=()=>{let m=s?TPSLSheetId:TPSLDialogId,u={symbol:e.symbol,baseDP:o,quoteDP:i,isEditing:false,positionType:t.positionType};modal.show(m,u);};return jsx(Text,{className:cn("oui-cursor-pointer oui-text-base-contrast",s&&"oui-text-base-contrast-80"),onClick:l,children:a("tpsl.add")})},Pe=t=>{let{symbol:e,leverage:o}=t,i=()=>{modal.show(t.modalId,{symbol:e,curLeverage:o});};return jsxs("div",{className:cn("oui-flex oui-h-[18px] oui-items-center oui-gap-1","oui-cursor-pointer oui-rounded oui-bg-line-6 oui-pl-2 oui-pr-1","oui-text-2xs oui-font-semibold oui-text-base-contrast-36"),onClick:i,children:[jsx(Text,{children:"Cross"}),o?jsx(Text.numeral,{dp:0,rm:Decimal.ROUND_DOWN,size:"2xs",unit:"X",children:o}):jsx(ls,{symbol:e}),jsx(ChevronRightIcon,{size:14,opacity:1,className:"oui-text-base-contrast-36"})]})},ls=({symbol:t})=>{let e=useLeverageBySymbol(t);return jsx(Text.numeral,{dp:0,rm:Decimal.ROUND_DOWN,size:"2xs",unit:"X",children:e||1})};var si=t=>{let e=$();return jsx(Text.numeral,{dp:e.base_dp,rm:Decimal.ROUND_DOWN,padding:false,coloring:true,children:t})};var Ce=t=>{let{tick:e="quote_dp",children:o,...i}=t,r=$();if(!r)throw new Error("NumeralWithCtx must be used inside SymbolProvider");return jsx(Text.numeral,{as:"span",dp:r[e],...i,children:o})};var li=t=>{let{orderNum:e,tpTriggerPrice:o,slTriggerPrice:i,direction:r="column"}=t,{partialTPSLOrder:n,quoteDp:a,baseDp:s}=Z(),l=useSymbolsInfo(),{t:m}=useTranslation(),u=useMemo(()=>{let d=[];return n?.symbol?(o&&d.push(jsx(Text.formatted,{className:cn("oui-text-trade-profit oui-gap-0 oui-decoration-white/20"),rule:"price",dp:l[n.symbol]("quote_dp",2),children:o,prefix:!i||r==="column"?jsx(Text,{intensity:54,children:`${m("tpsl.tp")} - `}):""},"tp")),i&&d.push(jsx(Text.formatted,{className:cn("oui-text-trade-loss oui-gap-0 oui-decoration-white/20 "),rule:"price",dp:l[n.symbol]("quote_dp",2),prefix:jsx(Text,{intensity:54,children:`${m("tpsl.sl")} - `}),children:i},"sl")),d.length===0?jsx(dt,{positionType:PositionType.PARTIAL}):(d.length===2&&r==="row"&&d.splice(1,0,jsx(Text,{children:"/"},"split")),d)):jsx(dt,{positionType:PositionType.PARTIAL})},[o,i,n?.symbol,m]),c=Array.isArray(u)?!!u.length:!u;return jsxs(Flex,{className:"oui-gap-[6px]",children:[jsx("div",{className:cn("oui-inline-flex oui-text-base-contrast-36",r==="column"?"oui-flex-col":"oui-flex-row oui-gap-1"),children:u}),c&&jsxs(Fragment,{children:[jsxs(Text,{className:"oui-text-base-contrast-54",children:["(",e,")"]}),jsx(Nt,{})]})]})};var oo=t=>t.sharePnLConfig?jsx("button",{type:"button",onClick:e=>{e.stopPropagation(),t.showModal();},children:jsx(ShareIcon,{color:"white",opacity:.54,size:t.iconSize??16})}):null;var di=t=>{let{position:e,sharePnLConfig:o,iconSize:i}=t,{getFirstRefCode:r}=useReferralInfo(),n=useSymbolsInfo(),{data:a}=useAccountInfo(),s=useMemo(()=>r()?.code,[r]),l=useLeverageBySymbol(e.symbol),m=()=>{let c=e.netPnL||0,d=Math.abs(e.avg_open_price),y=Math.abs(e.closed_position_qty),g,x=n[e.symbol],h=x("base_imr"),I=x("imr_factor");if(c!==0&&y!==0&&d!==0&&a?.max_leverage&&h&&I){let _=positions.notional(y,d),f=e.leverage?account.maxLeverage({symbolLeverage:e.leverage,accountLeverage:a.max_leverage}):a.max_leverage,N=account.IMR({maxLeverage:f,baseIMR:h,IMR_Factor:I,positionNotional:_,ordersNotional:0,IMR_factor_power:4/5}),k=positions.unrealizedPnLROI({positionQty:y,openPrice:d,IMR:N,unrealizedPnL:c});g=new Decimal(k*100).toFixed(2,Decimal.ROUND_DOWN);}return {side:e.side,pnl:c,roi:g,openPrice:d,closePrice:Math.abs(e.avg_close_price),openTime:e.open_timestamp,closeTime:e.close_timestamp,quantity:e.closed_position_qty}};return {iconSize:i,sharePnLConfig:o,showModal:()=>{let c=t.isPositionHistory?m():{side:e.position_qty>0?"LONG":"SHORT",pnl:e.unrealized_pnl,roi:new Decimal(e.unrealized_pnl_ROI*100).toFixed(2,Decimal.ROUND_DOWN),openPrice:Math.abs(e.average_open_price),markPrice:e.mark_price,openTime:e.timestamp,quantity:e.position_qty};modal.show(t.modalId,{pnl:{entity:{symbol:e.symbol,leverage:e.leverage||l,...c},refCode:s,...o}});}}};var ft=t=>{let e=di(t);return jsx(oo,{...e})};var xi=t=>{let{stopLossPrice:e,takeProfitPrice:o}=t,{tpslOrder:i,position:r}=Z();return jsx(qs,{stopLossPrice:e,takeProfitPrice:o,direction:"column",order:i,position:r,tooltip:true})},gi=t=>{let{qty:e,price:o,entryPrice:i,orderSide:r,orderType:n,symbolInfo:a}=t,s=utils.priceToPnl({qty:e,price:o,entryPrice:i,orderSide:r,orderType:n},{symbol:a}),l=n===AlgoOrderType.TAKE_PROFIT?"TP":"SL";return jsxs(Flex,{children:[jsx(Text,{intensity:54,className:"oui-mr-1",children:`${l} PnL:`}),jsx(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:jsx(Text,{children:s===0?"":s>0?"+":"-"}),suffix:jsx(Text,{intensity:36,className:"oui-ml-1",children:"USDC"}),children:`${Math.abs(s)}`})]})},qs=t=>{let{direction:e="row",order:o,position:i}=t,r=useSymbolsInfo(),{t:n}=useTranslation(),a=useMemo(()=>{let u=[];if(!t.tooltip||!o||!i)return;let c=o.quantity;return c===0&&o.child_orders[0].type==="CLOSE_POSITION"&&(c=i.position_qty),t.takeProfitPrice&&u.push(jsx(gi,{qty:c,price:t.takeProfitPrice,entryPrice:i.average_open_price,orderSide:o.side,orderType:AlgoOrderType.TAKE_PROFIT,symbolInfo:r[o.symbol]()},"tp")),t.stopLossPrice&&u.push(jsx(gi,{qty:c,price:t.stopLossPrice,entryPrice:i.average_open_price,orderSide:o.side,orderType:AlgoOrderType.STOP_LOSS,symbolInfo:r[o.symbol]()},"sl")),jsx("div",{children:u})},[t.takeProfitPrice,t.stopLossPrice,i?.average_open_price,o?.side,o?.quantity,o?.algo_type]),s=useMemo(()=>{let u=[];if(!o?.symbol)return jsx(dt,{positionType:PositionType.FULL});return t.takeProfitPrice&&u.push(jsx(Text.formatted,{className:cn("oui-text-trade-profit oui-gap-0 oui-decoration-white/20"),rule:"price",dp:r[o.symbol]("quote_dp",2),children:t.takeProfitPrice,prefix:!t.stopLossPrice||e==="column"?jsx(Text,{intensity:54,children:`${n("tpsl.tp")} - `}):""},"tp")),t.stopLossPrice&&u.push(jsx(Text.formatted,{className:cn("oui-text-trade-loss oui-gap-0 oui-decoration-white/20 "),rule:"price",dp:r[o.symbol]("quote_dp",2),children:t.stopLossPrice,prefix:!t.takeProfitPrice||e==="column"?jsx(Text,{intensity:54,children:`${n("tpsl.sl")} - `}):""},"sl")),u.length===0?jsx(dt,{positionType:PositionType.FULL}):(u.length===2&&e==="row"&&u.splice(1,0,jsx(Text,{children:"/"},"split")),u)},[t.takeProfitPrice,t.stopLossPrice,o?.symbol,n]),l=jsx("div",{className:cn("oui-inline-flex oui-text-base-contrast-36",t.direction==="column"?"oui-flex-col":"oui-flex-row oui-gap-1",t.className),children:s}),m=Array.isArray(s)?!!s.length:!s;return t.tooltip?jsxs(Flex,{gapX:2,children:[jsx(Tooltip,{content:a,children:l}),m&&jsx(Nt,{})]}):l};var _i=t=>{let[e,o]=useLocalStorage("unPnlPriceBasis","markPrice"),{t:i}=useTranslation();return jsxs(Flex,{direction:"column",gap:3,className:"oui-text-base-contrast-54 oui-items-start",children:[jsx(Text,{children:i("positions.column.unrealPnl.tooltip")}),jsx(Divider,{className:"oui-w-full"}),jsx("div",{className:"oui-mb-0",children:i("positions.column.unrealPnl.priceBasis")}),jsx(Os,{value:e,onValueChange:o})]})},Os=t=>{let{value:e,onValueChange:o}=t,{t:i}=useTranslation();return jsxs(Flex,{gap:2,children:[jsx(Pi,{sel:e==="markPrice",label:i("common.markPrice"),value:"markPrice",onCheckChange:o}),jsx(Pi,{sel:e==="lastPrice",label:i("common.lastPrice"),value:"lastPrice",onCheckChange:o})]})},Pi=t=>{let{sel:e,label:o,value:i,onCheckChange:r}=t;return jsxs(Flex,{onClick:n=>{r(i),n.stopPropagation();},gap:1,className:"oui-cursor-pointer",children:[e?jsx(As,{}):jsx(ks,{}),jsx(Text,{size:"xs",intensity:e?98:54,children:o})]})},As=()=>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:[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"}),jsx("circle",{cx:"8",cy:"8",r:"3.333"})]}),ks=()=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",children: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 so=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:i}=t,{t:r}=useTranslation(),n=useRef(Date.now().toString());return useMemo(()=>[{title:r("common.symbol"),dataIndex:"symbol",fixed:"left",width:140,onSort:(s,l)=>s.symbol.localeCompare(l.symbol),render:(s,l)=>jsxs(Flex,{gap:2,children:[jsx(Box,{width:4,height:20,className:cn("oui-h-[38px] oui-rounded-[1px]",l.position_qty>0?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxs(Flex,{direction:"column",itemAlign:"start",children:[jsx(Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:m=>{i?.({symbol:s}),m.stopPropagation(),m.preventDefault();},children:`${s.split("_")[1]}-PERP`}),jsx(Pe,{symbol:s,leverage:l.leverage,modalId:SymbolLeverageDialogId})]})]})},{title:r("common.quantity"),dataIndex:"position_qty",onSort:(s,l)=>s.position_qty-l.position_qty,width:120,className:"oui-pl-6",render:si},{title:r("common.avgOpen"),className:"oui-h-[48px]",width:120,onSort:true,dataIndex:"average_open_price",render:s=>jsx(Ce,{rm:Decimal.ROUND_DOWN,children:s})},{title:r("common.markPrice"),dataIndex:"mark_price",width:120,onSort:true,className:"oui-h-[48px]",render:s=>jsx(Ce,{rm:Decimal.ROUND_DOWN,children:s})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast-54",content:r("positions.column.liqPrice.tooltip"),children:jsx(Text,{children:r("positions.column.liqPrice")})}),width:100,onSort:true,dataIndex:"est_liq_price",render:s=>Number(s)===0?"--":jsx(Ce,{rm:Decimal.ROUND_DOWN,className:Number(s)>0?"oui-text-warning-light":"",children:s??"--"})},{title:jsx(HoverCard,{content:jsx(_i,{}),side:"top",align:"center",className:"oui-max-w-[280px] oui-text-2xs",children:jsx(Text,{children:r("common.unrealizedPnl")})}),dataIndex:"unrealized_pnl",width:180,onSort:true,rule:"price",numeralProps:{coloring:true},render:(s,l)=>jsxs(Flex,{gap:2,children:[jsxs(Flex,{children:[jsx(Text.numeral,{dp:e,rm:Decimal.ROUND_DOWN,coloring:true,className:"oui-font-semibold",children:s}),jsx(Text.numeral,{rule:"percentages",dp:e,rm:Decimal.ROUND_DOWN,coloring:true,className:"oui-font-semibold",prefix:"(",suffix:")",children:l.unrealized_pnl_ROI})]}),jsx(ft,{position:l,sharePnLConfig:o,modalId:SharePnLDialogId})]})},{title:r("common.fullTPSL"),dataIndex:"full_tpsl",width:150,render:(s,l)=>jsx(xi,{stopLossPrice:l.full_tp_sl?.sl_trigger_price,takeProfitPrice:l.full_tp_sl?.tp_trigger_price})},{title:r("common.partialTPSL"),dataIndex:"partial_tpsl",width:150,render:(s,l)=>jsx(li,{orderNum:l.partial_tp_sl?.order_num,tpTriggerPrice:l.partial_tp_sl?.tp_trigger_price,slTriggerPrice:l.partial_tp_sl?.sl_trigger_price})},{title:r("common.notional"),dataIndex:"notional",className:"oui-h-[48px]",width:100,onSort:true,render:s=>jsx(Text.numeral,{dp:e,children:s})},{title:jsx(Tooltip,{className:"oui-max-w-[280px] oui-bg-base-8 oui-p-3 oui-text-2xs oui-text-base-contrast-54",content:jsxs(Flex,{direction:"column",gap:3,className:"oui-rounded-sm oui-bg-base-8 oui-text-base-contrast-54",children:[jsx("span",{children:r("positions.column.margin.tooltip")}),jsx(Divider,{className:"oui-w-full"}),jsx("span",{children:r("positions.column.margin.formula")})]}),children:jsx(Text,{children:r("positions.column.margin")})}),dataIndex:"mm",onSort:true,width:100,rule:"price",render:s=>jsx(Text.numeral,{children:s})},{title:r("funding.fundingFee"),dataIndex:"fundingFee",width:100,render:(s,l)=>jsx(mt,{fee:s,symbol:l.symbol,start_t:l.timestamp.toString(),end_t:n.current})},{title:null,dataIndex:"close_position",align:"right",width:70,fixed:"right",render(){return jsx(Flex,{gapX:2,justify:"end",children:jsx(kt,{})})}}],[e,o,r])};var wi=t=>{let{item:e}=t,o=e.position_qty>0,{t:i}=useTranslation();return jsx(Text.formatted,{rule:"symbol",formatString:"base-type",size:"2xs",suffix:jsxs("div",{className:"oui-flex oui-items-center oui-gap-1",children:[jsx(Badge,{color:o?"success":"danger",size:"xs",children:i(o?"common.long":"common.short")}),jsx(Pe,{symbol:e.symbol,leverage:e.leverage,modalId:SymbolLeverageSheetId})]}),showIcon:true,onClick:()=>{t.onSymbolChange?.({symbol:e.symbol});},children:e.symbol})},Fi=t=>{let{item:e}=t,{t:o}=useTranslation();return jsxs(Flex,{gap:3,children:[jsxs(Flex,{direction:"column",className:"oui-text-2xs",itemAlign:"end",children:[jsxs("div",{children:[jsx(Text,{intensity:36,children:o("common.unrealizedPnl")}),jsx(Text,{intensity:20,children:"(USDC)"})]}),jsx(Text.numeral,{size:"xs",dp:t.pnlNotionalDecimalPrecision,rm:Decimal.ROUND_DOWN,coloring:true,className:"orderly-font-semibold",suffix:jsx(Text.numeral,{rule:"percentages",dp:t.pnlNotionalDecimalPrecision,rm:Decimal.ROUND_DOWN,prefix:"(",suffix:")",className: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})]}),jsx(ft,{position:e,sharePnLConfig:t.sharePnLConfig,modalId:SharePnLBottomSheetId,iconSize:12})]})},Ni=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:o("common.qty"),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.base_dp,padding:false,coloring:true,children:e.position_qty})})},Li=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:jsxs("span",{children:[o("positions.column.margin"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,intensity:80,children:e.mm})})},Ii=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{align:"end",label:jsxs("span",{children:[o("common.notional"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,intensity:80,children:e.notional})})},Di=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:o("common.avgOpen"),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,rm:Decimal.ROUND_DOWN,intensity:80,children:e.average_open_price})})},qi=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:o("common.markPrice"),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,rm:Decimal.ROUND_DOWN,intensity:80,children:e.mark_price})})},Ri=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.est_liq_price&&e.est_liq_price>0?e.est_liq_price:"-";return jsx(Statistic,{label:o("positions.column.liqPrice"),align:"end",classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,rm:Decimal.ROUND_DOWN,color:"warning",children:i})})},Mi=t=>{let{item:e}=t,{t:o}=useTranslation(),i=useMemo(()=>e.full_tp_sl?.tp_trigger_price==null&&e.full_tp_sl?.sl_trigger_price==null?jsx(dt,{positionType:PositionType.FULL}):jsxs(Flex,{className:"oui-gap-[2px]",children:[e.full_tp_sl?.tp_trigger_price&&jsx(Text.numeral,{color:"buy",children:e.full_tp_sl.tp_trigger_price}),e.full_tp_sl?.sl_trigger_price&&"/",e.full_tp_sl?.sl_trigger_price&&jsx(Text.numeral,{color:"sell",children:e.full_tp_sl.sl_trigger_price}),jsx(Nt,{})]}),[e.full_tp_sl]),r=useMemo(()=>e.partial_tp_sl?.tp_trigger_price==null&&e.partial_tp_sl?.sl_trigger_price==null?jsx(dt,{positionType:PositionType.PARTIAL}):jsxs(Flex,{className:"oui-gap-[2px]",itemAlign:"center",children:[e.partial_tp_sl?.tp_trigger_price&&jsx(Text.numeral,{color:"buy",children:e.partial_tp_sl.tp_trigger_price}),e.partial_tp_sl?.sl_trigger_price&&"/",e.partial_tp_sl?.sl_trigger_price&&jsx(Text.numeral,{color:"sell",children:e.partial_tp_sl.sl_trigger_price}),jsx(Text,{children:`(${e.partial_tp_sl?.order_num})`}),jsx(Nt,{})]}),[e.partial_tp_sl]);return jsxs(Grid,{cols:2,rows:1,gap:2,width:"100%",children:[jsxs(Flex,{className:"oui-text-2xs oui-text-base-contrast-36",direction:"column",itemAlign:"start",children:[jsxs(Text,{children:[o("common.fullTPSL"),": "]}),i]}),jsxs(Flex,{className:"oui-text-2xs oui-text-base-contrast-36 oui-grid-cols-end",direction:"column",itemAlign:"end",children:[jsxs(Text,{children:[o("common.partialTPSL"),": "]}),r]})]})},Oi=t=>{let{t:e}=useTranslation(),o=useRef(Date.now().toString());return jsxs(Flex,{justify:"end",className:"oui-w-full oui-text-2xs",children:[jsxs(Text,{intensity:36,children:[e("funding.fundingFee"),": "]}),jsx(mt,{fee:t.item.fundingFee,symbol:t.item.symbol,start_t:t.item.timestamp.toString(),end_t:o.current})]})};var ao=t=>{let{className:e,...o}=t,i=jsxs(Flex,{justify:"between",width:"100%",children:[jsx(wi,{...t}),jsx(Fi,{...t})]}),r=jsxs(Grid,{cols:3,rows:2,gap:2,width:"100%",children:[jsx(Ni,{...t}),jsx(Li,{...t}),jsx(Ii,{...t}),jsx(Di,{...t}),jsx(qi,{...t}),jsx(Ri,{...t})]}),n=jsxs(Grid,{width:"100%",gap:2,cols:2,rows:1,children:[jsx(kt,{type:OrderType.LIMIT}),jsx(kt,{type:OrderType.MARKET})]});return jsxs(Flex,{direction:"column",width:"100%",gap:2,p:2,r:"xl",itemAlign:"start",className:cn(e,"oui-bg-base-9"),children:[i,jsx(Divider,{intensity:6,className:"oui-w-full"}),r,jsx(Mi,{...o}),jsx(Oi,{...o}),n]})};var lo=t=>{let e=$();return {...t,...e}};var uo=t=>{let e=lo(t);return jsx(ao,{...e,className:t.className})};var ve=t=>{let{position:e,children:o,mutatePositions:i}=t,{t:r}=useTranslation(),[n,a]=useState(Math.abs(e.position_qty).toString()),[s,l]=useState(""),[m,u]=useState(OrderType.MARKET);useEffect(()=>{a(Math.abs(e.position_qty).toString());},[e.position_qty]);let c=e.symbol,d=useSymbolsInfo(),y=d?.[c],g=y("quote_dp"),x=y("base_dp"),h=y("base_tick"),{side:I,closeOrderData:_,submit:f,isMutating:N,errors:k,calculate:W}=usePositionClose({position:e,order:{type:m,quantity:n,price:s}}),it=useCallback(S=>{let Q=W({},"order_quantity",S,e.mark_price,y());a(Q.order_quantity);},[W,d,e.mark_price]),M=useCallback(S=>{let Q=W({},"order_price",S,e.mark_price,y());l(Q.order_price);},[W,d,e.mark_price]),b=useCallback(S=>{u(S),l(S===OrderType.LIMIT?e.mark_price?.toString():"");},[e.mark_price]),nt=useCallback(async()=>{if(Number(n)>y("base_max")){toast.error(jsxs("div",{children:[r("positions.limitClose.errors.exceed.title"),jsx("br",{}),jsx("div",{className:"oui-break-normal",children:r("positions.limitClose.errors.exceed.description",{quantity:n,symbol:aa(c,"base"),maxQuantity:y("base_max")})})]}));return}return f().then(S=>{if(S.success)return i?.(),S;throw S.message&&toast.error(S.message),true}).catch(S=>(S.message&&toast.error(S.message),false))},[f]),rt=useMemo(()=>({quantity:n,price:s,type:m,side:I,position:e,updatePriceChange:M,updateQuantity:it,updateOrderType:b,tpslOrder:e.full_tp_sl?.algo_order,partialTPSLOrder:e.partial_tp_sl?.algo_order,onSubmit:nt,submitting:N,closeOrderData:_,quoteDp:g,baseDp:x,baseTick:h,errors:k}),[n,s,m,I,e,M,it,b,nt,N,_,g,x,h,k]);return jsx(Ee.Provider,{value:rt,children:o})};function aa(t,e="base"){let o=t.split("_"),i=o[0],r=o[1],n=o[2];return (e??"base-quote").replace("type",i).replace("base",r).replace("quote",n)}var Bi=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,pagination:i,isLoading:r,dataSource:n,onSymbolChange:a}=t,s=so({pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:a});return jsx(AuthGuardDataTable,{loading:r,id:"oui-desktop-positions-content",columns:s,bordered:true,dataSource:n,generatedRowKey:l=>l.symbol,renderRowContainer:(l,m,u)=>jsx(wt,{symbol:l.symbol,children:jsx(ve,{position:l,children:u})}),manualPagination:false,pagination:i,testIds:{body:"oui-testid-dataList-position-tab-body"}})},Wi=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,dataSource:i,onSymbolChange:r}=t;return jsx(ListView,{className:"oui-hide-scrollbar oui-w-full oui-space-y-0 oui-overflow-y-hidden",contentClassName:"!oui-space-y-1",dataSource:i,renderItem:(n,a)=>jsx(wt,{symbol:n.symbol,children:jsx(ve,{position:n,children:jsx(uo,{item:n,index:a,pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:r})})})})},Qi=t=>{let{pnlNotionalDecimalPrecision:e,sharePnLConfig:o,pagination:i,isLoading:r,tableData:n,onSymbolChange:a,mutatePositions:s}=t,l=so({pnlNotionalDecimalPrecision:e,sharePnLConfig:o,onSymbolChange:a}),{dataSource:m=[]}=n;return jsx(AuthGuardDataTable,{bordered:true,loading:r,id:"oui-desktop-positions-content",columns:l,dataSource:m,expanded:true,getSubRows:u=>u.children,generatedRowKey:u=>u.id,onCell:(u,c)=>{if((c.children??[]).length>0)return {children:u.id==="symbol"?jsx(Badge,{color:"neutral",size:"xs",children:c?.description||formatAddress(c?.id)}):null}},renderRowContainer:(u,c,d)=>u.symbol?jsx(wt,{symbol:u.symbol,children:jsx(ve,{position:u,mutatePositions:s,children:d})}):d,manualPagination:false,pagination:i,testIds:{body:"oui-testid-dataList-position-tab-body"}})};var da=t=>{let e=$e(t);return jsx(Bi,{...e})},pa=t=>{let e=$e(t);return jsx(Wi,{...e})},fa=t=>{let e=$o(t);return jsx(Qi,{...e})};var Vi=t=>{let{onSymbolChange:e,pnlNotionalDecimalPrecision:o}=t,{t:i}=useTranslation();return useMemo(()=>[{title:i("common.symbol"),dataIndex:"symbol",fixed:"left",width:200,onSort:(n,a)=>n.symbol.localeCompare(a.symbol),render:(n,a)=>jsx(Ca,{record:a,onSymbolChange:e})},{title:i("positions.history.column.closed&maxClosed"),dataIndex:"close_maxClose",width:200,render:(n,a)=>jsx(ha,{record:a})},{title:i("positions.history.column.netPnl"),dataIndex:"netPnL",width:140,onSort:(n,a)=>n.netPnL==null||a.netPnL==null?-1:(n.netPnL??0)-(a.netPnL??0),render:(n,a)=>jsxs(Flex,{gapX:1,children:[jsx(_a,{record:a,pnlNotionalDecimalPrecision:o}),jsx(ft,{position:a,sharePnLConfig:t.sharePnLConfig,modalId:SharePnLDialogId,isPositionHistory:true})]})},{title:i("common.avgPrice"),dataIndex:"avg_open",width:140,render:(n,a)=>{let s=a.avg_open_price!=null?Math.abs(a.avg_open_price):"--",{quote_dp:l}=$();return jsx(Text.numeral,{dp:l,padding:false,children:s})}},{title:i("common.avgClose"),dataIndex:"avg_close",width:175,render:(n,a)=>{let s=a.avg_close_price!=null?Math.abs(a.avg_close_price):"--",{quote_dp:l}=$();return jsx(Text.numeral,{dp:l,padding:false,children:s})}},{title:i("funding.fundingFee"),dataIndex:"accumulated_funding_fee",render:(n,a)=>jsx(mt,{fee:-n,symbol:a.symbol,start_t:a.open_timestamp.toString(),end_t:a.close_timestamp?.toString()})},{title:i("positions.history.column.timeOpened"),dataIndex:"open_timestamp",width:175,onSort:true,render:(n,a)=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:a.open_timestamp})},{title:i("positions.history.column.timeClosed"),dataIndex:"close_timestamp",width:175,onSort:true,render:(n,a)=>a.position_status=="closed"&&a.close_timestamp?jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:a.close_timestamp??"--"}):"--"},{title:i("positions.history.column.updatedTime"),dataIndex:"last_update_time",width:175,onSort:true,render:(n,a)=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:a.last_update_time})}],[o,i])},Ca=t=>{let{record:e,onSymbolChange:o}=t,{t:i}=useTranslation(),r=useMemo(()=>{let n=[],a=e.position_status,s=()=>a==="closed"?i("positions.history.status.closed"):a==="partial_closed"?i("positions.history.status.partialClosed"):capitalizeFirstLetter(a.replace("_"," "));return n.push(jsx(Badge,{color:a!=="closed"?"primaryLight":"neutral",size:"xs",className:"oui-break-normal oui-whitespace-nowrap",children:s()})),e.type==="adl"?n.push(jsx(Badge,{color:"danger",size:"xs",children:i("positions.history.type.adl")})):e.type==="liquidated"&&n.push(jsx(Tooltip,{className:"oui-min-w-[204px] oui-bg-base-5",arrow:{className:"oui-fill-base-5"},content:jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[e.liquidation_id!=null&&jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.liquidated.liquidationId")}),jsx(Text,{intensity:98,children:e.liquidation_id})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.liquidated.liquidatorFee")}),jsxs(Text,{color:"lose",children:[e.liquidator_fee>0&&"-",commifyOptional(e.liquidator_fee)]})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.liquidated.insFundFee")}),jsxs(Text,{color:"lose",children:[e.insurance_fund_fee>0&&"-",commifyOptional(e.insurance_fund_fee)]})]})]}),children:jsx("div",{children:jsx(Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",children:jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-[1px]",children:i("positions.history.type.liquidated")})})})})),n.push(jsx(Sa,{symbol:e.symbol,leverage:e.leverage})),n},[e,i]);return jsxs(Flex,{gap:2,height:48,children:[jsx(Box,{width:4,height:38,className:cn("oui-rounded-[1px] oui-shrink-0",e.side==="LONG"?"oui-bg-trade-profit":"oui-bg-trade-loss")}),jsxs(Flex,{direction:"column",itemAlign:"start",children:[jsx(Text.formatted,{formatString:"base-type",className:"oui-cursor-pointer",onClick:n=>{o?.({symbol:e.symbol}),n.stopPropagation(),n.preventDefault();},children:`${e.symbol.split("_")[1]}-PERP`}),jsx(Flex,{gap:1,children:r})]})]})},ha=t=>{let{record:e}=t,{base_dp:o}=$();return jsxs(Flex,{gap:1,direction:"column",itemAlign:"start",className:"oui-overflow-hidden oui-whitespace-nowrap oui-text-ellipsis",children:[jsx(Text.numeral,{dp:o,padding:false,children:Math.abs(e.closed_position_qty)}),jsx(Text.numeral,{dp:o,padding:false,className:"oui-truncate",children:Math.abs(e.max_position_qty)})]})},_a=t=>{let{record:e,pnlNotionalDecimalPrecision:o}=t,{t:i}=useTranslation(),r=e.netPnL!=null?e.netPnL:void 0,n=()=>jsx(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?n():jsx(Tooltip,{delayDuration:200,content:jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-text-2xs",children:[jsx(Text,{intensity:80,children:i("positions.history.column.netPnl")}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("common.realizedPnl")}),jsx(Text,{color:e.realized_pnl>=0?"profit":"lose",className:"oui-cursor-pointer",children:commifyOptional(e.realized_pnl)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("funding.fundingFee")}),jsx(Text,{color:e.accumulated_funding_fee>0?"lose":"profit",className:"oui-cursor-pointer",children:commifyOptional(-e.accumulated_funding_fee)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:i("positions.history.netPnl.tradingFee")}),jsx(Text,{color:e.trading_fee>0?"lose":"profit",className:"oui-cursor-pointer",children:commifyOptional(-e.trading_fee)})]})]}),className:"oui-min-w-[204px] oui-bg-base-5",arrow:{className:"oui-fill-base-5"},children:jsx("div",{children:n()})})},Sa=t=>{let{symbol:e,leverage:o}=t;return jsx(Badge,{color:"neutral",size:"xs",children:o?jsx(Text.numeral,{dp:0,size:"2xs",unit:"X",children:o}):jsx(Ta,{symbol:e})})},Ta=({symbol:t})=>{let e=useMaxLeverage(t);return jsx(Text.numeral,{dp:0,size:"2xs",unit:"X",children:e})};function z(t){if(t==null)return t;let e=new Date(t);return e.setHours(0,0,0,0),e}function B(t){if(t==null)return t;let e=new Date(t);return e.setHours(23,59,59,999),e}var Bt=t=>({from:z(t.from),to:B(t.to??t.from)}),Wt=(t,e)=>t.getTime()===e.getTime();var Ne=t=>{let{onSymbolChange:e,symbol:o,pnlNotionalDecimalPrecision:i}=t,{state:r}=useAccount(),{data:n,isLoading:a}=usePrivateQuery(o?`/v1/position_history?symbol=${o}&limit=1000`:"/v1/position_history?limit=1000",{formatter(_){return (_.rows??null)?.map(f=>{if(f.realized_pnl!=null&&f.accumulated_funding_fee!=null&&f.trading_fee!=null){let N=f.realized_pnl-f.accumulated_funding_fee-f.trading_fee;return {...f,netPnL:N}}return f})},revalidateOnFocus:true}),{pagination:s,setPage:l}=usePagination({pageSize:10}),{status:m,side:u,dateRange:c,filterDays:d,updateFilterDays:y,filterItems:g,onFilter:x}=Ra();useEffect(()=>{l(1);},[m,u,c,d,o]);let h=useMemo(()=>n==null?n:n.filter(_=>{let f=u==="all"?true:_.side.toLowerCase()===u.toLowerCase(),N=m==="all"?true:_.position_status.toLowerCase()===m.toLowerCase(),k=_?.last_update_time??_.open_timestamp,W=c.from&&c.to?k>=c.from.getTime()&&k<=c.to.getTime():true,it=o?_.symbol==o:true;return f&&N&&W&&it}),[m,u,c,n,o]);return {dataSource:useDataTap(h,{accountStatus:r.status===AccountStatusEnum.EnableTradingWithoutConnected?AccountStatusEnum.EnableTradingWithoutConnected:AccountStatusEnum.EnableTrading,fallbackData:[]}),isLoading:a,onSymbolChange:e,pagination:s,filterItems:g,onFilter:x,symbol:o,filterDays:d,updateFilterDays:y,pnlNotionalDecimalPrecision:i}},Ra=()=>{let{t}=useTranslation(),[e,o]=useState("all"),[i,r]=useState("all"),n=Bt({to:B(new Date),from:z(subDays(new Date,89))}),[a,s]=useState(90),[l,m]=useState(n),u=g=>{s(g),m({from:z(subDays(new Date,g-1)),to:B(new Date)});},c=g=>{if(g.name==="side"&&r(g.value),g.name==="status"&&o(g.value),g.name==="dateRange"){let x=Bt(g.value);if(m(x),x.from&&x.to){let h=Math.abs(differenceInDays(x.from,x.to))+1,_={1:{from:z(new Date),to:B(new Date)},7:{from:z(subDays(new Date,6)),to:B(new Date)},30:{from:z(subDays(new Date,29)),to:B(new Date)},90:{from:z(subDays(new Date,89)),to:B(new Date)}}[h];_&&Wt(_.from,x.from)&&Wt(_.to,x.to)?s(h):s(null);}}},{isMobile:d}=useScreen();return {filterItems:useMemo(()=>{let g={type:"select",name:"side",options:[{label:t("common.side.all"),value:"all"},{label:t("common.buy"),value:"LONG"},{label:t("common.sell"),value:"SHORT"}],value:i},x={type:"range",name:"dateRange",value:l,fromDate:z(subDays(new Date,89)),toDate:B(new Date)},h={type:"select",name:"status",options:[{label:t("common.status.all"),value:"all"},{label:t("positions.history.status.closed"),value:"closed"},{label:t("positions.history.status.partialClosed"),value:"partial_closed"}],value:e};return d?[g,h]:[g,h,x]},[i,e,l]),onFilter:c,side:i,dateRange:l,status:e,filterDays:a,updateFilterDays:u}};var Xi=t=>{let{side:e,symbol:o}=t.item,{t:i}=useTranslation(),r=e==="LONG";return jsx(Text.formatted,{intensity:80,rule:"symbol",formatString:"base-type",size:"sm",prefix:jsx(Badge,{color:r?"success":"danger",size:"xs",children:i(r?"common.buy":"common.sell")}),onClick:()=>{t.onSymbolChange?.({symbol:o});},children:o})};var Yi=t=>{let{item:e}=t,{t:o}=useTranslation(),i=()=>{modal.alert({title:o("positions.liquidation"),message:jsxs(Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[e.liquidation_id!=null&&jsxs(Flex,{justify:"between",width:"100%",children:[jsx(Text,{children:o("positions.history.liquidated.liquidationId")}),jsx(Text,{intensity:98,children:e.liquidation_id})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsx(Text,{children:o("positions.history.liquidated.liquidatorFee")}),jsxs(Text,{color:"lose",children:[e.liquidator_fee>0&&"-",commifyOptional(e.liquidator_fee)]})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsx(Text,{children:o("positions.history.liquidated.insFundFee")}),jsxs(Text,{color:"lose",children:[e.insurance_fund_fee>0&&"-",commifyOptional(e.insurance_fund_fee)]})]})]})});},r=useMemo(()=>{let n=[],a=e.position_status,s=()=>a==="closed"?o("positions.history.status.closed"):a==="partial_closed"?o("positions.history.status.partialClosed"):capitalizeFirstLetter(a.replace("_"," "));return n.push(jsx(Badge,{color:a!=="closed"?"primaryLight":"neutral",size:"xs",children:s()},1)),e.type==="adl"?n.push(jsx(Badge,{color:"danger",size:"xs",children:o("positions.history.type.adl")},2)):e.type==="liquidated"&&n.push(jsx(Badge,{size:"xs",color:"danger",className:"oui-cursor-pointer",onClick:i,children:jsx("span",{className:"oui-underline oui-decoration-dashed oui-decoration-1",children:o("positions.history.type.liquidated")})},3)),n},[e]);return jsx(Flex,{gap:1,children:r})},Ji=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.closed_position_qty!=null?Math.abs(e.closed_position_qty):"--";return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.closed")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.base_dp,padding:false,coloring:true,intensity:80,children:i})})},Zi=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.max_position_qty!=null?Math.abs(e.max_position_qty):"--";return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.maxClosed")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.base_dp,padding:false,coloring:true,intensity:80,children:i})})},ji=t=>{let{item:e}=t,o=e.avg_open_price!=null?Math.abs(e.avg_open_price):"--",{t:i}=useTranslation();return jsx(Statistic,{label:jsxs(Flex,{gap:1,children:[i("common.avgOpen"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,padding:false,coloring:true,intensity:80,children:o})})},tn=t=>{let{item:e}=t,o=e.avg_close_price!=null?Math.abs(e.avg_close_price):"--",{t:i}=useTranslation();return jsx(Statistic,{label:jsxs(Flex,{gap:1,children:[i("common.avgClose"),jsx(Text,{intensity:20,children:"(USDC)"})]}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},children:jsx(Text.numeral,{dp:t.quote_dp,padding:false,coloring:true,intensity:80,children:o})})},en=t=>{let{item:e}=t,{t:o}=useTranslation();return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.timeOpened")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:jsx(Text.formatted,{intensity:80,formatString:"yyyy-MM-dd HH:mm:ss",rule:"date",children:e.open_timestamp})})},on=t=>{let{item:e}=t,{t:o}=useTranslation(),i=e.position_status=="closed"&&e.close_timestamp?jsx(Text.formatted,{intensity:80,formatString:"yyyy-MM-dd HH:mm:ss",rule:"date",children:e.close_timestamp}):"--";return jsx(Statistic,{label:jsx(Text,{children:o("positions.history.column.timeClosed")}),classNames:{root:"oui-text-xs",label:"oui-text-2xs"},align:"end",children:i})},nn=t=>{let{t:e}=useTranslation();return jsxs(Flex,{justify:"end",className:"oui-text-2xs oui-w-full oui-py-2 oui-gap-1 oui-gap-1",children:[jsxs(Text,{intensity:36,children:[e("funding.fundingFee"),": "]}),jsx(mt,{fee:-t.item.accumulated_funding_fee,symbol:t.item.symbol,start_t:t.item.open_timestamp.toString(),end_t:t.item.close_timestamp?.toString()})]})};var bo=t=>jsxs(Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:t.classNames?.root,children:[jsx(Wa,{...t}),jsx(Divider,{intensity:6,className:"oui-w-full"}),jsx(Qa,{...t})]}),Wa=t=>{let{t:e}=useTranslation(),o=()=>{let{item:i}=t;modal.alert({title:e("positions.history.column.netPnl"),message:jsxs(Flex,{direction:"column",width:"100%",gap:2,className:"oui-text-2xs oui-text-base-contrast-54",children:[jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:e("common.realizedPnl")}),jsx(Text,{color:i.realized_pnl>=0?"profit":"lose",children:commifyOptional(i.realized_pnl)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:e("funding.fundingFee")}),jsx(Text,{color:i.accumulated_funding_fee>0?"lose":"profit",children:commifyOptional(-i.accumulated_funding_fee)})]}),jsxs(Flex,{justify:"between",width:"100%",gap:2,children:[jsx(Text,{intensity:54,children:e("positions.history.netPnl.tradingFee")}),jsx(Text,{color:i.trading_fee>0?"lose":"profit",children:commifyOptional(-i.trading_fee)})]})]})});};return jsxs(Flex,{gap:1,width:"100%",children:[jsxs(Flex,{direction:"column",itemAlign:"start",className:"oui-flex-1",gap:1,children:[jsx(Xi,{...t}),jsx(Yi,{...t})]}),jsxs(Flex,{direction:"column",itemAlign:"end",className:"oui-flex-1",children:[jsx(Text,{size:"2xs",intensity:36,children:e("positions.history.column.netPnl")}),jsxs(Flex,{gapX:1,children:[jsx("button",{onClick:o,children:jsx(Text.numeral,{size:"xs",coloring:true,children:t.item.netPnL??"--"})}),jsx(ft,{position:t.item,sharePnLConfig:t.sharePnLConfig,modalId:SharePnLBottomSheetId,iconSize:12,isPositionHistory:true})]})]})]})},Qa=t=>jsxs("div",{className:"oui-w-full",children:[jsxs(Grid,{cols:3,rows:2,width:"100%",gap:0,className:"oui-grid-cols-[1fr,1fr,135px]",children:[jsx(Ji,{...t}),jsx(Zi,{...t}),jsx(en,{...t}),jsx(ji,{...t}),jsx(tn,{...t}),jsx(on,{...t})]}),jsx(nn,{...t})]});var Po=t=>{let e=$();return {...t,...e}};var Co=t=>{let e=Po(t);return jsx(bo,{...e})};var So=t=>{let{onSymbolChange:e,pagination:o,pnlNotionalDecimalPrecision:i}=t,r=Vi({onSymbolChange:e,pnlNotionalDecimalPrecision:i,sharePnLConfig:t.sharePnLConfig}),{t:n}=useTranslation(),a=useMemo(()=>({1:n("common.select.1d"),7:n("common.select.7d"),30:n("common.select.30d"),90:n("common.select.90d")}),[n]);return jsxs(Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxs(Flex,{gap:3,children:[t.filterItems.length>0&&jsx(DataFilter,{items:t.filterItems,onFilter:s=>{t.onFilter(s);}}),[1,7,30,90].map(s=>jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsx("div",{className:"oui-z-10",children:jsx(Text.gradient,{color:t.filterDays===s?"brand":void 0,className:cn("oui-whitespace-nowrap oui-break-normal",t.filterDays!==s?"oui-text-base-contrast-54":""),children:a[s]||`${s}D`})}),jsx("div",{className:"oui-absolute oui-inset-0 oui-rounded oui-opacity-[.12] oui-gradient-primary",onClick:()=>{t.updateFilterDays(s);}})]},`item-${s}`))]}),jsx(AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-positions-content",columns:r,bordered:true,dataSource:t.dataSource,generatedRowKey:s=>`${s.symbol}_${s.position_id}`,renderRowContainer:(s,l,m)=>jsx(wt,{symbol:s.symbol,children:m}),manualPagination:false,pagination:o,testIds:{body:"oui-testid-dataList-positionHistory-tab-body"},classNames:{root:"!oui-h-[calc(100%_-_49px)]"}})]})},To=t=>jsxs(Grid,{cols:1,rows:2,className:"oui-w-full oui-grid-rows-[auto,1fr]",gap:1,children:[jsx(Flex,{gap:2,p:2,className:"oui-rounded-b-xl oui-bg-base-9",children:jsx(DataFilter,{className:"oui-border-none oui-py-0",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsx(ListView,{className:cn("oui-hide-scrollbar oui-w-full oui-space-y-0 oui-overflow-y-hidden",t.classNames?.root),contentClassName:cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,renderItem:(e,o)=>jsx(wt,{symbol:e.symbol,children:jsx(Co,{item:e,index:o,onSymbolChange:t.onSymbolChange,classNames:{root:t.classNames?.cell},sharePnLConfig:t.sharePnLConfig})})})]});var Ja=t=>{let e=Ne(t);return jsx(So,{...e,sharePnLConfig:t.sharePnLConfig})},Za=t=>{let{classNames:e,...o}=t,i=Ne(o);return jsx(To,{...i,classNames:e,sharePnLConfig:t.sharePnLConfig})};var an=t=>jsx(Tooltip,{className:"oui-w-[275px] oui-bg-base-6",content:t.tooltip,arrow:{className:"oui-fill-base-6"},children:jsx("button",{className:"oui-border-b oui-border-dashed oui-border-line-12",children:t.label})}),ln=t=>{let{t:e}=useTranslation();return useMemo(()=>[{title:e("common.time"),dataIndex:"timestamp",width:202,render:i=>jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:i})},{title:e("positions.Liquidation.column.liquidationId"),dataIndex:"liquidation_id",width:120,render:i=>jsx(Text,{children:i})},{title:e("common.symbol"),dataIndex:"Symbol",render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(Text.formatted,{rule:"symbol",formatString:"base-quote",children:n.symbol},n.symbol))})},{title:e("positions.Liquidation.column.markPrice"),dataIndex:"Price_(USDC)",render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(vo,{value:n.mark_price,type:"quote"},n.symbol))})},{title:e("common.quantity"),dataIndex:"Quantity",render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(vo,{value:n.position_qty,type:"base"},n.symbol))})},{title:jsx(an,{tooltip:e("positions.Liquidation.col.tooltip.feeRate"),label:e("positions.Liquidation.column.liquidationFeeRate")}),dataIndex:"liquidationFeeRate",render:i=>jsx(Text.numeral,{rule:"percentages",children:i})},{title:jsx(an,{tooltip:e("positions.Liquidation.col.tooltip.fee"),label:e("positions.Liquidation.column.liquidationFee")}),dataIndex:"abs_liquidation_fee",width:100,render:(i,r)=>jsx(Flex,{direction:"column",itemAlign:"start",children:r.positions_by_perp?.map(n=>jsx(vo,{value:n.abs_liquidation_fee,type:"quote"},n.symbol))})},{title:"",dataIndex:"actions",align:"right",width:40,render:(i,r,n,a)=>{let s=a.row.getIsExpanded();return jsx("button",{className:"oui-p-2",onClick:()=>{a.row.getToggleExpandedHandler()();},children:jsx(il,{className:s?"oui-rotate-180":""})})}}],[e])},vo=t=>jsx(Text,{children:commifyOptional(t.value)}),il=t=>jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:t.className,children:jsx("path",{d:"M3.884 6.02a.67.67 0 0 0-.436.27.68.68 0 0 0 .187.933L7.63 9.88a.68.68 0 0 0 .749 0l3.994-2.657a.68.68 0 0 0 .187-.934.68.68 0 0 0-.936-.186L8.003 8.51l-3.62-2.407a.65.65 0 0 0-.499-.084",fill:"#fff",fillOpacity:".54"})});var wo=t=>jsxs(Flex,{direction:"column",width:"100%",gap:2,itemAlign:"start",className:cn("oui-rounded-xl oui-bg-base-9 oui-p-2",t.classNames?.root),children:[jsx(al,{...t}),jsx(Divider,{}),jsx(ll,{...t})]},t.item.timestamp),al=t=>{let{t:e}=useTranslation();return jsxs(Flex,{width:"100%",justify:"between",itemAlign:"start",children:[jsx(Flex,{direction:"column",itemAlign:"start",gap:1,children:jsx(Flex,{gap:2,itemAlign:"center",children:jsx(Flex,{direction:"column",gap:1,itemAlign:"start",children:jsx(Text.formatted,{rule:"symbol",formatString:"base-quote",size:"xs",intensity:80,children:t.item.positions_by_perp?.[0]?.symbol||""})})})}),jsxs(Flex,{direction:"column",itemAlign:"end",children:[jsx(Text,{size:"2xs",intensity:36,children:jsx(Text.formatted,{rule:"date",formatString:"yyyy-MM-dd HH:mm:ss",children:t.item.timestamp})}),jsxs(Text,{size:"2xs",intensity:36,children:[`${e("positions.Liquidation.column.liquidationId")}: `,jsx(Text,{as:"span",intensity:80,children:t.item.liquidation_id})]})]})]})},ll=t=>{let e=t.item.positions_by_perp?.[0],{t:o}=useTranslation(),i=useMemo(()=>isNaN(t.item?.margin_ratio)?"--":`${new Decimal(t.item.margin_ratio).mul(100).todp(2,Decimal.ROUND_DOWN).toNumber()}%`,[t.item?.margin_ratio]);return e?jsxs(Flex,{direction:"column",width:"100%",gap:1,children:[jsxs(Flex,{gap:2,width:"100%",children:[jsx(Tt,{label:o("positions.Liquidation.column.markPrice"),value:commifyOptional(e.transfer_price),className:"oui-flex-1"}),jsx(Tt,{label:o("common.quantity"),value:commifyOptional(e.position_qty),className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.column.liquidationFeeRate"),value:t.item.liquidationFeeRate,className:"oui-flex-1",align:"end"})]}),jsxs(Flex,{gap:2,width:"100%",children:[jsx(Tt,{label:o("positions.Liquidation.column.liquidationFee"),value:commifyOptional(e.abs_liquidation_fee),className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.expand.label.mr"),value:i,className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.expand.label.mmr"),value:t.item.formatted_account_mmr?`${t.item.formatted_account_mmr}%`:"--",className:"oui-flex-1",align:"end"})]}),jsxs(Flex,{gap:2,width:"100%",children:[jsx(Tt,{label:o("positions.Liquidation.expand.label.collateral"),value:commifyOptional(t.item.collateral_value),className:"oui-flex-1"}),jsx(Tt,{label:o("positions.Liquidation.expand.label.notional"),value:commifyOptional(t.item.position_notional),className:"oui-flex-1"}),jsx("div",{className:"oui-flex-1 oui-opacity-0"})," "]})]}):null},Tt=({label:t,value:e,className:o,align:i="start"})=>jsxs(Flex,{direction:"column",itemAlign:i,className:o,children:[jsx(Text,{size:"2xs",intensity:36,children:t}),jsx(Text,{size:"xs",intensity:80,children:e})]});var Fo=t=>({...t});var No=t=>{let{classNames:e,...o}=t,i=Fo(o);return jsx(wo,{classNames:e,...i})};var Do=t=>{let[e,o]=useState({}),i=ln();return jsxs(Flex,{direction:"column",width:"100%",height:"100%",itemAlign:"start",children:[jsxs(Flex,{gap:3,children:[t.filterItems.length>0&&jsx(DataFilter,{items:t.filterItems,onFilter:r=>{t.onFilter(r);}}),[1,7,30,90].map(r=>jsxs("button",{className:"oui-relative oui-px-2 oui-py-[2px] oui-text-sm",children:[jsx("div",{className:"oui-z-10",children:jsx(Text.gradient,{color:t.filterDays===r?"brand":void 0,className:t.filterDays!==r?"oui-text-base-contrast-54":"",children:`${r}D`})}),jsx("div",{className:"oui-absolute oui-inset-0 oui-rounded oui-opacity-[.12] oui-gradient-primary",onClick:()=>{t.updateFilterDays(r);}})]},`item-${r}`))]}),jsx(AuthGuardDataTable,{loading:t.isLoading,id:"oui-desktop-liquidation-content",columns:i,bordered:true,dataSource:t.dataSource,generatedRowKey:r=>`${r.liquidation_id}`,pagination:t.pagination,testIds:{body:"oui-testid-dataList-liquidation-tab-body"},classNames:{root:"!oui-h-[calc(100%_-_49px)]"},expanded:e,onExpandedChange:o,getRowCanExpand:()=>true,expandRowRender:r=>jsx(yl,{record:r.original})})]})},qe=t=>jsx("th",{className:"oui-h-10 oui-border-b oui-border-line oui-text-left oui-text-base-contrast-36",children:jsx(Tooltip,{content:t.tooltip,className:"oui-w-[275px] oui-bg-base-6",side:t.side,arrow:{className:"oui-fill-base-6"},children:jsx("button",{className:"oui-border-b oui-border-dashed oui-border-line-12",children:t.label})})}),yl=t=>{let{margin_ratio:e,account_mmr:o,collateral_value:i,position_notional:r}=t.record,{t:n}=useTranslation();return jsx("div",{className:"oui-w-full oui-bg-base-8 oui-px-6",children:jsxs("table",{className:"oui-w-full",children:[jsx("thead",{children:jsxs("tr",{children:[jsx(qe,{tooltip:n("positions.Liquidation.expand.tooltip.mr"),label:n("positions.Liquidation.expand.label.mr"),side:"left"}),jsx(qe,{tooltip:n("positions.Liquidation.expand.tooltip.mmr"),label:n("positions.Liquidation.expand.label.mmr")}),jsx(qe,{tooltip:n("positions.Liquidation.expand.tooltip.collateral"),label:n("positions.Liquidation.expand.label.collateral")}),jsx(qe,{tooltip:n("positions.Liquidation.expand.tooltip.notional"),label:n("positions.Liquidation.expand.label.notional")})]})}),jsx("tbody",{children:jsxs("tr",{children:[jsx("td",{className:"oui-h-10",children:jsx(Text.numeral,{rule:"percentages",children:e})}),jsx("td",{className:"oui-h-10",children:jsx(Text.numeral,{rule:"percentages",children:o})}),jsx("td",{className:"oui-h-10",children:commifyOptional(i)}),jsx("td",{className:"oui-h-10",children:commifyOptional(r)})]})})]})})},qo=t=>jsxs(Grid,{cols:1,rows:2,className:"oui-w-full oui-grid-rows-[auto,1fr]",gap:1,children:[jsx(Flex,{gap:2,p:2,className:"oui-rounded-b-xl oui-bg-base-9",children:jsx(DataFilter,{className:"oui-border-none oui-py-0",items:t.filterItems,onFilter:e=>{t.onFilter(e);}})}),jsx(ListView,{className:cn("oui-hide-scrollbar oui-w-full oui-space-y-0 oui-overflow-y-hidden",t.classNames?.root),contentClassName:cn("!oui-space-y-1",t.classNames?.content),dataSource:t.dataSource,loadMore:t.loadMore,renderItem:(e,o)=>jsx(No,{item:e,index:o,classNames:{root:t.classNames?.cell}})})]});var Re=t=>{let{symbol:e,enableLoadMore:o}=t,{page:i,pageSize:r,setPage:n,pagination:a,parsePagination:s}=usePagination({pageSize:10}),{dateRange:l,filterDays:m,updateFilterDays:u,filterItems:c,onFilter:d}=Tl();useEffect(()=>{n(1);},[e,l,m]);let[y,{meta:g,isLoading:x,loadMore:h}]=Sl({page:o?void 0:i,size:r,symbol:e,start_t:l.from!=null?l.from.getTime():void 0,end_t:l.to!=null?l.to.getTime():void 0});return {dataSource:useDataTap(y,{fallbackData:[]}),isLoading:x,loadMore:h,pagination:s(g),dateRange:l,filterDays:m,updateFilterDays:u,filterItems:c,onFilter:d}},Sl=t=>{let e=usePrivateInfiniteQuery(vl(t),{initialSize:1,formatter:a=>a,revalidateOnFocus:true}),o=useMemo(()=>e.data?.[0]?.meta,[e.data?.[0]]),i=useMemo(()=>e.data?.map(a=>a.rows?.map(s=>{let l=null,m=s.positions_by_perp[0];return m&&(l=new Decimal(m.liquidator_fee).add(m.insurance_fund_fee).toNumber()),{...s,formatted_account_mmr:isNaN(s.account_mmr)?null:new Decimal(s.account_mmr).mul(100).toFixed(2).toString(),liquidationFeeRate:l}}))?.flat(),[e.data]),r=e.isLoading;return [i,{meta:o,isLoading:r,loadMore:()=>{e.setSize(e.size+1);}}]},Tl=()=>{let t=Bt({to:B(new Date),from:z(subDays(new Date,89))}),[e,o]=useState(90),[i,r]=useState(t),n=m=>{o(m),r({from:z(subDays(new Date,m-1)),to:B(new Date)});},a=m=>{if(m.name==="dateRange"){let u=Bt(m.value);if(r(u),u.from&&u.to){let c=Math.abs(differenceInDays(u.from,u.to))+1,y={1:{from:z(new Date),to:B(new Date)},7:{from:z(subDays(new Date,6)),to:B(new Date)},30:{from:z(subDays(new Date,29)),to:B(new Date)},90:{from:z(subDays(new Date,89)),to:B(new Date)}}[c];y&&Wt(y.from,u.from)&&Wt(y.to,u.to)?o(c):o(null);}}},{isMobile:s}=useScreen();return {filterItems:useMemo(()=>{let m={type:"range",name:"dateRange",value:i,fromDate:z(subDays(new Date,89)),toDate:B(new Date)};return s?[m]:[m]},[i]),onFilter:a,dateRange:i,filterDays:e,updateFilterDays:n}},vl=t=>(e,o)=>{if(o&&!o.rows?.length)return null;let{symbol:i,size:r=10,page:n,end_t:a,start_t:s}=t,l=new URLSearchParams([["size",r.toString()],["page",`${e+1}`]]);return n&&l.set("page",`${n}`),i&&l.set("symbol",i),a&&l.set("end_t",`${a}`),s&&l.set("start_t",`${s}`),`/v1/liquidations?${l.toString()}`};var wl=t=>{let e=Re(t);return jsx(Do,{...e})},Fl=t=>{let{classNames:e,...o}=t,i=Re(o);return jsx(qo,{classNames:e,...i})};var Ll="MarketCloseConfirmID";registerSimpleDialog(Ll,Rt,{size:"md",closable:false});
17
18
 
18
- export { ca as CombinePositionsWidget, mt as FundingFeeButton, ue as FundingFeeHistoryUI, Do as Liquidation, Cl as LiquidationWidget, Sl as MarketCloseConfirmID, Lo as MobileLiquidation, hl as MobileLiquidationWidget, So as MobilePositionHistory, Va as MobilePositionHistoryWidget, ma as MobilePositionsWidget, _o as PositionHistory, $a as PositionHistoryWidget, ua as PositionsWidget, qe as useLiquidationScript, Ne as usePositionHistoryScript, Z as usePositionsRowContext };
19
+ export { fa as CombinePositionsWidget, mt as FundingFeeButton, le as FundingFeeHistoryUI, Do as Liquidation, wl as LiquidationWidget, Ll as MarketCloseConfirmID, qo as MobileLiquidation, Fl as MobileLiquidationWidget, To as MobilePositionHistory, Za as MobilePositionHistoryWidget, pa as MobilePositionsWidget, So as PositionHistory, Ja as PositionHistoryWidget, da as PositionsWidget, Re as useLiquidationScript, Ne as usePositionHistoryScript, Z as usePositionsRowContext };
19
20
  //# sourceMappingURL=out.js.map
20
21
  //# sourceMappingURL=index.mjs.map